diff --git a/csharp/vc2022/HexDumpToBinary/HexDumpToBinary.vcxproj b/csharp/vc2022/HexDumpToBinary/HexDumpToBinary.vcxproj new file mode 100644 index 0000000..1bec3cd --- /dev/null +++ b/csharp/vc2022/HexDumpToBinary/HexDumpToBinary.vcxproj @@ -0,0 +1,159 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {C9F9D9F3-4D5E-6F7A-AB1C-3D4E5F6A7B8C} + HexDumpToBinary + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)bin\$(Platform)\$(Configuration)\ + $(SolutionDir)obj\$(ProjectName)\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)bin\$(Platform)\$(Configuration)\ + $(SolutionDir)obj\$(ProjectName)\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)bin\$(Platform)\$(Configuration)\ + $(SolutionDir)obj\$(ProjectName)\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)bin\$(Platform)\$(Configuration)\ + $(SolutionDir)obj\$(ProjectName)\$(Platform)\$(Configuration)\ + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + CompileAsC + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + CompileAsC + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + CompileAsC + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + CompileAsC + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/csharp/vc2022/HexToBinary/HexToBinary.vcxproj b/csharp/vc2022/HexToBinary/HexToBinary.vcxproj new file mode 100644 index 0000000..a8ca5e2 --- /dev/null +++ b/csharp/vc2022/HexToBinary/HexToBinary.vcxproj @@ -0,0 +1,159 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {B8F8C8F2-3C4D-5E6F-9A0B-2C3D4E5F6A7B} + HexToBinary + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)bin\$(Platform)\$(Configuration)\ + $(SolutionDir)obj\$(ProjectName)\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)bin\$(Platform)\$(Configuration)\ + $(SolutionDir)obj\$(ProjectName)\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)bin\$(Platform)\$(Configuration)\ + $(SolutionDir)obj\$(ProjectName)\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)bin\$(Platform)\$(Configuration)\ + $(SolutionDir)obj\$(ProjectName)\$(Platform)\$(Configuration)\ + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + CompileAsC + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + CompileAsC + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + CompileAsC + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + CompileAsC + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/csharp/vc2022/README.md b/csharp/vc2022/README.md new file mode 100644 index 0000000..cdf299e --- /dev/null +++ b/csharp/vc2022/README.md @@ -0,0 +1,97 @@ +# V2G EXI Decoder - Visual Studio 2022 VC++ Project + +## 개요 +OpenV2G EXI 디코더를 Visual Studio 2022 Professional에서 디버깅할 수 있도록 VC++ 프로젝트로 변환한 버전입니다. + +## 프로젝트 구조 + +### 솔루션: `V2GDecoderC.sln` +- **V2GDecoder**: 메인 EXI 디코더 애플리케이션 +- **HexToBinary**: 16진수 문자열을 바이너리로 변환하는 유틸리티 +- **HexDumpToBinary**: 16진수 덤프를 바이너리로 변환하는 유틸리티 + +### 빌드 설정 +- **플랫폼**: Win32 (x86), x64 +- **구성**: Debug, Release +- **컴파일러**: MSVC v143 (Visual Studio 2022) +- **언어**: Pure C (C++이 아님) +- **출력 디렉토리**: `bin/{Platform}/{Configuration}/` + +### 소스 파일 구성 +#### codec/ (EXI 코덱 핵심) +- BitInputStream.c/h - 비트 스트림 입력 +- BitOutputStream.c/h - 비트 스트림 출력 +- DecoderChannel.c/h - 디코더 채널 +- EncoderChannel.c/h - 인코더 채널 +- EXIHeaderDecoder.c/h - EXI 헤더 디코더 +- 기타 EXI 관련 파일들 + +#### iso1/ (ISO 15118-1 구현) +- iso1EXIDatatypes.c/h - ISO1 EXI 데이터 타입 +- iso1EXIDatatypesDecoder.c/h - ISO1 EXI 디코더 +- iso1EXIDatatypesEncoder.c/h - ISO1 EXI 인코더 + +#### appHandshake/ (애플리케이션 핸드셰이크) +- appHandEXIDatatypes.c/h - 핸드셰이크 데이터 타입 +- appHandEXIDatatypesDecoder.c/h - 핸드셰이크 디코더 +- appHandEXIDatatypesEncoder.c/h - 핸드셰이크 인코더 + +## Visual Studio에서 사용하기 + +### 1. 프로젝트 열기 +``` +파일 -> 열기 -> 프로젝트/솔루션 -> V2GDecoderC.sln 선택 +``` + +### 2. 빌드하기 +- **Debug x64** 구성을 권장 (완전한 디버깅 정보 포함) +- 빌드 -> 솔루션 빌드 (Ctrl+Shift+B) + +### 3. 디버깅하기 +- V2GDecoder 프로젝트를 시작 프로젝트로 설정 +- F5로 디버깅 시작 +- 중단점 설정하여 단계별 디버깅 가능 + +### 4. 커맨드 라인 인수 설정 +프로젝트 속성 -> 디버깅 -> 명령 인수에서 테스트 파일 지정: +``` +../../test4.exi +``` + +## 장점 + +### 🔍 강력한 디버깅 기능 +- **중단점**: 모든 C 소스 라인에 중단점 설정 가능 +- **단계별 실행**: F10 (Step Over), F11 (Step Into) +- **변수 조사**: 지역 변수, 감시 창에서 실시간 변수 값 확인 +- **호출 스택**: 함수 호출 경로 추적 +- **메모리 뷰**: 원시 메모리 내용 확인 + +### 📊 코드 분석 도구 +- **IntelliSense**: 코드 완성, 함수 시그니처 힌트 +- **정의로 이동**: F12로 함수/변수 정의 위치로 이동 +- **참조 찾기**: 함수/변수 사용 위치 검색 +- **오류 목록**: 컴파일 오류/경고 실시간 표시 + +### 🚀 .NET 포팅 지원 +- C 코드 로직을 단계별로 분석하여 C#/.NET으로 포팅 가능 +- 메모리 레이아웃, 비트 조작 등 저수준 동작 확인 +- 함수별 입출력 값 확인으로 테스트 케이스 생성 + +## 테스트 파일 +- `test4.exi` - 43바이트 CurrentDemandReq 메시지 +- `test5.exi` - 43바이트 CurrentDemandReq 메시지 (다른 값) + +## 원본 GCC 빌드와의 호환성 +- 동일한 소스 파일 사용 +- 동일한 헤더 파일 포함 경로 +- 동일한 전처리기 정의 +- Windows에서 POSIX 호환성 유지 + +## 사용 예시 +```bash +# Visual Studio에서 빌드 후 +bin/x64/Debug/V2GDecoder.exe ../../test4.exi +``` + +이제 Visual Studio 2022의 강력한 디버깅 기능을 활용하여 OpenV2G EXI 디코더를 분석하고 .NET 포팅 작업을 효율적으로 수행할 수 있습니다. \ No newline at end of file diff --git a/csharp/vc2022/V2GDecoder.c b/csharp/vc2022/V2GDecoder.c new file mode 100644 index 0000000..7de0a8c --- /dev/null +++ b/csharp/vc2022/V2GDecoder.c @@ -0,0 +1,1358 @@ +#include +#include +#include +#include +#ifdef _WIN32 + #include + #include + #include + #define F_OK 0 + #define access _access + #define fstat _fstat + #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) +#else + #include + #include +#endif + +/* EXI codec headers */ +#include "iso1EXIDatatypes.h" +#include "iso1EXIDatatypesDecoder.h" +#include "iso1EXIDatatypesEncoder.h" +#include "iso2EXIDatatypes.h" +#include "iso2EXIDatatypesDecoder.h" +#include "iso2EXIDatatypesEncoder.h" +#include "dinEXIDatatypes.h" +#include "dinEXIDatatypesDecoder.h" +#include "dinEXIDatatypesEncoder.h" +#include "ByteStream.h" + +#define BUFFER_SIZE 4096 + +// Network protocol patterns and definitions +#define ETH_TYPE_IPV6 0x86DD // Ethernet Type: IPv6 +#define IPV6_NEXT_HEADER_TCP 0x06 // IPv6 Next Header: TCP +#define TCP_V2G_PORT 15118 // V2G communication port + +// V2G Transfer Protocol patterns and definitions +#define V2G_PROTOCOL_VERSION 0x01 // Protocol Version +#define V2G_INV_PROTOCOL_VERSION 0xFE // Inverse Protocol Version +#define V2G_PAYLOAD_ISO_DIN_SAP 0x8001 // ISO 15118-2/DIN/SAP payload type +#define V2G_PAYLOAD_ISO2 0x8002 // ISO 15118-20 payload type +#define EXI_START_PATTERN 0x8098 // EXI document start pattern + +// Function to detect and extract EXI body from V2G Transfer Protocol data +size_t extract_exi_body(uint8_t* input_data, size_t input_size, uint8_t* output_data, size_t output_size) { + if (input_size < 8) { + // Too small for V2G TP header, assume it's pure EXI + if (input_size <= output_size) { + memcpy(output_data, input_data, input_size); + return input_size; + } + return 0; + } + + // Check for V2G Transfer Protocol header + if (input_data[0] == V2G_PROTOCOL_VERSION && input_data[1] == V2G_INV_PROTOCOL_VERSION) { + uint16_t payload_type = (input_data[2] << 8) | input_data[3]; + + if (payload_type == V2G_PAYLOAD_ISO_DIN_SAP || payload_type == V2G_PAYLOAD_ISO2) { + // Valid V2G TP header detected: skip 8-byte header + size_t exi_size = input_size - 8; + if (exi_size <= output_size) { + memcpy(output_data, input_data + 8, exi_size); + return exi_size; + } + return 0; + } + } + + // Look for EXI start pattern anywhere in the data + for (size_t i = 0; i <= input_size - 2; i++) { + uint16_t pattern = (input_data[i] << 8) | input_data[i + 1]; + if (pattern == EXI_START_PATTERN) { + // Found EXI start pattern + size_t exi_size = input_size - i; + if (exi_size <= output_size) { + memcpy(output_data, input_data + i, exi_size); + return exi_size; + } + return 0; + } + } + + // No pattern found, assume it's pure EXI + if (input_size <= output_size) { + memcpy(output_data, input_data, input_size); + return input_size; + } + + return 0; +} + +// Function to get payload type name +const char* get_payload_type_name(uint16_t payload_type) { + switch(payload_type) { + case V2G_PAYLOAD_ISO_DIN_SAP: return "ISO 15118-2/DIN/SAP"; + case V2G_PAYLOAD_ISO2: return "ISO 15118-20"; + default: return "Unknown"; + } +} + +// Function to analyze complete packet structure +void analyze_data_structure(uint8_t* data, size_t size) { + printf("=== Data Structure Analysis ===\n"); + printf("Total size: %zu bytes\n", size); + + size_t offset = 0; + + // Check for Ethernet header (at least 14 bytes) + if (size >= 14) { + uint16_t eth_type = (data[12] << 8) | data[13]; + if (eth_type == ETH_TYPE_IPV6) { + printf("Layer 2: Ethernet Frame\n"); + printf(" Destination MAC: %02x:%02x:%02x:%02x:%02x:%02x\n", + data[0], data[1], data[2], data[3], data[4], data[5]); + printf(" Source MAC: %02x:%02x:%02x:%02x:%02x:%02x\n", + data[6], data[7], data[8], data[9], data[10], data[11]); + printf(" EtherType: 0x%04x (IPv6)\n", eth_type); + offset = 14; + + // Check for IPv6 header (40 bytes) + if (size >= offset + 40) { + uint8_t version = (data[offset] >> 4) & 0x0F; + uint16_t payload_length = (data[offset + 4] << 8) | data[offset + 5]; + uint8_t next_header = data[offset + 6]; + uint8_t hop_limit = data[offset + 7]; + + if (version == 6) { + printf("Layer 3: IPv6 Header\n"); + printf(" Version: %d\n", version); + printf(" Payload Length: %u\n", payload_length); + printf(" Next Header: %u", next_header); + if (next_header == IPV6_NEXT_HEADER_TCP) { + printf(" (TCP)\n"); + } else { + printf("\n"); + } + printf(" Hop Limit: %u\n", hop_limit); + + // Show IPv6 addresses + printf(" Source Address: "); + for (int i = 0; i < 16; i += 2) { + printf("%02x%02x", data[offset + 8 + i], data[offset + 8 + i + 1]); + if (i < 14) printf(":"); + } + printf("\n Destination Address: "); + for (int i = 0; i < 16; i += 2) { + printf("%02x%02x", data[offset + 24 + i], data[offset + 24 + i + 1]); + if (i < 14) printf(":"); + } + printf("\n"); + + offset += 40; + + // Check for TCP header (at least 20 bytes) + if (next_header == IPV6_NEXT_HEADER_TCP && size >= offset + 20) { + uint16_t src_port = (data[offset] << 8) | data[offset + 1]; + uint16_t dst_port = (data[offset + 2] << 8) | data[offset + 3]; + uint32_t seq_num = (data[offset + 4] << 24) | (data[offset + 5] << 16) | + (data[offset + 6] << 8) | data[offset + 7]; + uint8_t tcp_header_len = (data[offset + 12] >> 4) * 4; + + printf("Layer 4: TCP Header\n"); + printf(" Source Port: %u\n", src_port); + printf(" Destination Port: %u", dst_port); + if (dst_port == TCP_V2G_PORT || src_port == TCP_V2G_PORT) { + printf(" (V2G Communication)\n"); + } else { + printf("\n"); + } + printf(" Sequence Number: %u\n", seq_num); + printf(" TCP Header Length: %u bytes\n", tcp_header_len); + + offset += tcp_header_len; + } + } + } + } + } + + // Look for V2G Transfer Protocol starting from current offset + if (size >= offset + 8 && + data[offset] == V2G_PROTOCOL_VERSION && + data[offset + 1] == V2G_INV_PROTOCOL_VERSION) { + + printf("Layer 7: V2G Transfer Protocol\n"); + printf(" Protocol Version: 0x%02x\n", data[offset]); + printf(" Inverse Protocol Version: 0x%02x\n", data[offset + 1]); + + uint16_t payload_type = (data[offset + 2] << 8) | data[offset + 3]; + printf(" Payload Type: 0x%04x (%s)\n", payload_type, get_payload_type_name(payload_type)); + + uint32_t payload_length = (data[offset + 4] << 24) | (data[offset + 5] << 16) | + (data[offset + 6] << 8) | data[offset + 7]; + printf(" Payload Length: %u\n", payload_length); + printf("EXI body starts at offset: %zu\n", offset + 8); + + // Verify payload length + if (size >= offset + 8 && (size - offset - 8) == payload_length) { + printf("✓ Payload length matches actual data (%zu bytes)\n", size - offset - 8); + } else if (size >= offset + 8) { + printf("⚠ Payload length mismatch: expected %u, got %zu bytes\n", + payload_length, size - offset - 8); + } + + offset += 8; + } + else if (offset == 0) { + // No network headers detected, check if it's direct V2G TP or EXI + if (size >= 4) { + uint32_t header = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3]; + printf("First 4 bytes: 0x%08X\n", header); + printf("Protocol: Unknown or Direct EXI\n"); + } + } + + // Look for EXI pattern + for (size_t i = 0; i <= size - 2; i++) { + uint16_t pattern = (data[i] << 8) | data[i + 1]; + if (pattern == EXI_START_PATTERN) { + printf("EXI start pattern (0x8098) found at offset: %zu\n", i); + if (i >= offset) { + printf("EXI payload size: %zu bytes\n", size - i); + } + break; + } + } + printf("\n"); +} + +// Helper function to convert char* string to exi_string_character_t* array +static int writeStringToEXIString(char* string, exi_string_character_t* exiString) { + int pos = 0; + while(string[pos] != '\0') { + exiString[pos] = string[pos]; + pos++; + } + return pos; +} + +char* trim_whitespace(char* str) { + char* end; + while(isspace((unsigned char)*str)) str++; + if(*str == 0) return str; + end = str + strlen(str) - 1; + while(end > str && isspace((unsigned char)*end)) end--; + end[1] = '\0'; + return str; +} + +// Helper function to find XML tag content within a bounded section (namespace-aware) +char* find_tag_in_section(const char* section_start, const char* section_end, const char* tag) { + static char result[1024]; + char ns_pattern[256]; + char* content_start = NULL; + char* tag_end = NULL; + + // First try namespace pattern (:tag>) + snprintf(ns_pattern, sizeof(ns_pattern), ":%s>", tag); + char* ns_tag = section_start; + while ((ns_tag = strstr(ns_tag, ns_pattern)) != NULL && ns_tag < section_end) { + // Find the opening '<' + char* tag_begin = ns_tag; + while (tag_begin > section_start && *tag_begin != '<') tag_begin--; + if (*tag_begin == '<' && tag_begin >= section_start) { + content_start = ns_tag + strlen(ns_pattern); + break; + } + ns_tag++; + } + + // If namespace version not found, try regular version + if (!content_start) { + char start_tag[256]; + snprintf(start_tag, sizeof(start_tag), "<%s>", tag); + char* tag_start = strstr(section_start, start_tag); + if (tag_start && tag_start < section_end) { + content_start = tag_start + strlen(start_tag); + } + } + + if (!content_start || content_start >= section_end) { + return NULL; + } + + // Look for end tag (try both patterns) + char end_tag_pattern[256]; + snprintf(end_tag_pattern, sizeof(end_tag_pattern), "", tag); + tag_end = strstr(content_start, end_tag_pattern); + if (!tag_end || tag_end > section_end) { + // Try namespace end pattern + snprintf(ns_pattern, sizeof(ns_pattern), ":%s>", tag); + char* ns_end = content_start; + while ((ns_end = strstr(ns_end, ns_pattern)) != NULL && ns_end < section_end) { + char* end_begin = ns_end; + while (end_begin > content_start && *end_begin != '<') end_begin--; + if (end_begin > content_start && *end_begin == '<' && *(end_begin + 1) == '/') { + tag_end = end_begin; + break; + } + ns_end++; + } + } + + if (!tag_end || tag_end > section_end) { + return NULL; + } + + size_t len = tag_end - content_start; + if (len >= sizeof(result)) len = sizeof(result) - 1; + + strncpy(result, content_start, len); + result[len] = '\0'; + + return trim_whitespace(result); +} + +// Helper function to find XML tag content (namespace-aware) +char* find_tag_content_ns(const char* xml, const char* tag) { + static char result[1024]; + char ns_pattern[256], end_pattern[256]; + + // Look for pattern ":tagname>" to handle namespaces + snprintf(ns_pattern, sizeof(ns_pattern), ":%s>", tag); + snprintf(end_pattern, sizeof(end_pattern), "", tag); + + // First try to find namespace version (:tag>) + char* ns_start = strstr(xml, ns_pattern); + char* start = NULL; + + if (ns_start) { + // Found namespaced tag, find the opening '<' + char* tag_begin = ns_start; + while (tag_begin > xml && *tag_begin != '<') tag_begin--; + if (*tag_begin == '<') { + start = ns_start + strlen(ns_pattern); + } + } + + // If namespace version not found, try regular version + if (!start) { + char start_tag[256]; + snprintf(start_tag, sizeof(start_tag), "<%s>", tag); + char* regular_start = strstr(xml, start_tag); + if (regular_start) { + start = regular_start + strlen(start_tag); + } + } + + if (!start) return NULL; + + // Look for end tag (try both namespaced and regular) + char ns_end_pattern[256]; + snprintf(ns_end_pattern, sizeof(ns_end_pattern), "", tag); + + char* end = strstr(start, ns_end_pattern); + if (!end) { + // Try with different namespace prefix + snprintf(ns_end_pattern, sizeof(ns_end_pattern), ":%s>", tag); + char* ns_end = strstr(start, ns_end_pattern); + if (ns_end) { + char* end_tag_begin = ns_end; + while (end_tag_begin > start && *end_tag_begin != '<') end_tag_begin--; + if (*end_tag_begin == '<' && *(end_tag_begin + 1) == '/') { + end = ns_end + strlen(ns_end_pattern); + // Backtrack to find the actual end + end = end_tag_begin; + } + } + } + + if (!end) return NULL; + + size_t len = end - start; + if (len >= sizeof(result)) len = sizeof(result) - 1; + + strncpy(result, start, len); + result[len] = '\0'; + return trim_whitespace(result); +} + +// Helper function to find XML tag content +char* find_tag_content(const char* xml, const char* tag) { + // First try namespace-aware search + char* result = find_tag_content_ns(xml, tag); + if (result) return result; + + // Fallback to original method + static char fallback_result[1024]; + char start_tag[256], end_tag[256]; + snprintf(start_tag, sizeof(start_tag), "<%s>", tag); + snprintf(end_tag, sizeof(end_tag), "", tag); + + char* start = strstr(xml, start_tag); + if (!start) return NULL; + start += strlen(start_tag); + + char* end = strstr(start, end_tag); + if (!end) return NULL; + + size_t len = end - start; + if (len >= sizeof(fallback_result)) len = sizeof(fallback_result) - 1; + + strncpy(fallback_result, start, len); + fallback_result[len] = '\0'; + return trim_whitespace(fallback_result); +} + +int parse_session_id(const char* hex_str, uint8_t* bytes, size_t* len) { + size_t hex_len = strlen(hex_str); + if (hex_len % 2 != 0) return -1; + + *len = hex_len / 2; + for (size_t i = 0; i < *len; i++) { + unsigned int byte; + if (sscanf(&hex_str[i*2], "%2x", &byte) != 1) return -1; + bytes[i] = (uint8_t)byte; + } + return 0; +} + +// Parse PhysicalValue from section bounded XML +void parse_physical_value_from_section(const char* section_start, const char* section_end, struct iso1PhysicalValueType* pv) { + // Copy the found values to local variables to avoid static buffer overwriting + char mult_str[64] = {0}; + char unit_str[64] = {0}; + char value_str[64] = {0}; + + char* mult = find_tag_in_section(section_start, section_end, "Multiplier"); + if (mult) strncpy(mult_str, mult, sizeof(mult_str)-1); + + char* unit = find_tag_in_section(section_start, section_end, "Unit"); + if (unit) strncpy(unit_str, unit, sizeof(unit_str)-1); + + char* value = find_tag_in_section(section_start, section_end, "Value"); + if (value) strncpy(value_str, value, sizeof(value_str)-1); + + // Now parse the copied values + if (mult) pv->Multiplier = atoi(mult_str); + if (unit) pv->Unit = atoi(unit_str); + if (value) pv->Value = atoi(value_str); +} + +// Parse XML to ISO1 document for encoding +int parse_xml_to_iso1(const char* xml_content, struct iso1EXIDocument* doc) { + init_iso1EXIDocument(doc); + + // Find SessionID + char* session_id_str = find_tag_content(xml_content, "SessionID"); + if (session_id_str) { + size_t len; + if (parse_session_id(session_id_str, doc->V2G_Message.Header.SessionID.bytes, &len) == 0) { + doc->V2G_Message.Header.SessionID.bytesLen = len; + doc->V2G_Message_isUsed = 1; + } + } else { + // Search directly for namespaced SessionID + char* ns_start = strstr(xml_content, ""); + if (ns_start) { + ns_start += strlen(""); + char* ns_end = strstr(ns_start, ""); + if (ns_end) { + size_t len_str = ns_end - ns_start; + static char session_id_temp[256]; + if (len_str < sizeof(session_id_temp)) { + strncpy(session_id_temp, ns_start, len_str); + session_id_temp[len_str] = '\0'; + session_id_str = trim_whitespace(session_id_temp); + size_t len; + if (parse_session_id(session_id_str, doc->V2G_Message.Header.SessionID.bytes, &len) == 0) { + doc->V2G_Message.Header.SessionID.bytesLen = len; + doc->V2G_Message_isUsed = 1; + } + } + } + } + } + + // Check for CurrentDemandReq + if (strstr(xml_content, "") || strstr(xml_content, "")) { + // Body 구조체 초기화 (모든 메시지 타입 플래그를 0으로 설정) + init_iso1BodyType(&doc->V2G_Message.Body); + + // 오직 CurrentDemandReq만 활성화 + doc->V2G_Message.Body.CurrentDemandReq_isUsed = 1; + + // Initialize CurrentDemandReq structure completely + init_iso1CurrentDemandReqType(&doc->V2G_Message.Body.CurrentDemandReq); + + // Set all optional fields to NOT USED by default + doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit_isUsed = 0; + doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit_isUsed = 0; + doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit_isUsed = 0; + doc->V2G_Message.Body.CurrentDemandReq.BulkChargingComplete_isUsed = 0; + doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC_isUsed = 0; + doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC_isUsed = 0; + + // Parse DC_EVStatus + char* ev_ready = find_tag_content(xml_content, "EVReady"); + if (ev_ready) { + doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVReady = (strcmp(ev_ready, "true") == 0); + } + + char* ev_error = find_tag_content(xml_content, "EVErrorCode"); + if (ev_error) { + if (strcmp(ev_error, "NO_ERROR") == 0) { + doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVErrorCode = 0; + } else { + doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVErrorCode = atoi(ev_error); + } + } + + char* ev_soc = find_tag_content(xml_content, "EVRESSSOC"); + if (ev_soc) { + doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVRESSSOC = atoi(ev_soc); + } + + // Parse EVTargetCurrent using bounded section approach + char* current_section = strstr(xml_content, ""); + if (!current_section) current_section = strstr(xml_content, ""); + if (current_section) { + char* current_end = strstr(current_section, ""); + if (!current_end) current_end = strstr(current_section, ""); + if (current_end) { + parse_physical_value_from_section(current_section, current_end, &doc->V2G_Message.Body.CurrentDemandReq.EVTargetCurrent); + } + } + + // Parse EVTargetVoltage using bounded section approach + char* voltage_section = strstr(xml_content, ""); + if (!voltage_section) voltage_section = strstr(xml_content, ""); + if (voltage_section) { + char* voltage_end = strstr(voltage_section, ""); + if (!voltage_end) voltage_end = strstr(voltage_section, ""); + if (voltage_end) { + parse_physical_value_from_section(voltage_section, voltage_end, &doc->V2G_Message.Body.CurrentDemandReq.EVTargetVoltage); + } + } + + // Parse ChargingComplete + char* charging_complete = find_tag_content(xml_content, "ChargingComplete"); + if (charging_complete) { + doc->V2G_Message.Body.CurrentDemandReq.ChargingComplete = (strcmp(charging_complete, "true") == 0); + } + + // Parse optional fields if present + if (strstr(xml_content, "") || strstr(xml_content, "")) { + doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit_isUsed = 1; + char* max_volt_section = strstr(xml_content, ""); + if (!max_volt_section) max_volt_section = strstr(xml_content, ""); + char* max_volt_end = strstr(max_volt_section, ""); + if (!max_volt_end) max_volt_end = strstr(max_volt_section, ""); + if (max_volt_section && max_volt_end) { + parse_physical_value_from_section(max_volt_section, max_volt_end, &doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit); + } + } + + if (strstr(xml_content, "") || strstr(xml_content, "")) { + doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit_isUsed = 1; + char* max_curr_section = strstr(xml_content, ""); + if (!max_curr_section) max_curr_section = strstr(xml_content, ""); + char* max_curr_end = strstr(max_curr_section, ""); + if (!max_curr_end) max_curr_end = strstr(max_curr_section, ""); + if (max_curr_section && max_curr_end) { + parse_physical_value_from_section(max_curr_section, max_curr_end, &doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit); + } + } + + if (strstr(xml_content, "") || strstr(xml_content, "")) { + doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit_isUsed = 1; + char* max_power_section = strstr(xml_content, ""); + if (!max_power_section) max_power_section = strstr(xml_content, ""); + char* max_power_end = strstr(max_power_section, ""); + if (!max_power_end) max_power_end = strstr(max_power_section, ""); + if (max_power_section && max_power_end) { + parse_physical_value_from_section(max_power_section, max_power_end, &doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit); + } + } + + // Parse BulkChargingComplete + char* bulk_charging_complete = find_tag_content(xml_content, "BulkChargingComplete"); + if (bulk_charging_complete) { + doc->V2G_Message.Body.CurrentDemandReq.BulkChargingComplete_isUsed = 1; + doc->V2G_Message.Body.CurrentDemandReq.BulkChargingComplete = (strcmp(bulk_charging_complete, "true") == 0); + } + + // Parse remaining time fields + if (strstr(xml_content, "") || strstr(xml_content, "")) { + doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC_isUsed = 1; + char* time_section = strstr(xml_content, ""); + if (!time_section) time_section = strstr(xml_content, ""); + char* time_end = strstr(time_section, ""); + if (!time_end) time_end = strstr(time_section, ""); + if (time_section && time_end) { + parse_physical_value_from_section(time_section, time_end, &doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC); + } + } + + if (strstr(xml_content, "") || strstr(xml_content, "")) { + doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC_isUsed = 1; + char* bulk_time_section = strstr(xml_content, ""); + if (!bulk_time_section) bulk_time_section = strstr(xml_content, ""); + char* bulk_time_end = strstr(bulk_time_section, ""); + if (!bulk_time_end) bulk_time_end = strstr(bulk_time_section, ""); + if (bulk_time_section && bulk_time_end) { + parse_physical_value_from_section(bulk_time_section, bulk_time_end, &doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC); + } + } + + return 0; + } + + // Check for CurrentDemandRes + if (strstr(xml_content, "") || strstr(xml_content, "")) { + // Body 구조체 초기화 (모든 메시지 타입 플래그를 0으로 설정) + init_iso1BodyType(&doc->V2G_Message.Body); + + // 오직 CurrentDemandRes만 활성화 + doc->V2G_Message.Body.CurrentDemandRes_isUsed = 1; + init_iso1CurrentDemandResType(&doc->V2G_Message.Body.CurrentDemandRes); + + // Parse ResponseCode + char* response_code = find_tag_content(xml_content, "ResponseCode"); + if (response_code) { + doc->V2G_Message.Body.CurrentDemandRes.ResponseCode = atoi(response_code); + } + + // Parse DC_EVSEStatus + char* evse_isolation = find_tag_content_ns(xml_content, "EVSEIsolationStatus"); + if (evse_isolation) { + doc->V2G_Message.Body.CurrentDemandRes.DC_EVSEStatus.EVSEIsolationStatus = atoi(evse_isolation); + doc->V2G_Message.Body.CurrentDemandRes.DC_EVSEStatus.EVSEIsolationStatus_isUsed = 1u; + } + + char* evse_status = find_tag_content_ns(xml_content, "EVSEStatusCode"); + if (evse_status) { + doc->V2G_Message.Body.CurrentDemandRes.DC_EVSEStatus.EVSEStatusCode = atoi(evse_status); + } + + // Parse EVSEPresentVoltage using bounded section approach + char* voltage_section = strstr(xml_content, ""); + if (!voltage_section) voltage_section = strstr(xml_content, ""); + if (voltage_section) { + char* voltage_end = strstr(voltage_section, ""); + if (!voltage_end) voltage_end = strstr(voltage_section, ""); + if (voltage_end) { + parse_physical_value_from_section(voltage_section, voltage_end, &doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentVoltage); + } + } + + // Parse EVSEPresentCurrent using bounded section approach + char* current_section = strstr(xml_content, ""); + if (!current_section) current_section = strstr(xml_content, ""); + if (current_section) { + char* current_end = strstr(current_section, ""); + if (!current_end) current_end = strstr(current_section, ""); + if (current_end) { + parse_physical_value_from_section(current_section, current_end, &doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentCurrent); + } + } + + // Parse limit achieved flags + char* current_limit = find_tag_content(xml_content, "EVSECurrentLimitAchieved"); + if (current_limit) { + doc->V2G_Message.Body.CurrentDemandRes.EVSECurrentLimitAchieved = (strcmp(current_limit, "true") == 0); + } + + char* voltage_limit = find_tag_content(xml_content, "EVSEVoltageLimitAchieved"); + if (voltage_limit) { + doc->V2G_Message.Body.CurrentDemandRes.EVSEVoltageLimitAchieved = (strcmp(voltage_limit, "true") == 0); + } + + char* power_limit = find_tag_content(xml_content, "EVSEPowerLimitAchieved"); + if (power_limit) { + doc->V2G_Message.Body.CurrentDemandRes.EVSEPowerLimitAchieved = (strcmp(power_limit, "true") == 0); + } + + // Parse EVSEID + char* evseid = find_tag_content(xml_content, "EVSEID"); + if (evseid) { + size_t len = strlen(evseid); + if (len < sizeof(doc->V2G_Message.Body.CurrentDemandRes.EVSEID.characters)) { + memcpy(doc->V2G_Message.Body.CurrentDemandRes.EVSEID.characters, evseid, len); + doc->V2G_Message.Body.CurrentDemandRes.EVSEID.charactersLen = len; + } + } + + // Parse SAScheduleTupleID + char* sa_schedule = find_tag_content(xml_content, "SAScheduleTupleID"); + if (sa_schedule) { + doc->V2G_Message.Body.CurrentDemandRes.SAScheduleTupleID = atoi(sa_schedule); + } + + return 0; + } + + return -1; // Unsupported message type +} + +// 구조체 전체 내용을 텍스트 파일로 덤프하는 함수 +void dump_iso1_document_to_file(const struct iso1EXIDocument* doc, const char* filename) { + FILE* fp = fopen(filename, "w"); + if (!fp) { + printf("Error: Cannot create file %s\n", filename); + return; + } + + fprintf(fp, "=== ISO1 EXI Document Structure Dump ===\n\n"); + + // Document level + fprintf(fp, "V2G_Message_isUsed: %u\n", doc->V2G_Message_isUsed); + + if (doc->V2G_Message_isUsed) { + // Header + fprintf(fp, "\n--- Header ---\n"); + fprintf(fp, "SessionID.bytesLen: %u\n", doc->V2G_Message.Header.SessionID.bytesLen); + fprintf(fp, "SessionID.bytes: "); + for (int i = 0; i < doc->V2G_Message.Header.SessionID.bytesLen; i++) { + fprintf(fp, "%02X", doc->V2G_Message.Header.SessionID.bytes[i]); + } + fprintf(fp, "\n"); + fprintf(fp, "Notification_isUsed: %u\n", doc->V2G_Message.Header.Notification_isUsed); + fprintf(fp, "Signature_isUsed: %u\n", doc->V2G_Message.Header.Signature_isUsed); + + // Body - All message type flags + fprintf(fp, "\n--- Body Message Type Flags ---\n"); + fprintf(fp, "AuthorizationReq_isUsed: %u\n", doc->V2G_Message.Body.AuthorizationReq_isUsed); + fprintf(fp, "AuthorizationRes_isUsed: %u\n", doc->V2G_Message.Body.AuthorizationRes_isUsed); + fprintf(fp, "BodyElement_isUsed: %u\n", doc->V2G_Message.Body.BodyElement_isUsed); + fprintf(fp, "CableCheckReq_isUsed: %u\n", doc->V2G_Message.Body.CableCheckReq_isUsed); + fprintf(fp, "CableCheckRes_isUsed: %u\n", doc->V2G_Message.Body.CableCheckRes_isUsed); + fprintf(fp, "CertificateInstallationReq_isUsed: %u\n", doc->V2G_Message.Body.CertificateInstallationReq_isUsed); + fprintf(fp, "CertificateInstallationRes_isUsed: %u\n", doc->V2G_Message.Body.CertificateInstallationRes_isUsed); + fprintf(fp, "CertificateUpdateReq_isUsed: %u\n", doc->V2G_Message.Body.CertificateUpdateReq_isUsed); + fprintf(fp, "CertificateUpdateRes_isUsed: %u\n", doc->V2G_Message.Body.CertificateUpdateRes_isUsed); + fprintf(fp, "ChargeParameterDiscoveryReq_isUsed: %u\n", doc->V2G_Message.Body.ChargeParameterDiscoveryReq_isUsed); + fprintf(fp, "ChargeParameterDiscoveryRes_isUsed: %u\n", doc->V2G_Message.Body.ChargeParameterDiscoveryRes_isUsed); + fprintf(fp, "ChargingStatusReq_isUsed: %u\n", doc->V2G_Message.Body.ChargingStatusReq_isUsed); + fprintf(fp, "ChargingStatusRes_isUsed: %u\n", doc->V2G_Message.Body.ChargingStatusRes_isUsed); + fprintf(fp, "CurrentDemandReq_isUsed: %u\n", doc->V2G_Message.Body.CurrentDemandReq_isUsed); + fprintf(fp, "CurrentDemandRes_isUsed: %u\n", doc->V2G_Message.Body.CurrentDemandRes_isUsed); + fprintf(fp, "MeteringReceiptReq_isUsed: %u\n", doc->V2G_Message.Body.MeteringReceiptReq_isUsed); + fprintf(fp, "MeteringReceiptRes_isUsed: %u\n", doc->V2G_Message.Body.MeteringReceiptRes_isUsed); + fprintf(fp, "PaymentDetailsReq_isUsed: %u\n", doc->V2G_Message.Body.PaymentDetailsReq_isUsed); + fprintf(fp, "PaymentDetailsRes_isUsed: %u\n", doc->V2G_Message.Body.PaymentDetailsRes_isUsed); + fprintf(fp, "PaymentServiceSelectionReq_isUsed: %u\n", doc->V2G_Message.Body.PaymentServiceSelectionReq_isUsed); + fprintf(fp, "PaymentServiceSelectionRes_isUsed: %u\n", doc->V2G_Message.Body.PaymentServiceSelectionRes_isUsed); + fprintf(fp, "PowerDeliveryReq_isUsed: %u\n", doc->V2G_Message.Body.PowerDeliveryReq_isUsed); + fprintf(fp, "PowerDeliveryRes_isUsed: %u\n", doc->V2G_Message.Body.PowerDeliveryRes_isUsed); + fprintf(fp, "PreChargeReq_isUsed: %u\n", doc->V2G_Message.Body.PreChargeReq_isUsed); + fprintf(fp, "PreChargeRes_isUsed: %u\n", doc->V2G_Message.Body.PreChargeRes_isUsed); + fprintf(fp, "ServiceDetailReq_isUsed: %u\n", doc->V2G_Message.Body.ServiceDetailReq_isUsed); + fprintf(fp, "ServiceDetailRes_isUsed: %u\n", doc->V2G_Message.Body.ServiceDetailRes_isUsed); + fprintf(fp, "ServiceDiscoveryReq_isUsed: %u\n", doc->V2G_Message.Body.ServiceDiscoveryReq_isUsed); + fprintf(fp, "ServiceDiscoveryRes_isUsed: %u\n", doc->V2G_Message.Body.ServiceDiscoveryRes_isUsed); + fprintf(fp, "SessionSetupReq_isUsed: %u\n", doc->V2G_Message.Body.SessionSetupReq_isUsed); + fprintf(fp, "SessionSetupRes_isUsed: %u\n", doc->V2G_Message.Body.SessionSetupRes_isUsed); + fprintf(fp, "SessionStopReq_isUsed: %u\n", doc->V2G_Message.Body.SessionStopReq_isUsed); + fprintf(fp, "SessionStopRes_isUsed: %u\n", doc->V2G_Message.Body.SessionStopRes_isUsed); + fprintf(fp, "WeldingDetectionReq_isUsed: %u\n", doc->V2G_Message.Body.WeldingDetectionReq_isUsed); + fprintf(fp, "WeldingDetectionRes_isUsed: %u\n", doc->V2G_Message.Body.WeldingDetectionRes_isUsed); + + // CurrentDemandReq 상세 정보 + if (doc->V2G_Message.Body.CurrentDemandReq_isUsed) { + fprintf(fp, "\n--- CurrentDemandReq Details ---\n"); + + // DC_EVStatus + fprintf(fp, "DC_EVStatus.EVReady: %u\n", doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVReady); + fprintf(fp, "DC_EVStatus.EVErrorCode: %d\n", doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVErrorCode); + fprintf(fp, "DC_EVStatus.EVRESSSOC: %d\n", doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVRESSSOC); + + // EVTargetCurrent + fprintf(fp, "EVTargetCurrent.Multiplier: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Multiplier); + fprintf(fp, "EVTargetCurrent.Unit: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Unit); + fprintf(fp, "EVTargetCurrent.Value: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Value); + + // 선택적 필드들 + fprintf(fp, "EVMaximumVoltageLimit_isUsed: %u\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit_isUsed); + if (doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit_isUsed) { + fprintf(fp, "EVMaximumVoltageLimit.Multiplier: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Multiplier); + fprintf(fp, "EVMaximumVoltageLimit.Unit: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Unit); + fprintf(fp, "EVMaximumVoltageLimit.Value: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Value); + } + + fprintf(fp, "EVMaximumCurrentLimit_isUsed: %u\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit_isUsed); + if (doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit_isUsed) { + fprintf(fp, "EVMaximumCurrentLimit.Multiplier: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Multiplier); + fprintf(fp, "EVMaximumCurrentLimit.Unit: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Unit); + fprintf(fp, "EVMaximumCurrentLimit.Value: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Value); + } + + fprintf(fp, "EVMaximumPowerLimit_isUsed: %u\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit_isUsed); + if (doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit_isUsed) { + fprintf(fp, "EVMaximumPowerLimit.Multiplier: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Multiplier); + fprintf(fp, "EVMaximumPowerLimit.Unit: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Unit); + fprintf(fp, "EVMaximumPowerLimit.Value: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Value); + } + + fprintf(fp, "BulkChargingComplete_isUsed: %u\n", doc->V2G_Message.Body.CurrentDemandReq.BulkChargingComplete_isUsed); + if (doc->V2G_Message.Body.CurrentDemandReq.BulkChargingComplete_isUsed) { + fprintf(fp, "BulkChargingComplete: %u\n", doc->V2G_Message.Body.CurrentDemandReq.BulkChargingComplete); + } + + // ChargingComplete (필수 필드) + fprintf(fp, "ChargingComplete: %u\n", doc->V2G_Message.Body.CurrentDemandReq.ChargingComplete); + + fprintf(fp, "RemainingTimeToFullSoC_isUsed: %u\n", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC_isUsed); + if (doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC_isUsed) { + fprintf(fp, "RemainingTimeToFullSoC.Multiplier: %d\n", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Multiplier); + fprintf(fp, "RemainingTimeToFullSoC.Unit: %d\n", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Unit); + fprintf(fp, "RemainingTimeToFullSoC.Value: %d\n", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Value); + } + + fprintf(fp, "RemainingTimeToBulkSoC_isUsed: %u\n", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC_isUsed); + if (doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC_isUsed) { + fprintf(fp, "RemainingTimeToBulkSoC.Multiplier: %d\n", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Multiplier); + fprintf(fp, "RemainingTimeToBulkSoC.Unit: %d\n", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Unit); + fprintf(fp, "RemainingTimeToBulkSoC.Value: %d\n", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Value); + } + + // EVTargetVoltage (필수 필드) + fprintf(fp, "EVTargetVoltage.Multiplier: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Multiplier); + fprintf(fp, "EVTargetVoltage.Unit: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Unit); + fprintf(fp, "EVTargetVoltage.Value: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Value); + } + } + + fclose(fp); + printf("✓ Structure dump saved to %s\n", filename); +} + +// Helper function to read EXI file +int readEXIFile(char* file, uint8_t* buffer, size_t buffer_size, size_t *bytes_read) { + FILE *fp = fopen(file, "rb"); + if (fp == NULL) { + return -1; + } + + *bytes_read = fread(buffer, 1, buffer_size, fp); + fclose(fp); + + if (*bytes_read == 0) { + return -1; + } + + return 0; +} + +// Helper functions for Wireshark XML output removed - using numeric values directly + +void print_xml_header_wireshark() { + printf("\n"); + printf("\n"); +} + +void print_xml_footer_wireshark() { + printf(""); +} + +void print_iso1_xml_wireshark(struct iso1EXIDocument* doc) { + print_xml_header_wireshark(); + + printf(""); + for(int i = 0; i < doc->V2G_Message.Header.SessionID.bytesLen; i++) { + printf("%02X", doc->V2G_Message.Header.SessionID.bytes[i]); + } + printf(""); + + printf(""); + + if (doc->V2G_Message.Body.CurrentDemandRes_isUsed) { + printf(""); + printf("%d", doc->V2G_Message.Body.CurrentDemandRes.ResponseCode); + printf(""); + printf("%d", doc->V2G_Message.Body.CurrentDemandRes.DC_EVSEStatus.EVSEIsolationStatus); + printf("%d", doc->V2G_Message.Body.CurrentDemandRes.DC_EVSEStatus.EVSEStatusCode); + printf(""); + + printf(""); + printf("%d", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentVoltage.Multiplier); + printf("%d", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentVoltage.Unit); + printf("%d", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentVoltage.Value); + printf(""); + + printf(""); + printf("%d", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentCurrent.Multiplier); + printf("%d", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentCurrent.Unit); + printf("%d", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentCurrent.Value); + printf(""); + + printf("%s", doc->V2G_Message.Body.CurrentDemandRes.EVSECurrentLimitAchieved ? "true" : "false"); + printf("%s", doc->V2G_Message.Body.CurrentDemandRes.EVSEVoltageLimitAchieved ? "true" : "false"); + printf("%s", doc->V2G_Message.Body.CurrentDemandRes.EVSEPowerLimitAchieved ? "true" : "false"); + printf("%.*s", + doc->V2G_Message.Body.CurrentDemandRes.EVSEID.charactersLen, + doc->V2G_Message.Body.CurrentDemandRes.EVSEID.characters); + printf("%d", doc->V2G_Message.Body.CurrentDemandRes.SAScheduleTupleID); + printf(""); + } + else if (doc->V2G_Message.Body.CurrentDemandReq_isUsed) { + printf(""); + printf(""); + printf("%s", doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVReady ? "true" : "false"); + + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVErrorCode); + + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVRESSSOC); + printf(""); + + printf(""); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Multiplier); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Unit); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Value); + printf(""); + + if (doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit_isUsed) { + printf(""); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Multiplier); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Unit); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Value); + printf(""); + } + + if (doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit_isUsed) { + printf(""); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Multiplier); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Unit); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Value); + printf(""); + } + + if (doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit_isUsed) { + printf(""); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Multiplier); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Unit); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Value); + printf(""); + } + + if (doc->V2G_Message.Body.CurrentDemandReq.BulkChargingComplete_isUsed) { + printf("%s", doc->V2G_Message.Body.CurrentDemandReq.BulkChargingComplete ? "true" : "false"); + } + + printf("%s", doc->V2G_Message.Body.CurrentDemandReq.ChargingComplete ? "true" : "false"); + + if (doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC_isUsed) { + printf(""); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Multiplier); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Unit); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Value); + printf(""); + } + + if (doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC_isUsed) { + printf(""); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Multiplier); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Unit); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Value); + printf(""); + } + + // EVTargetVoltage must come last according to EXI grammar + printf(""); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Multiplier); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Unit); + printf("%d", doc->V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Value); + printf(""); + + printf(""); + } + + printf(""); + print_xml_footer_wireshark(); +} + +void print_iso1_message(struct iso1EXIDocument* doc) { + printf("=== ISO 15118-2 V2G Message Analysis ===\n"); + printf("Message Type: ISO1 (2013)\n"); + printf("V2G_Message_isUsed: %s\n", doc->V2G_Message_isUsed ? "true" : "false"); + + if (doc->V2G_Message_isUsed) { + printf("\n--- Header ---\n"); + printf("SessionID: "); + for(int i = 0; i < doc->V2G_Message.Header.SessionID.bytesLen; i++) { + printf("%02X", doc->V2G_Message.Header.SessionID.bytes[i]); + } + printf(" ("); + for(int i = 0; i < doc->V2G_Message.Header.SessionID.bytesLen; i++) { + if (doc->V2G_Message.Header.SessionID.bytes[i] >= 32 && doc->V2G_Message.Header.SessionID.bytes[i] <= 126) { + printf("%c", doc->V2G_Message.Header.SessionID.bytes[i]); + } else { + printf("."); + } + } + printf(")\n"); + + printf("\n--- Body ---\n"); + + if (doc->V2G_Message.Body.CurrentDemandRes_isUsed) { + printf("Message Type: CurrentDemandRes\n"); + printf("ResponseCode: %d\n", doc->V2G_Message.Body.CurrentDemandRes.ResponseCode); + + printf("\nDC_EVSEStatus:\n"); + printf(" EVSEIsolationStatus: %d\n", doc->V2G_Message.Body.CurrentDemandRes.DC_EVSEStatus.EVSEIsolationStatus); + printf(" EVSEStatusCode: %d\n", doc->V2G_Message.Body.CurrentDemandRes.DC_EVSEStatus.EVSEStatusCode); + + printf("\nEVSEPresentVoltage:\n"); + printf(" Multiplier: %d\n", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentVoltage.Multiplier); + printf(" Unit: %d\n", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentVoltage.Unit); + printf(" Value: %d\n", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentVoltage.Value); + + printf("\nEVSEPresentCurrent:\n"); + printf(" Multiplier: %d\n", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentCurrent.Multiplier); + printf(" Unit: %d\n", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentCurrent.Unit); + printf(" Value: %d\n", doc->V2G_Message.Body.CurrentDemandRes.EVSEPresentCurrent.Value); + + printf("\nLimit Status:\n"); + printf(" CurrentLimitAchieved: %s\n", doc->V2G_Message.Body.CurrentDemandRes.EVSECurrentLimitAchieved ? "true" : "false"); + printf(" VoltageLimitAchieved: %s\n", doc->V2G_Message.Body.CurrentDemandRes.EVSEVoltageLimitAchieved ? "true" : "false"); + printf(" PowerLimitAchieved: %s\n", doc->V2G_Message.Body.CurrentDemandRes.EVSEPowerLimitAchieved ? "true" : "false"); + + printf("\nEVSEID: %.*s\n", + doc->V2G_Message.Body.CurrentDemandRes.EVSEID.charactersLen, + doc->V2G_Message.Body.CurrentDemandRes.EVSEID.characters); + printf("SAScheduleTupleID: %d\n", doc->V2G_Message.Body.CurrentDemandRes.SAScheduleTupleID); + } + else if (doc->V2G_Message.Body.CurrentDemandReq_isUsed) { + printf("Message Type: CurrentDemandReq\n"); + + printf("\nDC_EVStatus:\n"); + printf(" EVReady: %s\n", doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVReady ? "true" : "false"); + printf(" EVErrorCode: %d\n", doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVErrorCode); + printf(" EVRESSSOC: %d%%\n", doc->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVRESSSOC); + + printf("\nEVTargetCurrent:\n"); + printf(" Multiplier: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Multiplier); + printf(" Unit: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Unit); + printf(" Value: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Value); + + printf("\nEVTargetVoltage:\n"); + printf(" Multiplier: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Multiplier); + printf(" Unit: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Unit); + printf(" Value: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Value); + + if (doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit_isUsed) { + printf("\nEVMaximumVoltageLimit:\n"); + printf(" Multiplier: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Multiplier); + printf(" Unit: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Unit); + printf(" Value: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Value); + } + + if (doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit_isUsed) { + printf("\nEVMaximumCurrentLimit:\n"); + printf(" Multiplier: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Multiplier); + printf(" Unit: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Unit); + printf(" Value: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Value); + } + + if (doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit_isUsed) { + printf("\nEVMaximumPowerLimit:\n"); + printf(" Multiplier: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Multiplier); + printf(" Unit: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Unit); + printf(" Value: %d\n", doc->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Value); + } + + if (doc->V2G_Message.Body.CurrentDemandReq.BulkChargingComplete_isUsed) { + printf("\nBulkChargingComplete: %s\n", doc->V2G_Message.Body.CurrentDemandReq.BulkChargingComplete ? "true" : "false"); + } + + printf("ChargingComplete: %s\n", doc->V2G_Message.Body.CurrentDemandReq.ChargingComplete ? "true" : "false"); + + if (doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC_isUsed) { + printf("\nRemainingTimeToFullSoC:\n"); + printf(" Multiplier: %d\n", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Multiplier); + printf(" Unit: %d\n", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Unit); + printf(" Value: %d\n", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Value); + } + + if (doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC_isUsed) { + printf("\nRemainingTimeToBulkSoC:\n"); + printf(" Multiplier: %d\n", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Multiplier); + printf(" Unit: %d\n", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Unit); + printf(" Value: %d\n", doc->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Value); + } + } + else { + printf("Message Type: Other message type (not fully supported)\n"); + } + } + printf("\n"); +} + +int main(int argc, char *argv[]) { + int xml_mode = 0; + int encode_mode = 0; + char *filename = NULL; + + if (argc == 2) { + filename = argv[1]; + } else if (argc == 3 && strcmp(argv[1], "-decode") == 0) { + xml_mode = 1; + filename = argv[2]; + } else if (argc == 3 && strcmp(argv[1], "-encode") == 0) { + encode_mode = 1; + filename = argv[2]; + } else { + printf("Usage: %s [-decode|-encode] input_file\\n", argv[0]); + printf("Enhanced EXI viewer with XML conversion capabilities\\n"); + printf(" -decode Convert EXI to Wireshark-style XML format\\n"); + printf(" -encode Convert XML to EXI format\\n"); + printf(" (default) Analyze EXI with detailed output\\n"); + return -1; + } + + uint8_t buffer[BUFFER_SIZE]; + bitstream_t stream; + size_t pos = 0; + int errn = 0; + + struct iso1EXIDocument iso1Doc; + struct iso2EXIDocument iso2Doc; + struct dinEXIDocument dinDoc; + + // Initialize documents + init_iso1EXIDocument(&iso1Doc); + init_iso2EXIDocument(&iso2Doc); + init_dinEXIDocument(&dinDoc); + + // Handle encode mode (XML to EXI) + if (encode_mode) { + // Read XML file + FILE* xml_file = fopen(filename, "r"); + if (!xml_file) { + printf("Error opening XML file: %s\\n", filename); + return -1; + } + + // Read entire XML content + fseek(xml_file, 0, SEEK_END); + long xml_size = ftell(xml_file); + fseek(xml_file, 0, SEEK_SET); + + char* xml_content = malloc(xml_size + 1); + if (!xml_content) { + printf("Error allocating memory for XML content\\n"); + fclose(xml_file); + return -1; + } + + fread(xml_content, 1, xml_size, xml_file); + xml_content[xml_size] = '\0'; + fclose(xml_file); + + // Parse XML to ISO1 document structure + if (parse_xml_to_iso1(xml_content, &iso1Doc) != 0) { + printf("Error parsing XML file - no supported message type found\\n"); + free(xml_content); + return -1; + } + + // XML parsing debug info to stderr (optional) + // fprintf(stderr, "=== XML Parsing Debug ===\\n"); + // fprintf(stderr, "V2G_Message_isUsed: %s\\n", iso1Doc.V2G_Message_isUsed ? "true" : "false"); + // fprintf(stderr, "SessionID length: %d\\n", iso1Doc.V2G_Message.Header.SessionID.bytesLen); + // fprintf(stderr, "CurrentDemandReq_isUsed: %s\\n", iso1Doc.V2G_Message.Body.CurrentDemandReq_isUsed ? "true" : "false"); + + // Debug output disabled for clean hex-only output + /* + if (iso1Doc.V2G_Message.Body.CurrentDemandReq_isUsed) { + fprintf(stderr, "EVReady: %s\\n", iso1Doc.V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVReady ? "true" : "false"); + fprintf(stderr, "EVErrorCode: %d\\n", iso1Doc.V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVErrorCode); + fprintf(stderr, "EVRESSSOC: %d\\n", iso1Doc.V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVRESSSOC); + fprintf(stderr, "EVTargetCurrent: M=%d, U=%d, V=%d\\n", + iso1Doc.V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Multiplier, + iso1Doc.V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Unit, + iso1Doc.V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Value); + fprintf(stderr, "EVTargetVoltage: M=%d, U=%d, V=%d\\n", + iso1Doc.V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Multiplier, + iso1Doc.V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Unit, + iso1Doc.V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Value); + } + */ + + free(xml_content); + + // Encode to EXI + pos = 0; + stream.size = BUFFER_SIZE; + stream.data = buffer; + stream.pos = &pos; + stream.buffer = 0; + stream.capacity = 0; + + // 구조체 덤프 (디버그용, 필요시 활성화) + // dump_iso1_document_to_file(&iso1Doc, "struct_xml.txt"); + + errn = encode_iso1ExiDocument(&stream, &iso1Doc); + + if (errn != 0) { + fprintf(stderr, "Error encoding to EXI (error: %d)\\n", errn); + return -1; + } + + // Check if output is redirected + struct stat stat_buf; + int is_redirected = (fstat(fileno(stdout), &stat_buf) == 0 && S_ISREG(stat_buf.st_mode)); + + if (is_redirected) { + // Redirected output: write binary data + fwrite(buffer, 1, pos, stdout); + } else { + // Terminal output: show hex string only (like XML decode mode) + for(size_t i = 0; i < pos; i++) { + printf("%02X", buffer[i]); + } + printf("\n"); + } + return 0; + } + + // Read EXI file for decode/analysis mode + errn = readEXIFile(filename, buffer, BUFFER_SIZE, &pos); + if (errn != 0) { + printf("Error reading file: %s\\n", filename); + return -1; + } + + if (!xml_mode) { + printf("File: %s (%zu bytes)\\n", filename, pos); + printf("Raw hex data: "); + for(size_t i = 0; i < (pos > 32 ? 32 : pos); i++) { + printf("%02X ", buffer[i]); + } + if (pos > 32) printf("..."); + printf("\\n\\n"); + + // Analyze data structure and extract EXI body + analyze_data_structure(buffer, pos); + } + + // Extract EXI body from V2G Transfer Protocol data + uint8_t exi_buffer[BUFFER_SIZE]; + size_t exi_size = extract_exi_body(buffer, pos, exi_buffer, BUFFER_SIZE); + + if (exi_size != pos) { + if (!xml_mode) { + printf("EXI body extracted: %zu bytes (was %zu bytes)\\n", exi_size, pos); + printf("EXI hex data: "); + for(size_t i = 0; i < (exi_size > 32 ? 32 : exi_size); i++) { + printf("%02X ", exi_buffer[i]); + } + if (exi_size > 32) printf("..."); + printf("\\n\\n"); + } + // Use extracted EXI data + memcpy(buffer, exi_buffer, exi_size); + pos = exi_size; + } + + // Setup stream + pos = 0; // reset position for decoding + stream.size = BUFFER_SIZE; + stream.data = buffer; + stream.pos = &pos; + stream.buffer = 0; + stream.capacity = 0; + + // Try ISO1 first + pos = 0; + if (!xml_mode) printf("Trying ISO1 decoder...\\n"); + errn = decode_iso1ExiDocument(&stream, &iso1Doc); + if (errn == 0) { + if (!xml_mode) printf("✓ Successfully decoded as ISO1\\n\\n"); + if (xml_mode) { + print_iso1_xml_wireshark(&iso1Doc); + } else { + print_iso1_message(&iso1Doc); + + // Compare with expected structure + printf("\\n=== Original EXI Structure Debug ===\\n"); + printf("V2G_Message_isUsed: %s\\n", iso1Doc.V2G_Message_isUsed ? "true" : "false"); + printf("SessionID length: %d\\n", iso1Doc.V2G_Message.Header.SessionID.bytesLen); + printf("CurrentDemandReq_isUsed: %s\\n", iso1Doc.V2G_Message.Body.CurrentDemandReq_isUsed ? "true" : "false"); + + if (iso1Doc.V2G_Message.Body.CurrentDemandReq_isUsed) { + printf("EVReady: %s\\n", iso1Doc.V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVReady ? "true" : "false"); + printf("EVErrorCode: %d\\n", iso1Doc.V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVErrorCode); + printf("EVRESSSOC: %d\\n", iso1Doc.V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVRESSSOC); + printf("EVTargetCurrent: M=%d, U=%d, V=%d\\n", + iso1Doc.V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Multiplier, + iso1Doc.V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Unit, + iso1Doc.V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Value); + printf("EVMaximumVoltageLimit_isUsed: %s\\n", + iso1Doc.V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit_isUsed ? "true" : "false"); + printf("EVMaximumCurrentLimit_isUsed: %s\\n", + iso1Doc.V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit_isUsed ? "true" : "false"); + printf("EVMaximumPowerLimit_isUsed: %s\\n", + iso1Doc.V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit_isUsed ? "true" : "false"); + printf("BulkChargingComplete_isUsed: %s\\n", + iso1Doc.V2G_Message.Body.CurrentDemandReq.BulkChargingComplete_isUsed ? "true" : "false"); + printf("RemainingTimeToFullSoC_isUsed: %s\\n", + iso1Doc.V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC_isUsed ? "true" : "false"); + printf("RemainingTimeToBulkSoC_isUsed: %s\\n", + iso1Doc.V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC_isUsed ? "true" : "false"); + } + } + + // 원본 EXI 디코딩 후 구조체 덤프 (분석 모드일 때만) + if (!xml_mode) { + dump_iso1_document_to_file(&iso1Doc, "struct_exi.txt"); + } + + return 0; + } else { + if (!xml_mode) printf("✗ ISO1 decode failed (error: %d)\\n", errn); + } + + // Try ISO2 + pos = 0; + if (!xml_mode) printf("Trying ISO2 decoder...\\n"); + errn = decode_iso2ExiDocument(&stream, &iso2Doc); + if (errn == 0) { + if (!xml_mode) printf("✓ Successfully decoded as ISO2\\n\\n"); + if (xml_mode) { + printf("ISO2 XML output not implemented for Wireshark format\\n"); + } else { + printf("ISO2 analysis not fully implemented\\n"); + } + return 0; + } else { + if (!xml_mode) printf("✗ ISO2 decode failed (error: %d)\\n", errn); + } + + // Try DIN + pos = 0; + if (!xml_mode) printf("Trying DIN decoder...\\n"); + errn = decode_dinExiDocument(&stream, &dinDoc); + if (errn == 0) { + if (!xml_mode) { + printf("✓ Successfully decoded as DIN\\n\\n"); + printf("=== DIN V2G Message ===\\n"); + // Add DIN message printing as needed + } + return 0; + } else { + if (!xml_mode) printf("✗ DIN decode failed (error: %d)\\n", errn); + } + + if (!xml_mode) { + printf("\\n❌ Could not decode EXI file with any supported codec\\n"); + printf("Supported formats: ISO1, ISO2, DIN\\n"); + } + + return -1; +} \ No newline at end of file diff --git a/csharp/vc2022/V2GDecoder/V2GDecoder.vcxproj b/csharp/vc2022/V2GDecoder/V2GDecoder.vcxproj new file mode 100644 index 0000000..83560cf --- /dev/null +++ b/csharp/vc2022/V2GDecoder/V2GDecoder.vcxproj @@ -0,0 +1,213 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {A7F7B7E1-2B3C-4D5E-8F9A-1B2C3D4E5F6G} + V2GDecoder + 10.0 + + + + Application + true + v143 + Unicode + false + + + Application + false + v143 + true + Unicode + false + + + Application + true + v143 + Unicode + false + + + Application + false + v143 + true + Unicode + false + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)bin\$(Platform)\$(Configuration)\ + $(SolutionDir)obj\$(ProjectName)\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)bin\$(Platform)\$(Configuration)\ + $(SolutionDir)obj\$(ProjectName)\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)bin\$(Platform)\$(Configuration)\ + $(SolutionDir)obj\$(ProjectName)\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)bin\$(Platform)\$(Configuration)\ + $(SolutionDir)obj\$(ProjectName)\$(Platform)\$(Configuration)\ + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_WIN32;__STDC_NO_VLA__;%(PreprocessorDefinitions) + true + CompileAsC + ..\src;..\src\codec;..\src\iso1;..\src\iso2;..\src\din;..\src\appHandshake;..\src\transport;..\src\xmldsig;%(AdditionalIncludeDirectories) + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_WIN32;__STDC_NO_VLA__;%(PreprocessorDefinitions) + true + CompileAsC + ..\src;..\src\codec;..\src\iso1;..\src\iso2;..\src\din;..\src\appHandshake;..\src\transport;..\src\xmldsig;%(AdditionalIncludeDirectories) + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_WIN32;__STDC_NO_VLA__;%(PreprocessorDefinitions) + true + CompileAsC + ..\src;..\src\codec;..\src\iso1;..\src\iso2;..\src\din;..\src\appHandshake;..\src\transport;..\src\xmldsig;%(AdditionalIncludeDirectories) + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + CompileAsC + ..\src;..\src\codec;..\src\iso1;..\src\iso2;..\src\din;..\src\appHandshake;..\src\transport;..\src\xmldsig;%(AdditionalIncludeDirectories) + + + Console + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/csharp/vc2022/V2GDecoder/V2GDecoder.vcxproj.filters b/csharp/vc2022/V2GDecoder/V2GDecoder.vcxproj.filters new file mode 100644 index 0000000..3d534ae --- /dev/null +++ b/csharp/vc2022/V2GDecoder/V2GDecoder.vcxproj.filters @@ -0,0 +1,134 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890} + + + {B2C3D4E5-F678-9012-BCDE-F23456789012} + + + {C3D4E5F6-7890-1234-CDEF-345678901234} + + + {D4E5F678-9012-3456-DEF0-456789012345} + + + {E5F67890-1234-5678-EF01-567890123456} + + + {F6789012-3456-7890-F012-678901234567} + + + + + Source Files + + + Source Files\codec + + + Source Files\codec + + + Source Files\codec + + + Source Files\codec + + + Source Files\codec + + + Source Files\codec + + + Source Files\codec + + + Source Files\codec + + + Source Files\codec + + + Source Files\iso1 + + + Source Files\iso1 + + + Source Files\iso1 + + + Source Files\appHandshake + + + Source Files\appHandshake + + + Source Files\appHandshake + + + + + Header Files\codec + + + Header Files\codec + + + Header Files\codec + + + Header Files\codec + + + Header Files\codec + + + Header Files\codec + + + Header Files\codec + + + Header Files\codec + + + Header Files\codec + + + Header Files\codec + + + Header Files\codec + + + Header Files\iso1 + + + Header Files\iso1 + + + Header Files\iso1 + + + Header Files\appHandshake + + + Header Files\appHandshake + + + Header Files\appHandshake + + + \ No newline at end of file diff --git a/csharp/vc2022/V2GDecoderC.sln b/csharp/vc2022/V2GDecoderC.sln new file mode 100644 index 0000000..ec2f60f --- /dev/null +++ b/csharp/vc2022/V2GDecoderC.sln @@ -0,0 +1,50 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "V2GDecoder", "V2GDecoder\V2GDecoder.vcxproj", "{A7F7B7E1-2B3C-4D5E-8F9A-1B2C3D4E5F6G}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HexToBinary", "HexToBinary\HexToBinary.vcxproj", "{B8F8C8F2-3C4D-5E6F-9A0B-2C3D4E5F6A7B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HexDumpToBinary", "HexDumpToBinary\HexDumpToBinary.vcxproj", "{C9F9D9F3-4D5E-6F7A-AB1C-3D4E5F6A7B8C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A7F7B7E1-2B3C-4D5E-8F9A-1B2C3D4E5F6G}.Debug|x64.ActiveCfg = Debug|x64 + {A7F7B7E1-2B3C-4D5E-8F9A-1B2C3D4E5F6G}.Debug|x64.Build.0 = Debug|x64 + {A7F7B7E1-2B3C-4D5E-8F9A-1B2C3D4E5F6G}.Debug|x86.ActiveCfg = Debug|Win32 + {A7F7B7E1-2B3C-4D5E-8F9A-1B2C3D4E5F6G}.Debug|x86.Build.0 = Debug|Win32 + {A7F7B7E1-2B3C-4D5E-8F9A-1B2C3D4E5F6G}.Release|x64.ActiveCfg = Release|x64 + {A7F7B7E1-2B3C-4D5E-8F9A-1B2C3D4E5F6G}.Release|x64.Build.0 = Release|x64 + {A7F7B7E1-2B3C-4D5E-8F9A-1B2C3D4E5F6G}.Release|x86.ActiveCfg = Release|Win32 + {A7F7B7E1-2B3C-4D5E-8F9A-1B2C3D4E5F6G}.Release|x86.Build.0 = Release|Win32 + {B8F8C8F2-3C4D-5E6F-9A0B-2C3D4E5F6A7B}.Debug|x64.ActiveCfg = Debug|x64 + {B8F8C8F2-3C4D-5E6F-9A0B-2C3D4E5F6A7B}.Debug|x64.Build.0 = Debug|x64 + {B8F8C8F2-3C4D-5E6F-9A0B-2C3D4E5F6A7B}.Debug|x86.ActiveCfg = Debug|Win32 + {B8F8C8F2-3C4D-5E6F-9A0B-2C3D4E5F6A7B}.Debug|x86.Build.0 = Debug|Win32 + {B8F8C8F2-3C4D-5E6F-9A0B-2C3D4E5F6A7B}.Release|x64.ActiveCfg = Release|x64 + {B8F8C8F2-3C4D-5E6F-9A0B-2C3D4E5F6A7B}.Release|x64.Build.0 = Release|x64 + {B8F8C8F2-3C4D-5E6F-9A0B-2C3D4E5F6A7B}.Release|x86.ActiveCfg = Release|Win32 + {B8F8C8F2-3C4D-5E6F-9A0B-2C3D4E5F6A7B}.Release|x86.Build.0 = Release|Win32 + {C9F9D9F3-4D5E-6F7A-AB1C-3D4E5F6A7B8C}.Debug|x64.ActiveCfg = Debug|x64 + {C9F9D9F3-4D5E-6F7A-AB1C-3D4E5F6A7B8C}.Debug|x64.Build.0 = Debug|x64 + {C9F9D9F3-4D5E-6F7A-AB1C-3D4E5F6A7B8C}.Debug|x86.ActiveCfg = Debug|Win32 + {C9F9D9F3-4D5E-6F7A-AB1C-3D4E5F6A7B8C}.Debug|x86.Build.0 = Debug|Win32 + {C9F9D9F3-4D5E-6F7A-AB1C-3D4E5F6A7B8C}.Release|x64.ActiveCfg = Release|x64 + {C9F9D9F3-4D5E-6F7A-AB1C-3D4E5F6A7B8C}.Release|x64.Build.0 = Release|x64 + {C9F9D9F3-4D5E-6F7A-AB1C-3D4E5F6A7B8C}.Release|x86.ActiveCfg = Release|Win32 + {C9F9D9F3-4D5E-6F7A-AB1C-3D4E5F6A7B8C}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {1A2B3C4D-5E6F-7A8B-9C0D-1E2F3A4B5C6D} + EndGlobalSection +EndGlobal \ No newline at end of file diff --git a/csharp/vc2022/build.bat b/csharp/vc2022/build.bat new file mode 100644 index 0000000..8fe102b --- /dev/null +++ b/csharp/vc2022/build.bat @@ -0,0 +1,47 @@ +@echo off +echo Building V2GDecoder VC++ Project... + +REM Check if Visual Studio 2022 is installed +if not exist "C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe" ( + echo Visual Studio 2022 Professional not found! + echo Please install Visual Studio 2022 Professional or update the MSBuild path. + pause + exit /b 1 +) + +REM Set MSBuild path +set MSBUILD="C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe" + +REM Clean previous builds +echo Cleaning previous builds... +%MSBUILD% V2GDecoderC.sln -target:Clean -property:Configuration=Debug -property:Platform=x64 -verbosity:minimal + +REM Build Debug x64 configuration +echo Building Debug x64 configuration... +%MSBUILD% V2GDecoderC.sln -property:Configuration=Debug -property:Platform=x64 -verbosity:normal + +if %ERRORLEVEL% EQU 0 ( + echo Build successful! + echo Output directory: bin\x64\Debug\ + dir bin\x64\Debug\*.exe /b +) else ( + echo Build failed with error code %ERRORLEVEL% + echo Please check the source file paths and project configuration. +) + +REM Test the built executable if successful +if %ERRORLEVEL% EQU 0 ( + echo. + echo Testing the built V2GDecoder.exe... + if exist bin\x64\Debug\V2GDecoder.exe ( + echo Running test with test4.exi... + bin\x64\Debug\V2GDecoder.exe ..\..\test4.exi + echo. + echo Running test with test5.exi... + bin\x64\Debug\V2GDecoder.exe ..\..\test5.exi + ) else ( + echo V2GDecoder.exe not found in output directory + ) +) + +pause \ No newline at end of file diff --git a/csharp/vc2022/hex_dump_to_binary.c b/csharp/vc2022/hex_dump_to_binary.c new file mode 100644 index 0000000..e5399b5 --- /dev/null +++ b/csharp/vc2022/hex_dump_to_binary.c @@ -0,0 +1,78 @@ +#include +#include +#include +#include + +int hex_char_to_int(char c) { + if (c >= '0' && c <= '9') return c - '0'; + if (c >= 'A' && c <= 'F') return c - 'A' + 10; + if (c >= 'a' && c <= 'f') return c - 'a' + 10; + return -1; +} + +int main() { + // Extract EXI data starting from offset 0x0052 (after "80 98 02") + // The complete EXI data from the hex dump + const char* hex_string = "8098021050908c0c0c0e0c50d10032018600a01881ae0601860c806140c801030800006100001881980600"; + + size_t hex_len = strlen(hex_string); + if (hex_len % 2 != 0) { + printf("Error: Hex string length must be even\n"); + return -1; + } + + size_t binary_len = hex_len / 2; + unsigned char* binary_data = malloc(binary_len); + + if (!binary_data) { + printf("Memory allocation failed\n"); + return -1; + } + + // Convert hex string to binary + for (size_t i = 0; i < binary_len; i++) { + int high = hex_char_to_int(hex_string[i * 2]); + int low = hex_char_to_int(hex_string[i * 2 + 1]); + + if (high == -1 || low == -1) { + printf("Invalid hex character at position %zu\n", i * 2); + free(binary_data); + return -1; + } + + binary_data[i] = (high << 4) | low; + } + + // Write to file + FILE* file = fopen("test2.exi", "wb"); + if (!file) { + printf("Cannot create output file\n"); + free(binary_data); + return -1; + } + + size_t written = fwrite(binary_data, 1, binary_len, file); + fclose(file); + free(binary_data); + + if (written != binary_len) { + printf("Write error\n"); + return -1; + } + + printf("Successfully created test2.exi with %zu bytes\n", binary_len); + + // Show first few bytes for verification + printf("First 16 bytes: "); + FILE* verify = fopen("test2.exi", "rb"); + if (verify) { + for (int i = 0; i < 16 && i < binary_len; i++) { + int c = fgetc(verify); + printf("%02X ", c); + } + fclose(verify); + } + printf("\n"); + + return 0; +} \ No newline at end of file diff --git a/csharp/vc2022/hex_to_binary.c b/csharp/vc2022/hex_to_binary.c new file mode 100644 index 0000000..1037059 --- /dev/null +++ b/csharp/vc2022/hex_to_binary.c @@ -0,0 +1,76 @@ +#include +#include +#include +#include + +int hex_char_to_int(char c) { + if (c >= '0' && c <= '9') return c - '0'; + if (c >= 'A' && c <= 'F') return c - 'A' + 10; + if (c >= 'a' && c <= 'f') return c - 'a' + 10; + return -1; +} + +int main() { + const char* hex_string = "8098021050908C0C0C0E0C50D10032018600A01881AE0601860C806140C801030800006100001881980600"; + + size_t hex_len = strlen(hex_string); + if (hex_len % 2 != 0) { + printf("Error: Hex string length must be even\n"); + return -1; + } + + size_t binary_len = hex_len / 2; + unsigned char* binary_data = malloc(binary_len); + + if (!binary_data) { + printf("Memory allocation failed\n"); + return -1; + } + + // Convert hex string to binary + for (size_t i = 0; i < binary_len; i++) { + int high = hex_char_to_int(hex_string[i * 2]); + int low = hex_char_to_int(hex_string[i * 2 + 1]); + + if (high == -1 || low == -1) { + printf("Invalid hex character at position %zu\n", i * 2); + free(binary_data); + return -1; + } + + binary_data[i] = (high << 4) | low; + } + + // Write to file + FILE* file = fopen("test1.exi", "wb"); + if (!file) { + printf("Cannot create output file\n"); + free(binary_data); + return -1; + } + + size_t written = fwrite(binary_data, 1, binary_len, file); + fclose(file); + free(binary_data); + + if (written != binary_len) { + printf("Write error\n"); + return -1; + } + + printf("Successfully created test1.exi with %zu bytes\n", binary_len); + + // Show first few bytes for verification + printf("First 16 bytes: "); + FILE* verify = fopen("test1.exi", "rb"); + if (verify) { + for (int i = 0; i < 16 && i < binary_len; i++) { + int c = fgetc(verify); + printf("%02X ", c); + } + fclose(verify); + } + printf("\n"); + + return 0; +} \ No newline at end of file diff --git a/csharp/vc2022/src/appHandshake/appHandEXIDatatypes.c b/csharp/vc2022/src/appHandshake/appHandEXIDatatypes.c new file mode 100644 index 0000000..35e9fbf --- /dev/null +++ b/csharp/vc2022/src/appHandshake/appHandEXIDatatypes.c @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_AppProtocol.xsd

+ * + * + ********************************************************************/ + + + +#include + +#include "appHandEXIDatatypes.h" +#include "EXITypes.h" + + +#ifndef EXI_appHand_DATATYPES_C +#define EXI_appHand_DATATYPES_C + + + +void init_appHandEXIDocument(struct appHandEXIDocument* exiDoc) { + exiDoc->supportedAppProtocolReq_isUsed = 0u; + exiDoc->supportedAppProtocolRes_isUsed = 0u; +} + +void init_appHandAppProtocolType(struct appHandAppProtocolType* appHandAppProtocolType) { +} + +void init_appHandAnonType_supportedAppProtocolReq(struct appHandAnonType_supportedAppProtocolReq* appHandAnonType_supportedAppProtocolReq) { + appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen = 0u; +} + +void init_appHandAnonType_supportedAppProtocolRes(struct appHandAnonType_supportedAppProtocolRes* appHandAnonType_supportedAppProtocolRes) { + appHandAnonType_supportedAppProtocolRes->SchemaID_isUsed = 0u; +} + + + + + +#endif + diff --git a/csharp/vc2022/src/appHandshake/appHandEXIDatatypes.h b/csharp/vc2022/src/appHandshake/appHandEXIDatatypes.h new file mode 100644 index 0000000..26a24c6 --- /dev/null +++ b/csharp/vc2022/src/appHandshake/appHandEXIDatatypes.h @@ -0,0 +1,133 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_AppProtocol.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIDatatypes.h + * \brief Datatype definitions and structs for given XML Schema definitions and initialization methods + * + */ + +#ifndef EXI_appHand_DATATYPES_H +#define EXI_appHand_DATATYPES_H + +#ifdef __cplusplus +extern "C" { +#endif + + +#include + +#include "EXITypes.h" + + +/* Datatype definitions and structs for given XML Schema definitions */ + +#define UNION_YES 1 +#define UNION_NO 2 +#define SAVE_MEMORY_WITH_UNNAMED_UNION UNION_YES + +/* Complex type name='urn:iso:15118:2:2010:AppProtocol,AppProtocolType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(ProtocolNamespace,VersionNumberMajor,VersionNumberMinor,SchemaID,Priority)', derivedBy='RESTRICTION'. */ +#define appHandAppProtocolType_ProtocolNamespace_CHARACTERS_SIZE 100 /* XML schema facet maxLength for urn:iso:15118:2:2010:AppProtocol,protocolNamespaceType is 100 */ +struct appHandAppProtocolType { + /* element: ProtocolNamespace, urn:iso:15118:2:2010:AppProtocol,protocolNamespaceType */ + struct { + exi_string_character_t characters[appHandAppProtocolType_ProtocolNamespace_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ProtocolNamespace ; + /* element: VersionNumberMajor, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t VersionNumberMajor ; + /* element: VersionNumberMinor, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t VersionNumberMinor ; + /* element: SchemaID, urn:iso:15118:2:2010:AppProtocol,idType */ + uint8_t SchemaID ; + /* element: Priority, urn:iso:15118:2:2010:AppProtocol,priorityType */ + uint8_t Priority ; +}; + +typedef enum { + appHandresponseCodeType_OK_SuccessfulNegotiation = 0, + appHandresponseCodeType_OK_SuccessfulNegotiationWithMinorDeviation = 1, + appHandresponseCodeType_Failed_NoNegotiation = 2 +} appHandresponseCodeType; + +/* Complex type name='urn:iso:15118:2:2010:AppProtocol,#AnonType_supportedAppProtocolRes', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(ResponseCode,SchemaID{0-1})', derivedBy='RESTRICTION'. */ +struct appHandAnonType_supportedAppProtocolRes { + /* element: ResponseCode, urn:iso:15118:2:2010:AppProtocol,responseCodeType */ + appHandresponseCodeType ResponseCode ; + /* element: SchemaID, urn:iso:15118:2:2010:AppProtocol,idType */ + uint8_t SchemaID ; + unsigned int SchemaID_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:AppProtocol,#AnonType_supportedAppProtocolReq', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(AppProtocol{1-20})', derivedBy='RESTRICTION'. */ +#define appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE 5 +struct appHandAnonType_supportedAppProtocolReq { + /* element: AppProtocol, Complex type name='urn:iso:15118:2:2010:AppProtocol,AppProtocolType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(ProtocolNamespace,VersionNumberMajor,VersionNumberMinor,SchemaID,Priority)', derivedBy='RESTRICTION'. */ + struct { + struct appHandAppProtocolType array[appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE]; + uint16_t arrayLen; + } AppProtocol; +}; + + + + + +/* Possible root elements of EXI Document */ +struct appHandEXIDocument { +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + union { +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + struct appHandAnonType_supportedAppProtocolReq supportedAppProtocolReq ; + struct appHandAnonType_supportedAppProtocolRes supportedAppProtocolRes ; +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + }; +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + unsigned int supportedAppProtocolReq_isUsed:1; + unsigned int supportedAppProtocolRes_isUsed:1; + + + int _warning_; +}; + +/* Initialization methods for structs */ + +void init_appHandEXIDocument(struct appHandEXIDocument* exiDoc); +void init_appHandAppProtocolType(struct appHandAppProtocolType* appHandAppProtocolType); +void init_appHandAnonType_supportedAppProtocolReq(struct appHandAnonType_supportedAppProtocolReq* appHandAnonType_supportedAppProtocolReq); +void init_appHandAnonType_supportedAppProtocolRes(struct appHandAnonType_supportedAppProtocolRes* appHandAnonType_supportedAppProtocolRes); + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/appHandshake/appHandEXIDatatypesDecoder.c b/csharp/vc2022/src/appHandshake/appHandEXIDatatypesDecoder.c new file mode 100644 index 0000000..466af7e --- /dev/null +++ b/csharp/vc2022/src/appHandshake/appHandEXIDatatypesDecoder.c @@ -0,0 +1,896 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_AppProtocol.xsd

+ * + * + ********************************************************************/ + + + + +#include "appHandEXIDatatypesDecoder.h" + +#include "DecoderChannel.h" +#include "EXIHeaderDecoder.h" + +#include "appHandEXIDatatypes.h" +#include "ErrorCodes.h" + +#ifndef EXI_appHand_DATATYPES_DECODER_C +#define EXI_appHand_DATATYPES_DECODER_C + +/** event-code */ +static uint32_t eventCode; +static int errn; +static uint32_t uint32; + + +/* Forward Declarations */ +static int decode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppProtocolType* appHandAppProtocolType); +static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, struct appHandAnonType_supportedAppProtocolReq* appHandAnonType_supportedAppProtocolReq); +static int decode_appHandAnonType_supportedAppProtocolRes(bitstream_t* stream, struct appHandAnonType_supportedAppProtocolRes* appHandAnonType_supportedAppProtocolRes); + +/* Deviant data decoding (skip functions) */ + + + /* Complex type name='urn:iso:15118:2:2010:AppProtocol,AppProtocolType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(ProtocolNamespace,VersionNumberMajor,VersionNumberMinor,SchemaID,Priority)', derivedBy='RESTRICTION'. */ +static int decode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppProtocolType* appHandAppProtocolType) { + int grammarID = 0; + int done = 0; + + init_appHandAppProtocolType(appHandAppProtocolType); + + while(!done) { + switch(grammarID) { + case 0: + /* FirstStartTag[START_ELEMENT(ProtocolNamespace)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &appHandAppProtocolType->ProtocolNamespace.charactersLen); + if (errn == 0) { + if (appHandAppProtocolType->ProtocolNamespace.charactersLen >= 2) { + appHandAppProtocolType->ProtocolNamespace.charactersLen = (uint16_t)(appHandAppProtocolType->ProtocolNamespace.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, appHandAppProtocolType->ProtocolNamespace.charactersLen, appHandAppProtocolType->ProtocolNamespace.characters, appHandAppProtocolType_ProtocolNamespace_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT(ProtocolNamespace) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1: + /* Element[START_ELEMENT(VersionNumberMajor)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &appHandAppProtocolType->VersionNumberMajor); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT(VersionNumberMajor) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2: + /* Element[START_ELEMENT(VersionNumberMinor)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &appHandAppProtocolType->VersionNumberMinor); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT(VersionNumberMinor) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[START_ELEMENT(SchemaID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + appHandAppProtocolType->SchemaID = (uint8_t)(uint32 + 0); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT(SchemaID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[START_ELEMENT(Priority)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &(uint32)); + appHandAppProtocolType->Priority = (uint8_t)(uint32 + 1); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT(Priority) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 5; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 5: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:AppProtocol,#AnonType_supportedAppProtocolReq', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(AppProtocol{1-20})', derivedBy='RESTRICTION'. */ +static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, struct appHandAnonType_supportedAppProtocolReq* appHandAnonType_supportedAppProtocolReq) { + int grammarID = 7; + int done = 0; + + init_appHandAnonType_supportedAppProtocolReq(appHandAnonType_supportedAppProtocolReq); + + while(!done) { + switch(grammarID) { + case 7: + /* FirstStartTag[START_ELEMENT(AppProtocol)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 8; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 8: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 9; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 9: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 10; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 10: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 11; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 11: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 12; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 12: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 13; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 13: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 14; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 14: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 15; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 15: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 16; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 16: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 17; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 17: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 18; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 18: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 19; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 19: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 20; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 20: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 21; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 21: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 22; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 22: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 23; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 23: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 24; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 24: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 25; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 25: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 26; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 26: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) { + errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 5; + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 5: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:AppProtocol,#AnonType_supportedAppProtocolRes', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(ResponseCode,SchemaID{0-1})', derivedBy='RESTRICTION'. */ +static int decode_appHandAnonType_supportedAppProtocolRes(bitstream_t* stream, struct appHandAnonType_supportedAppProtocolRes* appHandAnonType_supportedAppProtocolRes) { + int grammarID = 27; + int done = 0; + + init_appHandAnonType_supportedAppProtocolRes(appHandAnonType_supportedAppProtocolRes); + + while(!done) { + switch(grammarID) { + case 27: + /* FirstStartTag[START_ELEMENT(ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + appHandAnonType_supportedAppProtocolRes->ResponseCode = (appHandresponseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT(ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 28; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 28: + /* Element[START_ELEMENT(SchemaID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + appHandAnonType_supportedAppProtocolRes->SchemaID = (uint8_t)(uint32 + 0); + appHandAnonType_supportedAppProtocolRes->SchemaID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT(SchemaID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 5; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 5: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + + + + +int decode_appHandExiDocument(bitstream_t* stream, struct appHandEXIDocument* exiDoc) { + errn = readEXIHeader(stream); + + if(errn == 0) { + /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC] */ + init_appHandEXIDocument(exiDoc); + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if(errn == 0) { + switch(eventCode) { + case 0: + /* START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq) */ + errn = decode_appHandAnonType_supportedAppProtocolReq(stream, &exiDoc->supportedAppProtocolReq); + exiDoc->supportedAppProtocolReq_isUsed = 1u; + break; + case 1: + /* START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes) */ + errn = decode_appHandAnonType_supportedAppProtocolRes(stream, &exiDoc->supportedAppProtocolRes); + exiDoc->supportedAppProtocolRes_isUsed = 1u; + break; + default: + errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; + break; + } + } + + } + + return errn; +} + + +#endif + diff --git a/csharp/vc2022/src/appHandshake/appHandEXIDatatypesDecoder.h b/csharp/vc2022/src/appHandshake/appHandEXIDatatypesDecoder.h new file mode 100644 index 0000000..1fd7f48 --- /dev/null +++ b/csharp/vc2022/src/appHandshake/appHandEXIDatatypesDecoder.h @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_AppProtocol.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIDatatypesDecoder.h + * \brief Decoder for datatype definitions + * + */ + +#ifndef EXI_appHand_DATATYPES_DECODER_H +#define EXI_appHand_DATATYPES_DECODER_H + +#ifdef __cplusplus +extern "C" { +#endif + + +#include + +#include "EXITypes.h" +#include "appHandEXIDatatypes.h" + +int decode_appHandExiDocument(bitstream_t* stream, struct appHandEXIDocument* exiDoc); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/appHandshake/appHandEXIDatatypesEncoder.c b/csharp/vc2022/src/appHandshake/appHandEXIDatatypesEncoder.c new file mode 100644 index 0000000..dc62713 --- /dev/null +++ b/csharp/vc2022/src/appHandshake/appHandEXIDatatypesEncoder.c @@ -0,0 +1,671 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_AppProtocol.xsd

+ * + * + ********************************************************************/ + + + + +#include "appHandEXIDatatypesEncoder.h" + +#include "EncoderChannel.h" +#include "EXIHeaderEncoder.h" + +#include "appHandEXIDatatypes.h" +#include "ErrorCodes.h" + +#ifndef EXI_appHand_DATATYPES_ENCODER_C +#define EXI_appHand_DATATYPES_ENCODER_C + +static int errn; + +/* Forward Declarations */ +static int encode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppProtocolType* appHandAppProtocolType); +static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, struct appHandAnonType_supportedAppProtocolReq* appHandAnonType_supportedAppProtocolReq); +static int encode_appHandAnonType_supportedAppProtocolRes(bitstream_t* stream, struct appHandAnonType_supportedAppProtocolRes* appHandAnonType_supportedAppProtocolRes); + + + /* Complex type name='urn:iso:15118:2:2010:AppProtocol,AppProtocolType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(ProtocolNamespace,VersionNumberMajor,VersionNumberMinor,SchemaID,Priority)', derivedBy='RESTRICTION'. */ +static int encode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppProtocolType* appHandAppProtocolType) { + int grammarID = 0; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 0: + /* FirstStartTag[START_ELEMENT(ProtocolNamespace)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(appHandAppProtocolType->ProtocolNamespace.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, appHandAppProtocolType->ProtocolNamespace.characters, appHandAppProtocolType->ProtocolNamespace.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1: + /* Element[START_ELEMENT(VersionNumberMajor)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, appHandAppProtocolType->VersionNumberMajor); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2: + /* Element[START_ELEMENT(VersionNumberMinor)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, appHandAppProtocolType->VersionNumberMinor); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[START_ELEMENT(SchemaID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(appHandAppProtocolType->SchemaID - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[START_ELEMENT(Priority)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, (uint32_t)(appHandAppProtocolType->Priority - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 5: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:AppProtocol,#AnonType_supportedAppProtocolReq', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(AppProtocol{1-20})', derivedBy='RESTRICTION'. */ +static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, struct appHandAnonType_supportedAppProtocolReq* appHandAnonType_supportedAppProtocolReq) { + int grammarID = 7; + int done = 0; + + unsigned int appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 7: + /* FirstStartTag[START_ELEMENT(AppProtocol)] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 8; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 8: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 9; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 9: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 10; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 10: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 11; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 11: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 12; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 12: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 13; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 13: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 14; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 14: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 15; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 15: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 16; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 16: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 17; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 17: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 18; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 18: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 19; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 19: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 20; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 20: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 21; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 21: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 22; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 22: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 23; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 23: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 24; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 24: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 25; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 25: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 26; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 26: + /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ + if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]); + } + grammarID = 5; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 5: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:AppProtocol,#AnonType_supportedAppProtocolRes', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(ResponseCode,SchemaID{0-1})', derivedBy='RESTRICTION'. */ +static int encode_appHandAnonType_supportedAppProtocolRes(bitstream_t* stream, struct appHandAnonType_supportedAppProtocolRes* appHandAnonType_supportedAppProtocolRes) { + int grammarID = 27; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 27: + /* FirstStartTag[START_ELEMENT(ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, appHandAnonType_supportedAppProtocolRes->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 28; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 28: + /* Element[START_ELEMENT(SchemaID), END_ELEMENT] */ + if ( appHandAnonType_supportedAppProtocolRes->SchemaID_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(appHandAnonType_supportedAppProtocolRes->SchemaID - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 5; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 5: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + + + +int encode_appHandExiDocument(bitstream_t* stream, struct appHandEXIDocument* exiDoc) { + errn = writeEXIHeader(stream); + + if(errn == 0) { + /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC] */ + if ( exiDoc->supportedAppProtocolReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq) */ + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_appHandAnonType_supportedAppProtocolReq(stream, &exiDoc->supportedAppProtocolReq ); + } + } else if ( exiDoc->supportedAppProtocolRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes) */ + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_appHandAnonType_supportedAppProtocolRes(stream, &exiDoc->supportedAppProtocolRes ); + } + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + + } + + if(errn == 0) { + /* flush any pending bits */ + errn = encodeFinish(stream); + } + + return errn; +} + + +#endif + diff --git a/csharp/vc2022/src/appHandshake/appHandEXIDatatypesEncoder.h b/csharp/vc2022/src/appHandshake/appHandEXIDatatypesEncoder.h new file mode 100644 index 0000000..af952ac --- /dev/null +++ b/csharp/vc2022/src/appHandshake/appHandEXIDatatypesEncoder.h @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_AppProtocol.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIDatatypesEncoder.h + * \brief Encoder for datatype definitions + * + */ + +#ifndef EXI_appHand_DATATYPES_ENCODER_H +#define EXI_appHand_DATATYPES_ENCODER_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +#include "EXITypes.h" +#include "appHandEXIDatatypes.h" + + +int encode_appHandExiDocument(bitstream_t* stream, struct appHandEXIDocument* exiDoc); + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/codec/BitInputStream.c b/csharp/vc2022/src/codec/BitInputStream.c new file mode 100644 index 0000000..bf4ea60 --- /dev/null +++ b/csharp/vc2022/src/codec/BitInputStream.c @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-02 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +#include "BitInputStream.h" +#include "EXIConfig.h" +#include "EXITypes.h" +#include "ErrorCodes.h" + +#ifndef BIT_INPUT_STREAM_C +#define BIT_INPUT_STREAM_C + +/* internal method to (re)fill buffer */ +static int readBuffer(bitstream_t* stream) +{ + int errn = 0; + if(stream->capacity==0) + { +#if EXI_STREAM == BYTE_ARRAY + if ( (*stream->pos) < stream->size ) { + stream->buffer = stream->data[(*stream->pos)++]; + stream->capacity = BITS_IN_BYTE; + } else { + errn = EXI_ERROR_INPUT_STREAM_EOF; + } +#endif +#if EXI_STREAM == FILE_STREAM + stream->buffer = (uint8_t)(getc(stream->file)); + /* EOF cannot be used, 0xFF valid value */ + if ( feof(stream->file) || ferror(stream->file) ) { + errn = EXI_ERROR_INPUT_STREAM_EOF; + } else { + stream->capacity = BITS_IN_BYTE; + } +#endif + } + return errn; +} + +int readBits(bitstream_t* stream, size_t num_bits, uint32_t* b) +{ + int errn = readBuffer(stream); + if (errn == 0) { + /* read the bits in one step */ + if(num_bits <= stream->capacity) { + stream->capacity = (uint8_t)(stream->capacity - num_bits); + *b = (uint32_t)((stream->buffer >> stream->capacity) & (0xff >> (BITS_IN_BYTE - num_bits))); + } else { + /* read bits as much as possible */ + *b = (uint32_t)(stream->buffer & (0xff >> (BITS_IN_BYTE - stream->capacity))); + num_bits = (num_bits - stream->capacity); + stream->capacity = 0; + + /* read whole bytes */ + while(errn == 0 && num_bits >= 8) + { + errn = readBuffer(stream); + *b = ((*b) << BITS_IN_BYTE) | stream->buffer; + num_bits = (num_bits - BITS_IN_BYTE); + stream->capacity = 0; + } + + /* read the spare bits in the buffer */ + if(errn == 0 && num_bits > 0) + { + errn = readBuffer(stream); + if (errn == 0) { + *b = ( (*b) << num_bits) | (uint8_t)(stream->buffer >> (BITS_IN_BYTE - num_bits)) ; + stream->capacity = (uint8_t)(BITS_IN_BYTE - num_bits); + } + } + } + } + + return errn; +} + +#endif diff --git a/csharp/vc2022/src/codec/BitInputStream.h b/csharp/vc2022/src/codec/BitInputStream.h new file mode 100644 index 0000000..a503565 --- /dev/null +++ b/csharp/vc2022/src/codec/BitInputStream.h @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-02 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file BitInputStream.h + * \brief Bit Input Stream + * + * Read bits and bytes from an underlying input stream. + * + */ + +#ifndef BIT_INPUT_STREAM_H +#define BIT_INPUT_STREAM_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "EXITypes.h" + +/** + * \brief Read bits + * + * Read the next num_bits bits and returns result an integer. + * + * \param stream Input Stream + * \param num_bits Number of bits + * \param b Integer value (out) + * \return Error-Code <> 0 + * + */ +int readBits(bitstream_t* stream, size_t num_bits, uint32_t* b); + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/codec/BitOutputStream.c b/csharp/vc2022/src/codec/BitOutputStream.c new file mode 100644 index 0000000..f5cc1a6 --- /dev/null +++ b/csharp/vc2022/src/codec/BitOutputStream.c @@ -0,0 +1,124 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-02 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +#include "BitOutputStream.h" +#include "EXIConfig.h" +#include "EXITypes.h" +#include "ErrorCodes.h" + +#ifndef BIT_OUTPUT_STREAM_C +#define BIT_OUTPUT_STREAM_C + +int writeBits(bitstream_t* stream, size_t nbits, uint32_t val) { + int errn = 0; + /* is there enough space in the buffer */ + if (nbits <= stream->capacity) { + /* all bits fit into the current buffer */ + stream->buffer = (uint8_t)(stream->buffer << (nbits)) | (uint8_t)(val & (uint32_t)(0xff >> (uint32_t)(BITS_IN_BYTE - nbits))); + stream->capacity = (uint8_t)(stream->capacity - nbits); + /* if the buffer is full write byte */ + if (stream->capacity == 0) { +#if EXI_STREAM == BYTE_ARRAY + if ((*stream->pos) >= stream->size) { + errn = EXI_ERROR_OUTPUT_STREAM_EOF; + } else { + stream->data[(*stream->pos)++] = stream->buffer; + } +#endif +#if EXI_STREAM == FILE_STREAM + if ( putc(stream->buffer, stream->file) == EOF ) { + errn = EXI_ERROR_OUTPUT_STREAM_EOF; + } +#endif + stream->capacity = BITS_IN_BYTE; + stream->buffer = 0; + } + } else { + /* the buffer is not enough + * fill the buffer */ + stream->buffer = (uint8_t)(stream->buffer << stream->capacity) | + ( (uint8_t)(val >> (nbits - stream->capacity)) & (uint8_t)(0xff >> (BITS_IN_BYTE - stream->capacity)) ); + + nbits = (nbits - stream->capacity); +#if EXI_STREAM == BYTE_ARRAY + if ((*stream->pos) >= stream->size) { + errn = EXI_ERROR_OUTPUT_STREAM_EOF; + } else { + stream->data[(*stream->pos)++] = stream->buffer; + } +#endif +#if EXI_STREAM == FILE_STREAM + if ( putc(stream->buffer, stream->file) == EOF ) { + errn = EXI_ERROR_OUTPUT_STREAM_EOF; + } +#endif + stream->buffer = 0; + + /* write whole bytes */ + while (errn == 0 && nbits >= BITS_IN_BYTE) { + nbits = (nbits - BITS_IN_BYTE); +#if EXI_STREAM == BYTE_ARRAY + if ((*stream->pos) >= stream->size) { + errn = EXI_ERROR_OUTPUT_STREAM_EOF; + } else { + stream->data[(*stream->pos)++] = (uint8_t)(val >> (nbits)); + } +#endif +#if EXI_STREAM == FILE_STREAM + if ( putc((int)(val >> (nbits)), stream->file) == EOF ) { + errn = EXI_ERROR_OUTPUT_STREAM_EOF; + } +#endif + } + + /* spared bits are kept in the buffer */ + stream->buffer = (uint8_t)val; /* Note: the high bits will be shifted out during further filling */ + stream->capacity = (uint8_t)(BITS_IN_BYTE - (nbits)); + } + + return errn; +} + +/** + * Flush output + */ +int flush(bitstream_t* stream) { + int errn = 0; + if (stream->capacity == BITS_IN_BYTE) { + /* nothing to do, no bits in buffer */ + } else { + errn = writeBits(stream, stream->capacity, 0); + } + return errn; +} + +#endif + diff --git a/csharp/vc2022/src/codec/BitOutputStream.h b/csharp/vc2022/src/codec/BitOutputStream.h new file mode 100644 index 0000000..186d73a --- /dev/null +++ b/csharp/vc2022/src/codec/BitOutputStream.h @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-02 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file BitOutputStream.h + * \brief Bit Output Stream + * + * Write bits and bytes to an underlying output stream. + * + */ + +#ifndef BIT_OUTPUT_STREAM_H +#define BIT_OUTPUT_STREAM_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +#include "EXITypes.h" + +/** + * \brief Write bits + * + * Write the n least significant bits of parameter b starting + * with the most significant, i.e. from left to right. + * + * \param stream Output Stream + * \param nbits Number of bits + * \param bits value + * \return Error-Code <> 0 + * + */ +int writeBits(bitstream_t* stream, size_t nbits, uint32_t bits); + + +/** + * \brief Flush output + * + * If there are some unwritten bits, pad them if necessary and + * write them out. Note that this method does flush the + * underlying stream. + * + * \param stream Output Stream + * \return Error-Code <> 0 + * + */ +int flush(bitstream_t* stream); + + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/csharp/vc2022/src/codec/ByteStream.c b/csharp/vc2022/src/codec/ByteStream.c new file mode 100644 index 0000000..13204a4 --- /dev/null +++ b/csharp/vc2022/src/codec/ByteStream.c @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-02 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/* Avoid VS warning, put before your included header files */ +/* warning C4996: fopen: This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. */ +#define _CRT_SECURE_NO_DEPRECATE + +#include + +#include "EXITypes.h" +#include "ErrorCodes.h" + +#ifndef BYTE_STREAM_C +#define BYTE_STREAM_C + +int readBytesFromFile(const char * filename, uint8_t* data, size_t size, size_t* pos) { + FILE* f; + int character; + int errn = 0; + + f = fopen(filename, "rb"); + + if (f == NULL) { + errn = EXI_ERROR_INPUT_FILE_HANDLE; + } else { + /* read bytes */ + while (errn == 0 && (character = getc(f)) != EOF) { + if (*pos >= size) { + errn = EXI_ERROR_OUT_OF_BYTE_BUFFER; + } else { + data[(*pos)++] = (uint8_t) character; + } + } + fclose(f); + } + + return errn; +} + +int writeBytesToFile(uint8_t* data, size_t len, const char * filename) { + size_t rlen; + FILE* f = fopen(filename, "wb+"); + + if (f == NULL) { + return -1; + } else { + rlen = fwrite(data, sizeof(uint8_t), len, f); + fflush(f); + fclose(f); + if(rlen == len) { + return 0; + } else { + return EXI_ERROR_OUTPUT_FILE; + } + } +} + + +#endif /* BYTE_STREAM_C */ + diff --git a/csharp/vc2022/src/codec/ByteStream.h b/csharp/vc2022/src/codec/ByteStream.h new file mode 100644 index 0000000..c8fe9a0 --- /dev/null +++ b/csharp/vc2022/src/codec/ByteStream.h @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-02 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file ByteStream.h + * \brief Byte Stream utilities + * + */ + +#ifndef BYTE_STREAM_H +#define BYTE_STREAM_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "EXITypes.h" + +/** + * \brief Write bytes to file + * + * \param data byte array + * \param len length + * \param filename File name + * \return Error-Code <> 0 + * + */ +int writeBytesToFile(uint8_t* data, size_t len, const char * filename); + + +/** + * \brief Read bytes from file + * + * \param filename File name + * \param data byte array + * \param size byte array size + * \param pos byte array position + * \return Error-Code <> 0 + * + */ +int readBytesFromFile(const char * filename, uint8_t* data, size_t size, size_t* pos); + +#ifdef __cplusplus +} +#endif + +#endif /* BYTE_STREAM_H */ diff --git a/csharp/vc2022/src/codec/DecoderChannel.c b/csharp/vc2022/src/codec/DecoderChannel.c new file mode 100644 index 0000000..2f11945 --- /dev/null +++ b/csharp/vc2022/src/codec/DecoderChannel.c @@ -0,0 +1,1068 @@ +/* + * Copyright (C) 2007-2022 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2022-03-08 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +#include "DecoderChannel.h" + +#include "EXIConfig.h" +#include "EXIOptions.h" +#include "BitInputStream.h" +#include "EXITypes.h" +#include "MethodsBag.h" +/*#include "v2gEXICoder.h"*/ +#include "ErrorCodes.h" + +#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION +#include "DynamicMemory.h" +#endif /* DYNAMIC_ALLOCATION */ + +#ifndef DECODER_CHANNEL_C +#define DECODER_CHANNEL_C + +/* unsigned long == 64 bits, 10 * 7bits = 70 bits */ +#define MAX_OCTETS_FOR_UNSIGNED_INTEGER_64 10 +/* unsigned int == 32 bits, 5 * 7bits = 35 bits */ +#define MAX_OCTETS_FOR_UNSIGNED_INTEGER_32 5 + +/* buffer for reading (arbitrary) large integer values */ +static uint8_t maskedOctets[MAX_OCTETS_FOR_UNSIGNED_INTEGER_64]; + + +static int _decodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv, int negative) { + int errn = 0; + int i = 0; + uint8_t b; + int k; + + do { + /* Read the next octet */ + errn = decode(stream, &b); + if (errn == 0) { + if(i < MAX_OCTETS_FOR_UNSIGNED_INTEGER_64) { + /* the 7 least significant bits hold the actual value */ + maskedOctets[i++] = (b & 127); + } else { + errn = EXI_UNSUPPORTED_INTEGER_VALUE; + } + } + } while( errn == 0 && b >= 128 ); /* no more octets ? */ + + if ( errn == 0 ) { + /* For negative values, the Unsigned Integer holds the + * magnitude of the value minus 1 */ + + switch(i) { + case 1: /* 7 bits */ + if (negative) { + iv->val.int8 = (int8_t)(-( b + 1)); + iv->type = EXI_INTEGER_8; + } else { + iv->val.uint8 = b; + iv->type = EXI_UNSIGNED_INTEGER_8; + } + break; + case 2: /* 14 bits */ + iv->val.uint16 = 0; + for (k = i-1; k >= 0 ; k--) { + iv->val.uint16 = (uint16_t)((iv->val.uint16 << 7) | maskedOctets[k]); + } + if (negative) { + iv->val.int16 = (int16_t)( -( iv->val.uint16 + 1 )); + iv->type = EXI_INTEGER_16; + } else { + iv->type = EXI_UNSIGNED_INTEGER_16; + } + break; + case 3: /* 21 bits */ + case 4: /* 28 bits */ + iv->val.uint32 = 0; + for (k = i-1; k >= 0 ; k--) { + iv->val.uint32 = (iv->val.uint32 << 7) | maskedOctets[k]; + } + if (negative) { + iv->val.int32 = (-(int32_t)(iv->val.uint32 + 1)); + if (iv->val.int32 <= INT16_MAX && iv->val.int32 >= INT16_MIN ) { + iv->type = EXI_INTEGER_16; + } else { + iv->type = EXI_INTEGER_32; + } + } else { + if (iv->val.uint32 <= UINT16_MAX) { + iv->type = EXI_UNSIGNED_INTEGER_16; + } else { + iv->type = EXI_UNSIGNED_INTEGER_32; + } + } + break; + case 5: /* 35 bits */ + case 6: /* 42 bits */ + case 7: /* 49 bits */ + case 8: /* 56 bits */ + case 9: /* 63 bits */ + case 10: /* 70 bits */ + iv->val.uint64 = 0; + for (k = i-1; k >= 0 ; k--) { + iv->val.uint64 = (iv->val.uint64 << 7) | maskedOctets[k]; + } + if (negative) { + if (i > 9) { + /* too large */ + return EXI_UNSUPPORTED_INTEGER_VALUE; + } + iv->val.int64 = (-(int64_t)(iv->val.uint64 + 1)); + if (iv->val.int64 <= INT32_MAX && iv->val.int64 >= INT32_MIN ) { + iv->type = EXI_INTEGER_32; + } else { + iv->type = EXI_INTEGER_64; + } + } else { + if (iv->val.uint64 <= UINT32_MAX) { + iv->type = EXI_UNSIGNED_INTEGER_32; + /* iv->val.uint32 = iv->val.uint64;*/ + } else { + iv->type = EXI_UNSIGNED_INTEGER_64; + } + } + break; + default: + errn = EXI_UNSUPPORTED_INTEGER_VALUE; + break; + } + } + + return errn; +} + +int decodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv) { + return _decodeUnsignedInteger(stream, iv, 0); +} + +int decodeUnsignedInteger16(bitstream_t* stream, uint16_t* uint16) { + unsigned int mShift = 0; + int errn = 0; + uint8_t b = 0; + *uint16 = 0; + + do { + /* 1. Read the next octet */ + errn = decode(stream, &b); + /* 2. Multiply the value of the unsigned number represented by the 7 + * least significant + * bits of the octet by the current multiplier and add the result to + * the current value */ + *uint16 = (uint16_t)(*uint16 + ((b & 127) << mShift)); + /* 3. Multiply the multiplier by 128 */ + mShift += 7; + /* 4. If the most significant bit of the octet was 1, go back to step 1 */ + } while (errn == 0 && (b >> 7) == 1); + + return errn; +} + +int decodeUnsignedInteger32(bitstream_t* stream, uint32_t* uint32) { + /* 0XXXXXXX ... 1XXXXXXX 1XXXXXXX */ + unsigned int mShift = 0; + int errn = 0; + uint8_t b = 0; + *uint32 = 0; + + do { + /* 1. Read the next octet */ + errn = decode(stream, &b); + /* 2. Multiply the value of the unsigned number represented by the 7 + * least significant + * bits of the octet by the current multiplier and add the result to + * the current value */ + *uint32 += (uint32_t)((b & 127) << mShift); + /* 3. Multiply the multiplier by 128 */ + mShift += 7; + /* 4. If the most significant bit of the octet was 1, go back to step 1 */ + } while (errn == 0 && (b >> 7) == 1); + + return errn; +} + +int decodeUnsignedIntegerSizeT(bitstream_t* stream, size_t* sizeT) { + int errn = 0; + + /* TODO is there a better way to detect the actual size of size_t */ + if(SIZE_MAX == UINT16_MAX) { + /* 16bit */ + uint16_t uint16; + errn = decodeUnsignedInteger16(stream, &uint16); + if(errn == 0) { + *sizeT = (size_t)uint16; + } + } else if(SIZE_MAX == UINT32_MAX) { + /* 32bit */ + uint32_t uint32; + errn = decodeUnsignedInteger32(stream, &uint32); + if(errn == 0) { + *sizeT = (size_t)uint32; + } + } else { + /* 64bit */ + uint64_t uint64; + errn = decodeUnsignedInteger64(stream, &uint64); + if(errn == 0) { + *sizeT = (size_t)uint64; + } + } + + return errn; +} + + + +/** + * Decode an arbitrary precision non negative integer using a sequence of + * octets. The most significant bit of the last octet is set to zero to + * indicate sequence termination. Only seven bits per octet are used to + * store the integer's value. + */ +int decodeUnsignedInteger64(bitstream_t* stream, uint64_t* uint64) { + unsigned int mShift = 0; + int errn = 0; + uint8_t b; + *uint64 = 0L; + + do { + errn = decode(stream, &b); + *uint64 += ((uint64_t) (b & 127)) << mShift; + mShift += 7; + } while (errn == 0 && (b >> 7) == 1); + + return errn; +} + + +void _reverseArray(uint8_t *array, int number) { + int x, t; + number--; + + for(x = 0; x < number; x ++, number --) { + t = array[x]; + array[x] = array[number]; + array[number] = t; + } +} + +/** + * Decode an arbitrary precision non negative integer using a sequence of + * octets. The most significant bit of the last octet is set to zero to + * indicate sequence termination. Only seven bits per octet are used to + * store the integer's value. + */ +int decodeUnsignedIntegerBig(bitstream_t* stream, size_t size, uint8_t* data, size_t* len) { + int errn = 0; + uint8_t b = 0; + unsigned int mShift1 = 0; + unsigned int mShift2 = 0; + unsigned int mShift3 = 0; + unsigned int mShift4 = 0; + unsigned int nBytesRead = 0; + unsigned int nBitsAvailable = 0; + uint64_t uint64_1 = 0; + uint64_t uint64_2 = 0; + uint64_t uint64_3 = 0; + uint64_t uint64_4 = 0; + + *len = 0; + + do { + errn = decode(stream, &b); + nBytesRead++; + nBitsAvailable += 7; + + if(nBytesRead <= 8) { + uint64_1 += ((uint64_t) (b & 127)) << mShift1; + mShift1 += 7; + } else if(nBytesRead <= 16) { + uint64_2 += ((uint64_t) (b & 127)) << mShift2; + mShift2 += 7; + } else if(nBytesRead <= 24) { + uint64_3 += ((uint64_t) (b & 127)) << mShift3; + mShift3 += 7; + } else if(nBytesRead <= 32) { + uint64_4 += ((uint64_t) (b & 127)) << mShift4; + mShift4 += 7; + } else { + return -1; /* too large */ + } + } while (errn == 0 && (b >> 7) == 1); + + /* shift actual data into array */ + if(uint64_4 != 0) { + /* 7 octets for uint64_1 */ + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 1 */ + uint64_1 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 2 */ + uint64_1 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 3 */ + uint64_1 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 4 */ + uint64_1 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 5 */ + uint64_1 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 6 */ + uint64_1 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 7 */ + + /* 7 octets for uint64_2 */ + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_2 & 0xFF); /* 1 */ + uint64_2 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_2 & 0xFF); /* 2 */ + uint64_2 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_2 & 0xFF); /* 3 */ + uint64_2 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_2 & 0xFF); /* 4 */ + uint64_2 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_2 & 0xFF); /* 5 */ + uint64_2 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_2 & 0xFF); /* 6 */ + uint64_2 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_2 & 0xFF); /* 7 */ + + /* 7 octets for uint64_3 */ + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_3 & 0xFF); /* 1 */ + uint64_3 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_3 & 0xFF); /* 2 */ + uint64_3 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_3 & 0xFF); /* 3 */ + uint64_3 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_3 & 0xFF); /* 4 */ + uint64_3 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_3 & 0xFF); /* 5 */ + uint64_3 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_3 & 0xFF); /* 6 */ + uint64_3 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_3 & 0xFF); /* 7 */ + + /* remaining octets of uint64_4 */ + while (uint64_4 != 0 && errn == 0) { + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = uint64_4 & 0xFF; + uint64_4 >>= 8; + } + } else if(uint64_3 != 0) { + /* 7 octets for uint64_1 */ + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 1 */ + uint64_1 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 2 */ + uint64_1 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 3 */ + uint64_1 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 4 */ + uint64_1 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 5 */ + uint64_1 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 6 */ + uint64_1 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 7 */ + + /* 7 octets for uint64_2 */ + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_2 & 0xFF); /* 1 */ + uint64_2 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_2 & 0xFF); /* 2 */ + uint64_2 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_2 & 0xFF); /* 3 */ + uint64_2 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_2 & 0xFF); /* 4 */ + uint64_2 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_2 & 0xFF); /* 5 */ + uint64_2 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_2 & 0xFF); /* 6 */ + uint64_2 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_2 & 0xFF); /* 7 */ + + /* remaining octets of uint64_3 */ + while (uint64_3 != 0 && errn == 0) { + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = uint64_3 & 0xFF; + uint64_3 >>= 8; + } + + } else if(uint64_2 != 0) { + /* 7 octets for uint64_1 */ + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 1 */ + uint64_1 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 2 */ + uint64_1 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 3 */ + uint64_1 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 4 */ + uint64_1 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 5 */ + uint64_1 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 6 */ + uint64_1 >>= 8; + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = (uint8_t)(uint64_1 & 0xFF); /* 7 */ + /* remaining octets of uint64_2 */ + while (uint64_2 != 0 && errn == 0) { + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = uint64_2 & 0xFF; + uint64_2 >>= 8; + } + } else if(uint64_1 != 0) { + while (uint64_1 != 0 && errn == 0) { + if(*len >= size) { + return EXI_ERROR_OUT_OF_BOUNDS; + } + data[(*len)++] = uint64_1 & 0xFF; + uint64_1 >>= 8; + } + } + + _reverseArray(data, *len); + + return errn; +} + +int decodeInteger(bitstream_t* stream, exi_integer_t* iv) { + int b; + int errn = decodeBoolean(stream, &b); + if (errn == 0) { + errn = _decodeUnsignedInteger(stream, iv, b); + } + + return errn; +} + + +/** + * Decode an arbitrary precision integer using a sign bit followed by a + * sequence of octets. The most significant bit of the last octet is set to + * zero to indicate sequence termination. Only seven bits per octet are used + * to store the integer's value. + */ +int decodeInteger16(bitstream_t* stream, int16_t* int16) { + int b; + uint16_t uint16; + int errn = decodeBoolean(stream, &b); + + if (errn == 0) { + if (b) { + /* For negative values, the Unsigned Integer holds the + * magnitude of the value minus 1 */ + errn = decodeUnsignedInteger16(stream, &uint16); + *int16 = (int16_t)(-(uint16 + 1)); + } else { + /* positive */ + errn = decodeUnsignedInteger16(stream, &uint16); + *int16 = (int16_t)(uint16); + } + } + + return errn; +} + +/** + * Decode an arbitrary precision integer using a sign bit followed by a + * sequence of octets. The most significant bit of the last octet is set to + * zero to indicate sequence termination. Only seven bits per octet are used + * to store the integer's value. + */ +int decodeInteger32(bitstream_t* stream, int32_t* int32) { + int b; + uint32_t uint32; + int errn = decodeBoolean(stream, &b); + + if (errn == 0) { + if (b) { + /* For negative values, the Unsigned Integer holds the + * magnitude of the value minus 1 */ + errn = decodeUnsignedInteger32(stream, &uint32); + *int32 = (-(int32_t)(uint32 + 1)); + } else { + /* positive */ + errn = decodeUnsignedInteger32(stream, &uint32); + *int32 = (int32_t)(uint32); + } + } + + return errn; +} + +/** + * Decode an arbitrary precision integer using a sign bit followed by a + * sequence of octets. The most significant bit of the last octet is set to + * zero to indicate sequence termination. Only seven bits per octet are used + * to store the integer's value. + */ +int decodeInteger64(bitstream_t* stream, int64_t* int64) { + int b; + uint64_t uint64; + int errn = decodeBoolean(stream, &b); + + if (errn == 0) { + if (b) { + /* For negative values, the Unsigned Integer holds the + * magnitude of the value minus 1 */ + errn = decodeUnsignedInteger64(stream, &uint64); + *int64 = (-(int64_t)(uint64 + 1)); + } else { + /* positive */ + errn = decodeUnsignedInteger64(stream, &uint64); + *int64 = (int64_t)(uint64); + } + } + + return errn; +} + +/** + * Decode an arbitrary precision integer using a sign bit followed by a + * sequence of octets. The most significant bit of the last octet is set to + * zero to indicate sequence termination. Only seven bits per octet are used + * to store the integer's value. + */ +int decodeIntegerBig(bitstream_t* stream, int* negative, size_t size, uint8_t* data, size_t* len) { + int errn = decodeBoolean(stream, negative); + + if (errn == 0) { + if (*negative) { + /* For negative values, the Unsigned Integer holds the + * magnitude of the value minus 1 */ + } else { + /* positive */ + } + errn = decodeUnsignedIntegerBig(stream, size, data, len); + } + + return errn; +} + +/** + * Decode a Float datatype as two consecutive Integers. + * The first Integer represents the mantissa of the floating point + * number and the second Integer represents the base-10 exponent + * of the floating point number. + */ +int decodeFloat(bitstream_t* stream, exi_float_me_t* f) { + int errn = decodeInteger64(stream, &f->mantissa); + if (errn == 0) { + errn = decodeInteger16(stream, &f->exponent); + } + return errn; +} + +/** + * Decode a decimal represented as a Boolean sign followed by two Unsigned + * Integers. A sign value of zero (0) is used to represent positive Decimal + * values and a sign value of one (1) is used to represent negative Decimal + * values The first Integer represents the integral portion of the Decimal + * value. The second positive integer represents the fractional portion of + * the decimal with the digits in reverse order to preserve leading zeros. + */ +int decodeDecimal(bitstream_t* stream, exi_decimal_t* d) { + int errn = decodeBoolean(stream, &d->negative); + if (errn == 0) { + errn = decodeUnsignedInteger(stream, &d->integral); + if (errn == 0) { + errn = decodeUnsignedInteger(stream, &d->reverseFraction); + } + } + + return errn; +} + +/** + * Decode a sequence of characters for a given length. + */ +int decodeStringOnly(bitstream_t* stream, size_t len, exi_string_t* s) { + int errn = 0; + unsigned int extraChar = 0; +#if STRING_REPRESENTATION == STRING_REPRESENTATION_ASCII + extraChar = 1; /* null terminator */ +#endif /* STRING_REPRESENTATION_ASCII */ + + if ( (len + extraChar) > s->size) { +#if MEMORY_ALLOCATION == STATIC_ALLOCATION + errn = EXI_ERROR_OUT_OF_STRING_BUFFER; +#endif /* STATIC_ALLOCATION */ +#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION + if(s->size > 0) { + errn = exiFreeDynamicStringMemory(s); + if(errn) { + return errn; + } + } + errn = exiAllocateDynamicStringMemory(s, (len + extraChar)); /*s->len*/ +#endif /* DYNAMIC_ALLOCATION */ + } + if(errn == 0) { + errn = decodeCharacters(stream, len, s->characters, s->size); + s->len = len; + } + + return errn; +} + +/** + * Decode a length prefixed sequence of characters. + */ +int decodeString(bitstream_t* stream, exi_string_t* s) { + int errn = decodeUnsignedIntegerSizeT(stream, &s->len); + if (errn == 0) { + errn = decodeStringOnly(stream, s->len, s); + } + return errn; +} + +/** + * Decode a sequence of characters according to a given length. + * Each character is represented by its UCS [ISO/IEC 10646] + * code point encoded as an Unsigned Integer + */ +int decodeCharacters(bitstream_t* stream, size_t len, exi_string_character_t* chars, size_t charsSize) { + unsigned int i; + int errn = 0; + + unsigned int extraChar = 0; +#if STRING_REPRESENTATION == STRING_REPRESENTATION_ASCII + extraChar = 1; /* null terminator */ +#endif /* STRING_REPRESENTATION_ASCII */ + + if ( (len + extraChar) > charsSize) { + errn = EXI_ERROR_OUT_OF_STRING_BUFFER; + return errn; + } + +#if STRING_REPRESENTATION == STRING_REPRESENTATION_ASCII + uint8_t b; + for (i = 0; i < len && errn == 0; i++) { + errn = decode(stream, &b); + if(b < 128) { + chars[i] = (exi_string_character_t)b; + } else { + errn = EXI_ERROR_STRINGVALUES_CHARACTER; + } + } + /* null terminator \0 */ + chars[i] = '\0'; + +#endif /* STRING_REPRESENTATION_ASCII */ +#if STRING_REPRESENTATION == STRING_REPRESENTATION_UCS + for (i = 0; i < len && errn == 0; i++) { + errn = decodeUnsignedInteger32(stream, &chars[i]); + } +#endif /* STRING_REPRESENTATION_UCS */ + + + + + return errn; +} + +int decodeRCSCharacters(bitstream_t* stream, size_t len, exi_string_character_t* chars, size_t charsSize, size_t rcsCodeLength, size_t rcsSize, const exi_string_character_t rcsSet[]) { + unsigned int i; + int errn = 0; + uint32_t uint32; + unsigned int extraChar = 0; +#if STRING_REPRESENTATION == STRING_REPRESENTATION_ASCII + uint8_t b; + extraChar = 1; /* null terminator */ +#endif /* STRING_REPRESENTATION_ASCII */ + + if ( (len + extraChar) > charsSize) { + errn = EXI_ERROR_OUT_OF_STRING_BUFFER; + return errn; + } + + + for (i = 0; i < len && errn == 0; i++) { + errn = decodeNBitUnsignedInteger(stream, rcsCodeLength, &uint32); + if(errn == 0) { + if ( uint32 == rcsSize ) { + /* RCS deviation */ +#if STRING_REPRESENTATION == STRING_REPRESENTATION_ASCII + errn = decode(stream, &b); + if(b < 128) { + chars[i] = (exi_string_character_t)b; + } else { + errn = EXI_ERROR_STRINGVALUES_CHARACTER; + } +#endif /* STRING_REPRESENTATION_ASCII */ +#if STRING_REPRESENTATION == STRING_REPRESENTATION_UCS + errn = decodeUnsignedInteger32(stream, &chars[i]); +#endif /* STRING_REPRESENTATION_UCS */ + + } else { + /* RCS match */ +#if STRING_REPRESENTATION == STRING_REPRESENTATION_ASCII + chars[i] = rcsSet[uint32]; +#endif /* STRING_REPRESENTATION_ASCII */ +#if STRING_REPRESENTATION == STRING_REPRESENTATION_UCS + chars[i] = rcsSet[uint32]; +#endif /* STRING_REPRESENTATION_UCS */ + } + } + } + + return errn; +} + + +/** + * Decode a binary value as a length-prefixed sequence of octets. + */ +int decodeBinary(bitstream_t* stream, exi_bytes_t* bytes) { + int errn = decodeUnsignedIntegerSizeT(stream, &bytes->len); + if (errn == 0) { + if (bytes->len > bytes->size) { +#if MEMORY_ALLOCATION == STATIC_ALLOCATION + errn = EXI_ERROR_OUT_OF_BYTE_BUFFER; +#endif /* STATIC_ALLOCATION */ +#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION + errn = exiFreeDynamicBinaryMemory(bytes); + if(errn == 0) { + errn = exiAllocateDynamicBinaryMemory(bytes, bytes->len); + } +#endif /* DYNAMIC_ALLOCATION */ + } + + errn = decodeBytes(stream, bytes->len, bytes->data); + } + + return errn; +} + + +int decodeBytes(bitstream_t* stream, size_t len, uint8_t* data) { + unsigned int i; + int errn = 0; + uint8_t b = 0; + + for (i = 0; i < len && errn == 0; i++) { + errn = decode(stream, &b); + data[i] = (uint8_t)b; + } + + return errn; +} + +/** + * Decode Date-Time as sequence of values representing the individual + * components of the Date-Time. + */ +int decodeDateTime(bitstream_t* stream, exi_datetime_type_t type, exi_datetime_t* datetime) { + int errn = 0; + + datetime->type = type; + + datetime->year = 0; + datetime->monthDay = 0; + datetime->time = 0; + datetime->presenceFractionalSecs = 0; + datetime->fractionalSecs = 0; + datetime->presenceTimezone = 0; + datetime->timezone = 0; + + switch (type) { + case EXI_DATETIME_GYEAR: /* Year, [Time-Zone] */ + errn = decodeInteger32(stream, &datetime->year); + if (errn == 0) { + datetime->year += DATETIME_YEAR_OFFSET; + } + break; + case EXI_DATETIME_GYEARMONTH: /* Year, MonthDay, [TimeZone] */ + case EXI_DATETIME_DATE: + errn = decodeInteger32(stream, &datetime->year); + if (errn == 0) { + datetime->year += DATETIME_YEAR_OFFSET; + errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY, &datetime->monthDay); + } + break; + case EXI_DATETIME_DATETIME: /* Year, MonthDay, Time, [FractionalSecs], [TimeZone] */ + /* e.g. "0001-01-01T00:00:00.111+00:33" */ + errn = decodeInteger32(stream, &datetime->year); + if (errn == 0) { + datetime->year += DATETIME_YEAR_OFFSET; + errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY, &datetime->monthDay); + if (errn != 0) { + break; + } + } + /* no break */ + case EXI_DATETIME_TIME: /* Time, [FractionalSecs], [TimeZone] */ + /* e.g. "12:34:56.135" */ + errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_TIME, &datetime->time); + if (errn == 0) { + errn = decodeBoolean(stream, &datetime->presenceFractionalSecs); + if (errn == 0) { + if (datetime->presenceFractionalSecs) { + errn = decodeUnsignedInteger32(stream, &datetime->fractionalSecs); + } + } + } + break; + case EXI_DATETIME_GMONTH: /* MonthDay, [TimeZone] */ + /* e.g. "--12" */ + case EXI_DATETIME_GMONTHDAY: /* MonthDay, [TimeZone] */ + /* e.g. "--01-28" */ + case EXI_DATETIME_GDAY: /* MonthDay, [TimeZone] */ + /* "---16" */ + errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY, &datetime->monthDay ); + break; + default: + errn = EXI_UNSUPPORTED_DATETIME_TYPE; + break; + } + + if(errn == 0) { + errn = decodeBoolean(stream, &datetime->presenceTimezone ); + if (errn == 0 && datetime->presenceTimezone) { + errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_TIMEZONE, &datetime->timezone); + datetime->timezone -= DATETIME_TIMEZONE_OFFSET_IN_MINUTES; + } + } + + return errn; +} + + + +int decode(bitstream_t* stream, uint8_t* b) { +#if EXI_OPTION_ALIGNMENT == BIT_PACKED + uint32_t bb; + int errn = readBits(stream, 8, &bb); + if (errn == 0) { + if (bb > 256) { + errn = EXI_ERROR_UNEXPECTED_BYTE_VALUE; + } else { + *b = (uint8_t)bb; + } + } + + return errn; +#endif /* EXI_OPTION_ALIGNMENT == BIT_PACKED */ +#if EXI_OPTION_ALIGNMENT == BYTE_ALIGNMENT + int errn = 0; +#if EXI_STREAM == BYTE_ARRAY + if ( (*stream->pos) < stream->size ) { + *b = stream->data[(*stream->pos)++]; + } else { + errn = EXI_ERROR_INPUT_STREAM_EOF; + } +#endif /* EXI_STREAM == BYTE_ARRAY */ +#if EXI_STREAM == FILE_STREAM + *b = (uint8_t)(getc(stream->file)); + /* EOF cannot be used, 0xFF valid value */ + if ( feof(stream->file) || ferror(stream->file) ) { + errn = EXI_ERROR_INPUT_STREAM_EOF; + } +#endif /* EXI_STREAM == FILE_STREAM */ + + return errn; +#endif /* EXI_OPTION_ALIGNMENT == BYTE_ALIGNMENT */ +} + +int decodeBoolean(bitstream_t* stream, int* b) { +#if EXI_OPTION_ALIGNMENT == BIT_PACKED + uint32_t ub; + int errn = readBits(stream, 1, &ub); + *b = (ub == 0) ? 0 : 1; + return errn; +#endif /* EXI_OPTION_ALIGNMENT == BIT_PACKED */ +#if EXI_OPTION_ALIGNMENT == BYTE_ALIGNMENT + uint8_t bb; + int errn = decode(stream, &bb); + *b = (bb == 0) ? 0 : 1; + return errn; +#endif /* EXI_OPTION_ALIGNMENT == BYTE_ALIGNMENT */ + +} + +/** + * Decodes and returns an n-bit unsigned integer using the minimum number of + * bytes required for n bits. + */ +int decodeNBitUnsignedInteger(bitstream_t* stream, size_t nbits, uint32_t* uint32) { +#if EXI_OPTION_ALIGNMENT == BIT_PACKED + int errn = 0; + if (nbits == 0) { + *uint32 = 0; + } else { + errn= readBits(stream, nbits, uint32); + } + return errn; +#endif /* EXI_OPTION_ALIGNMENT == BIT_PACKED */ +#if EXI_OPTION_ALIGNMENT == BYTE_ALIGNMENT + size_t bitsRead = 0; + uint8_t b; + int errn = 0; + *uint32 = 0; + + while (errn == 0 && bitsRead < nbits) { + errn = decode(stream, &b); + *uint32 = *uint32 + (uint32_t)(b << bitsRead); + bitsRead = (bitsRead + 8); + } + + return errn; +#endif /* EXI_OPTION_ALIGNMENT == BYTE_ALIGNMENT */ +} + + + +#endif + diff --git a/csharp/vc2022/src/codec/DecoderChannel.h b/csharp/vc2022/src/codec/DecoderChannel.h new file mode 100644 index 0000000..5b43412 --- /dev/null +++ b/csharp/vc2022/src/codec/DecoderChannel.h @@ -0,0 +1,441 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-02 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file DecoderChannel.h + * \brief EXI Decoder Channel + * + */ + +#ifndef DECODER_CHANNEL_H +#define DECODER_CHANNEL_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "EXIOptions.h" +#include "EXITypes.h" + +/** + * \brief Decode byte value + * + * \param stream Input Stream + * \param b byte (out) + * \return Error-Code <> 0 + * + */ +int decode(bitstream_t* stream, uint8_t* b); + + +/** + * \brief Decode boolean + * + * Decode a single boolean value. The value false is + * represented by 0, and the value true is represented by 1. + * + * \param stream Input Stream + * \param b boolean (out) + * \return Error-Code <> 0 + * + */ +int decodeBoolean(bitstream_t* stream, int* b); + + +/** + * \brief Decode n-bit unsigned integer + * + * Decodes and returns an n-bit unsigned integer. + * + * \param stream Input Stream + * \param nbits Number of bits + * \param uint32 Value (out) + * \return Error-Code <> 0 + * + */ +int decodeNBitUnsignedInteger(bitstream_t* stream, size_t nbits, uint32_t* uint32); + + +/** + * \brief Decode unsigned integer + * + * Decode an arbitrary precision non negative integer using + * a sequence of octets. The most significant bit of the last + * octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Input Stream + * \param iv Unsigned Integer Value (out) + * \return Error-Code <> 0 + * + */ +int decodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv); + + +/** + * \brief Decode unsigned integer + * + * Decode an arbitrary precision non negative integer using + * a sequence of octets. The most significant bit of the last + * octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Input Stream + * \param uint16 Unsigned Integer Value 16 bits (out) + * \return Error-Code <> 0 + * + */ +int decodeUnsignedInteger16(bitstream_t* stream, uint16_t* uint16); + + +/** + * \brief Decode unsigned integer + * + * Decode an arbitrary precision non negative integer using + * a sequence of octets. The most significant bit of the last + * octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Input Stream + * \param uint32 Unsigned Integer Value 32 bits (out) + * \return Error-Code <> 0 + * + */ +int decodeUnsignedInteger32(bitstream_t* stream, uint32_t* uint32); + + +/** + * \brief Decode unsigned integer + * + * Decode an arbitrary precision non negative integer using + * a sequence of octets. The most significant bit of the last + * octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Input Stream + * \param sizeT Unsigned Integer Value (out) + * \return Error-Code <> 0 + * + */ +int decodeUnsignedIntegerSizeT(bitstream_t* stream, size_t* sizeT); + + +/** + * \brief Decode unsigned integer + * + * Decode an arbitrary precision non negative integer using + * a sequence of octets. The most significant bit of the last + * octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Input Stream + * \param uint64 Unsigned Integer Value 64 bits (out) + * \return Error-Code <> 0 + * + */ +int decodeUnsignedInteger64(bitstream_t* stream, uint64_t* uint64); + +/** + * \brief Decode unsigned integer + * + * Decode an arbitrary precision non negative integer using + * a sequence of octets. The most significant bit of the last + * octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Input Stream + * \param size size array + * \param data data array + * \param len length array + * \return Error-Code <> 0 + * + */ +int decodeUnsignedIntegerBig(bitstream_t* stream, size_t size, uint8_t* data, size_t* len); + + +/** + * \brief Decode integer + * + * Decode an arbitrary precision integer using a sign bit + * followed by a sequence of octets. The most significant bit + * of the last octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Input Stream + * \param iv Integer Value 64 bits (out) + * \return Error-Code <> 0 + * + */ +int decodeInteger(bitstream_t* stream, exi_integer_t* iv); + + +/** + * \brief Decode integer + * + * Decode an arbitrary precision integer using a sign bit + * followed by a sequence of octets. The most significant bit + * of the last octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Input Stream + * \param int16 Integer Value 16 bits (out) + * \return Error-Code <> 0 + * + */ +int decodeInteger16(bitstream_t* stream, int16_t* int16); + + +/** + * \brief Decode integer + * + * Decode an arbitrary precision integer using a sign bit + * followed by a sequence of octets. The most significant bit + * of the last octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Input Stream + * \param int32 Integer Value 32 bits (out) + * \return Error-Code <> 0 + * + */ +int decodeInteger32(bitstream_t* stream, int32_t* int32); + + +/** + * \brief Decode integer + * + * Decode an arbitrary precision integer using a sign bit + * followed by a sequence of octets. The most significant bit + * of the last octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Input Stream + * \param int64 Integer Value 64 bits (out) + * \return Error-Code <> 0 + * + */ +int decodeInteger64(bitstream_t* stream, int64_t* int64); + +/** + * \brief Decode integer + * + * Decode an arbitrary precision integer using a sign bit + * followed by a sequence of octets. The most significant bit + * of the last octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Input Stream + * \param negative negative integer + * \param size size array + * \param data data array + * \param len length array + * \return Error-Code <> 0 + * + */ +int decodeIntegerBig(bitstream_t* stream, int* negative, size_t size, uint8_t* data, size_t* len); + +/** + * \brief Decode float + * + * Decode a Float datatype as two consecutive Integers. The + * first Integer represents the mantissa of the floating point + * number and the second Integer represents the base-10 exponent + * of the floating point number. + * + * \param stream Input Stream + * \param f Float Value (out) + * \return Error-Code <> 0 + * + */ +int decodeFloat(bitstream_t* stream, exi_float_me_t* f); + + +/** + * \brief Decode decimal + * + * Decode a decimal represented as a Boolean sign followed by two + * Unsigned Integers. A sign value of zero (0) is used to represent + * positive Decimal values and a sign value of one (1) is used to + * represent negative Decimal values The first Integer represents + * the integral portion of the Decimal value. The second positive + * integer represents the fractional portion of the decimal with + * the digits in reverse order to preserve leading zeros. + * + * \param stream Input Stream + * \param d Decimal Value (out) + * \return Error-Code <> 0 + * + */ +int decodeDecimal(bitstream_t* stream, exi_decimal_t* d); + + +/** + * \brief Decode String (no length prefix) + * + * Decode a sequence of characters for a given length. + * + * \param stream Input Stream + * \param len Characters length + * \param s String Value (out) + * \return Error-Code <> 0 + * + */ +int decodeStringOnly(bitstream_t* stream, size_t len, exi_string_t* s); + + +/** + * \brief Decode String + * + * Decode a length prefixed sequence of characters. + * + * \param stream Input Stream + * \param s String Value (out) + * \return Error-Code <> 0 + * + */ +int decodeString(bitstream_t* stream, exi_string_t* s); + + + +/** + * \brief Decode String value + * + * Decode a length prefixed sequence of characters in the sense of string tables. + * length == 0: local value partition hit. + * length == 1: global value partition hit. + * length > 1: string literal is encoded as a String with the length incremented by two + * + * \param stream Input Stream + * \param stringTable String Table + * \param qnameID Qualified Name ID + * \param namespaceUriID Qualified Namespace ID + * \param localNameID Qualified LocalName ID + * \param s String Value (out) + * \return Error-Code <> 0 + * + */ +int decodeStringValue(bitstream_t* stream, exi_value_string_table_t* stringTable, size_t namespaceUriID, size_t localNameID, exi_string_value_t* s); + + +/** + * \brief Decode Restricted characters set string value + * + * \param stream Input Stream + * \param stringTable StringTable + * \param namespaceUriID qualified namespace ID + * \param localNameID qualified localName ID + * \param rcs Restricted character set + * \param s String Value (out) + * \return Error-Code <> 0 + * + */ +int decodeRCSStringValue(bitstream_t* stream, exi_value_string_table_t* stringTable, size_t namespaceUriID, size_t localNameID, exi_rcs_t* rcs, exi_string_value_t* s); + + +/** + * \brief Decode characters + * + * Decode a sequence of characters according to a given length. + * + * \param stream Input Stream + * \param len Length + * \param chars Characters (out) + * \param charsSize Size of possible characters + * \return Error-Code <> 0 + * + */ +int decodeCharacters(bitstream_t* stream, size_t len, exi_string_character_t* chars, size_t charsSize); + + +/** + * \brief Decode restricted character set characters + * + * Decode a sequence of characters according to a given length and rcs code-length, size and set. + * + * \param stream Input Stream + * \param len Length + * \param chars Characters (out) + * \param charsSize Size of possible characters + * \param rcsCodeLength RCS code-length + * \param rcsCodeLength RCS size + * \param rcsCodeLength RCS set + * \return Error-Code <> 0 + * + */ +int decodeRCSCharacters(bitstream_t* stream, size_t len, exi_string_character_t* chars, size_t charsSize, size_t rcsCodeLength, size_t rcsSize, const exi_string_character_t rcsSet[]); + + + +/** + * \brief Decode Binary + * + * Decode a binary value as a length-prefixed sequence of octets. + * + * \param stream Input Stream + * \param bytes Bytes (out) + * \return Error-Code <> 0 + * + */ +int decodeBinary(bitstream_t* stream, exi_bytes_t* bytes); + +/** + * \brief Decode Binary data + * + * Decode a sequence of octets. + * + * \param stream Input Stream + * \param len Length + * \param data Bytes (out) + * \return Error-Code <> 0 + * + */ +int decodeBytes(bitstream_t* stream, size_t len, uint8_t* data); + +/** + * \brief Decode DateTime + * + * Decode Date-Time as sequence of values representing the + * individual components of the Date-Time. + * + * \param stream Input Stream + * \param type Datetime type + * \param datetime Datetime (out) + * \return Error-Code <> 0 + * + */ +int decodeDateTime(bitstream_t* stream, exi_datetime_type_t type, exi_datetime_t* datetime); + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/codec/EXIConfig.h b/csharp/vc2022/src/codec/EXIConfig.h new file mode 100644 index 0000000..edbb2dc --- /dev/null +++ b/csharp/vc2022/src/codec/EXIConfig.h @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-23 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIConfig.h + * \brief EXI Configurations for the EXI Codec + * + */ + +#ifndef EXI_CONFIG_H +#define EXI_CONFIG_H + +#ifdef __cplusplus +extern "C" { +#endif + + +/** EXI stream - Option Byte Array */ +#define BYTE_ARRAY 1 +/** EXI stream - Option File */ +#define FILE_STREAM 2 +/** \brief EXI stream + * + * Byte array or file + * */ +#define EXI_STREAM BYTE_ARRAY + + + + + +/** Memory allocation - static */ +#define STATIC_ALLOCATION 1 +/** Memory allocation - dynamic */ +#define DYNAMIC_ALLOCATION 2 +/** */ +/** \brief Memory allocation mode + * + * static or dynamic memory allocation + * */ +#define MEMORY_ALLOCATION STATIC_ALLOCATION + + + +/** String representation ASCII */ +#define STRING_REPRESENTATION_ASCII 1 +/** String representation Universal Character Set (UCS) */ +#define STRING_REPRESENTATION_UCS 2 +/** */ +/** \brief String representation mode + * + * ASCII or UCS + * */ +#define STRING_REPRESENTATION STRING_REPRESENTATION_UCS + + +/* in the case of ASCII an extra char (null terminator) for printf and other functions is useful */ +#if STRING_REPRESENTATION == STRING_REPRESENTATION_ASCII +#define EXTRA_CHAR 1 +#endif /* STRING_REPRESENTATION_ASCII */ +#if STRING_REPRESENTATION == STRING_REPRESENTATION_UCS +#define EXTRA_CHAR 0 +#endif /* STRING_REPRESENTATION_UCS */ + + + + + +/** Maximum number of cascading elements, XML tree depth */ +#define EXI_ELEMENT_STACK_SIZE 24 + + +#ifdef __cplusplus +} +#endif + +#endif /* EXI_CONFIG_H */ + diff --git a/csharp/vc2022/src/codec/EXIHeaderDecoder.c b/csharp/vc2022/src/codec/EXIHeaderDecoder.c new file mode 100644 index 0000000..5d48cb9 --- /dev/null +++ b/csharp/vc2022/src/codec/EXIHeaderDecoder.c @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-02 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +#include "EXIHeaderDecoder.h" +#include "BitInputStream.h" +#include "DecoderChannel.h" +#include "ErrorCodes.h" + +#ifndef EXI_HEADER_DECODER_C +#define EXI_HEADER_DECODER_C + +int readEXIHeader(bitstream_t* stream) { + int errn; + uint32_t header = 0; + + /* init stream */ + stream->buffer = 0; + stream->capacity = 0; + + errn = readBits(stream, 8, &header); + if (errn == 0) { + if(header == '$') { + /* we do not support "EXI Cookie" */ + errn = EXI_UNSUPPORTED_HEADER_COOKIE; + } else if ( header & 0x20 ) { + /* we do not support "Presence Bit for EXI Options" */ + errn = EXI_UNSUPPORTED_HEADER_OPTIONS; + } else { + /* Yes, a *simple* header */ + errn = 0; + } + } + + return errn; +} + + +#endif + + diff --git a/csharp/vc2022/src/codec/EXIHeaderDecoder.h b/csharp/vc2022/src/codec/EXIHeaderDecoder.h new file mode 100644 index 0000000..37136d0 --- /dev/null +++ b/csharp/vc2022/src/codec/EXIHeaderDecoder.h @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-02 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIHeaderDecoder.h + * \brief EXI Header Decoder + * + */ + +#ifndef EXI_HEADER_DECODER_H +#define EXI_HEADER_DECODER_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "EXITypes.h" + +/** + * \brief Reads EXI header + * + * \param stream Input Stream + * \return Error-Code <> 0 + * + */ +int readEXIHeader(bitstream_t* stream); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/codec/EXIHeaderEncoder.c b/csharp/vc2022/src/codec/EXIHeaderEncoder.c new file mode 100644 index 0000000..36c7851 --- /dev/null +++ b/csharp/vc2022/src/codec/EXIHeaderEncoder.c @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-02 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +#include "EXIHeaderEncoder.h" +#include "BitOutputStream.h" +#include "EncoderChannel.h" + +#ifndef EXI_HEADER_ENCODER_C +#define EXI_HEADER_ENCODER_C + +int writeEXIHeader(bitstream_t* stream) { + /* init stream */ + stream->buffer = 0; + stream->capacity = 8; + + return writeBits(stream, 8, 128); +} + + +#endif + + diff --git a/csharp/vc2022/src/codec/EXIHeaderEncoder.h b/csharp/vc2022/src/codec/EXIHeaderEncoder.h new file mode 100644 index 0000000..e7cf0d3 --- /dev/null +++ b/csharp/vc2022/src/codec/EXIHeaderEncoder.h @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-02 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIHeaderEncoder.h + * \brief EXI Header Encoder + * + */ + +#ifndef EXI_HEADER_ENCODER_H +#define EXI_HEADER_ENCODER_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "EXITypes.h" + + +/** + * \brief Writes EXI header + * + * \param stream Output Stream + * \return Error-Code <> 0 + * + */ +int writeEXIHeader(bitstream_t* stream); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/codec/EXIOptions.h b/csharp/vc2022/src/codec/EXIOptions.h new file mode 100644 index 0000000..9156746 --- /dev/null +++ b/csharp/vc2022/src/codec/EXIOptions.h @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-02 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIOptions.h + * \brief EXI Options for the EXI Codec + * + */ + +#ifndef EXI_OPTIONS_H +#define EXI_OPTIONS_H + +#ifdef __cplusplus +extern "C" { +#endif + + +/** EXI alignment - Option bit-packed */ +#define BIT_PACKED 1 +/** EXI alignment - Option byte-packed */ +#define BYTE_ALIGNMENT 2 +/** EXI alignment */ +/** + * \brief EXI Option 'alignment' + * + * The alignment option is used to control the alignment of event codes and content items. + * Default Value: bit-packed + */ +#define EXI_OPTION_ALIGNMENT BIT_PACKED + + + +/** + * \brief EXI Option 'strict' + * + * Strict interpretation of schemas is used to achieve better compactness. + * Default Value: false + */ +#define EXI_OPTION_STRICT 0 + + +/** + * \brief EXI Option 'valueMaxLength' + * + * Specifies the maximum string length of value content items to be + * considered for addition to the string table. + * Default Value: unbounded (-1) + */ +#define EXI_OPTION_VALUE_MAX_LENGTH -1 + + +/** + * \brief EXI Option 'valuePartitionCapacity' + * + * Specifies the total capacity of value partitions in a string table. + * Default Value: unbounded (-1) + */ +#define EXI_OPTION_VALUE_PARTITION_CAPACITY 0 + + +#ifdef __cplusplus +} +#endif + +#endif /* EXI_OPTIONS_H */ diff --git a/csharp/vc2022/src/codec/EXITypes.h b/csharp/vc2022/src/codec/EXITypes.h new file mode 100644 index 0000000..9b2bdf8 --- /dev/null +++ b/csharp/vc2022/src/codec/EXITypes.h @@ -0,0 +1,591 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-02 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXITypes.h + * \brief Basic type definitions and structs + * + */ + +#ifndef EXI_TYPES_H +#define EXI_TYPES_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include "EXIConfig.h" +#if EXI_STREAM == FILE_STREAM +#include +#endif + + +/** Number of bits for each byte */ +#define BITS_IN_BYTE 8 + +/** EXI Date-Time offset for year */ +#define DATETIME_YEAR_OFFSET 2000 +/** EXI Date-Time number of bits for monthDay */ +#define DATETIME_NUMBER_BITS_MONTHDAY 9 +/** EXI Date-Time number of bits for time */ +#define DATETIME_NUMBER_BITS_TIME 17 +/** EXI Date-Time number of bits for timezone */ +#define DATETIME_NUMBER_BITS_TIMEZONE 11 +/** EXI Date-Time month multiplicator */ +#define DATETIME_MONTH_MULTIPLICATOR 32 +/** EXI Date-Time offset for timzone minutes */ +#define DATETIME_TIMEZONE_OFFSET_IN_MINUTES 896 + +/** Maximum integer value for uint */ +#define UINT_MAX_VALUE 65535 + + +/** EXI Float exponent special values */ +#define FLOAT_EXPONENT_SPECIAL_VALUES -16384 +/** EXI Float mantissa infinity */ +#define FLOAT_MANTISSA_INFINITY 1 +/** EXI Float minus mantissa infinity */ +#define FLOAT_MANTISSA_MINUS_INFINITY -1 +/** EXI Float not a number */ +#define FLOAT_MANTISSA_NOT_A_NUMBER 0 + +/** \brief EXI Events */ +typedef enum { + /** Start Document SD */ + EXI_EVENT_START_DOCUMENT, + /** End Document ED */ + EXI_EVENT_END_DOCUMENT, + /** Start Element SE(qname) */ + EXI_EVENT_START_ELEMENT, + /** Start Element SE(uri:*) */ + EXI_EVENT_START_ELEMENT_NS, + /** Start Element SE(*) generic */ + EXI_EVENT_START_ELEMENT_GENERIC, + /** Start Element SE(*) generic undeclared */ + EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED, + /** End Element EE */ + EXI_EVENT_END_ELEMENT, + /** End Element EE undeclared*/ + EXI_EVENT_END_ELEMENT_UNDECLARED, + /** Characters CH */ + EXI_EVENT_CHARACTERS, + /** Characters CH generic */ + EXI_EVENT_CHARACTERS_GENERIC, + /** Characters CH generic undeclared */ + EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED, + /** Attribute AT(xsi:type) */ + EXI_EVENT_ATTRIBUTE_XSI_TYPE, + /** Attribute AT(xsi:nil) */ + EXI_EVENT_ATTRIBUTE_XSI_NIL, + /** Attribute AT(qname) */ + EXI_EVENT_ATTRIBUTE, + /** Attribute AT(uri:*) */ + EXI_EVENT_ATTRIBUTE_NS, + /** Attribute AT(*) generic */ + EXI_EVENT_ATTRIBUTE_GENERIC, + /** Attribute AT(*) invalid value */ + EXI_EVENT_ATTRIBUTE_INVALID_VALUE, + /** Attribute AT(*) any invalid value */ + EXI_EVENT_ATTRIBUTE_ANY_INVALID_VALUE, + /** Attribute AT(*) generic undeclared */ + EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED, + /* error state */ + EXI_EVENT_ERROR +} exi_event_t; + + +/** + * \brief Bit stream container + * + * Structure for byteArray/file stream. + * + * # General + * .size defines the maximum size of the byte array (see .data) + * + * .data points to the input/output array of bytes (unsigned char*). + * + * .pos has to be set to an pointer to an 32 bit long unsigned integer (uint32_t *) + * as this variable is read/write. + * Therefore it is best practice to declare the variable itself and use the &-operator + * to assign the address. The value of that variable points to the position inside the + * buffer where the stream begins. Which is usually the first (0th) byte but can also be + * another value if there more information transferred in that stream. + * After processing .pos points to the next "available" byte (if any left). + * + * .buffer has to be set to 0 for internal use only (single byte buffer) + * + * # Receiving data (input) + * .capacity is used for addressing single bits in the actual byte (see .buffer) + * and has to be set to 0, which means there are 0 bits read so far and a new + * byte needs to be read from the input stream/data-array to the current byte buffer. + * + * # Sending data (output) + * .capacity is used for addressing single bits in the actual byte (see .buffer) + * and has to be set to 8, which means there are still 8 bits left to fill up + * the current byte buffer before writing the final byte to the output stream/data-array. + * + */ +typedef struct { +#if EXI_STREAM == BYTE_ARRAY + /** byte array size */ + size_t size; + /** byte array data */ + uint8_t* data; + /** byte array next position in array */ + size_t* pos; +#endif +#if EXI_STREAM == FILE_STREAM + /** file pointer */ + FILE *file; +#endif + /** Current byte buffer*/ + uint8_t buffer; + /** Remaining bit capacity in current byte buffer*/ + uint8_t capacity; +} bitstream_t; + + +/** \brief EXI Value Datatypes */ +typedef enum { + /** Binary Base64 */ + EXI_DATATYPE_BINARY_BASE64, + /** Binary Hex */ + EXI_DATATYPE_BINARY_HEX, + /** Boolean */ + EXI_DATATYPE_BOOLEAN, + /** Boolean with Facets */ + EXI_DATATYPE_BOOLEAN_FACET, + /** Decimal */ + EXI_DATATYPE_DECIMAL, + /** Float & Double */ + EXI_DATATYPE_FLOAT, + /** N-Bit Unsigned Integer */ + EXI_DATATYPE_NBIT_UNSIGNED_INTEGER, + /** Unsigned Integer */ + EXI_DATATYPE_UNSIGNED_INTEGER, + /** (Signed) Integer */ + EXI_DATATYPE_INTEGER, + /** Datetime */ + EXI_DATATYPE_DATETIME, + /** String */ + EXI_DATATYPE_STRING, + /** Restricted Character Set String */ + EXI_DATATYPE_RCS_STRING, + /** Enumeration */ + EXI_DATATYPE_ENUMERATION, + /** List */ + EXI_DATATYPE_LIST, + /** QName (e.g. xsi:type) */ + EXI_DATATYPE_QNAME +} exi_datatype_t; + + +/** \brief EXI Integer Value types */ +typedef enum { + /** Unsigned Integer 8 bits */ + EXI_UNSIGNED_INTEGER_8, + /** Unsigned Integer 16 bits */ + EXI_UNSIGNED_INTEGER_16, + /** Unsigned Integer 32 bits */ + EXI_UNSIGNED_INTEGER_32, + /** Unsigned Integer 64 bits */ + EXI_UNSIGNED_INTEGER_64, + /** (Signed) Integer 8 bits */ + EXI_INTEGER_8, + /** (Signed) Integer 16 bits */ + EXI_INTEGER_16, + /** (Signed) Integer 32 bits */ + EXI_INTEGER_32, + /** (Signed) Integer 64 bits */ + EXI_INTEGER_64 +} exi_integer_type_t; + + +/** \brief EXI Datetime types */ +typedef enum { + /** gYear */ + EXI_DATETIME_GYEAR, + /** gYearMonth */ + EXI_DATETIME_GYEARMONTH, + /** date */ + EXI_DATETIME_DATE, + /** datetime */ + EXI_DATETIME_DATETIME, + /** gMonth */ + EXI_DATETIME_GMONTH, + /** gMonthDay */ + EXI_DATETIME_GMONTHDAY, + /** gDay */ + EXI_DATETIME_GDAY, + /** time */ + EXI_DATETIME_TIME +} exi_datetime_type_t; + + +/** \brief String value type */ +typedef enum { + /** value miss */ + EXI_STRING_VALUE_MISS, + /** value local-hit */ + EXI_STRING_VALUE_LOCAL_HIT, + /** value global-hit */ + EXI_STRING_VALUE_GLOBAL_HIT +} exi_string_value_type_t; + +/** \brief EXI string character */ +/* Note: define whether you wan't to support ASCII only or UCS */ +#if STRING_REPRESENTATION == STRING_REPRESENTATION_ASCII +typedef char exi_string_character_t; +#endif /* STRING_REPRESENTATION_ASCII */ +#if STRING_REPRESENTATION == STRING_REPRESENTATION_UCS +typedef uint32_t exi_string_character_t; +#endif /* STRING_REPRESENTATION_UCS */ + + + +/** \brief Universal Character Set (UCS) strings */ +typedef struct { + /** container size */ + size_t size; + /** string character container */ + exi_string_character_t* characters; + /** current string length == number of code-points, (len <= size) */ + size_t len; +} exi_string_t; + + +/** \brief String value */ +typedef struct { + /** value type (e.g., miss, local-hit, global-hit) */ + exi_string_value_type_t type; + /** miss entry */ + exi_string_t miss; + /** (local) hit entry */ + size_t localID; + /** (global) hit entry */ + size_t globalID; +} exi_string_value_t; + + +/** \brief Restricted Characeter Set */ +typedef struct { + /** size */ + size_t size; + /** rcs codepoints */ + exi_string_character_t* characters; + /** character coding length (less than 256 characters) */ + uint8_t codingLength; +} exi_rcs_t; + + +/** \brief Byte value container */ +typedef struct { + /** bytes array size */ + size_t size; + /** bytes array data container */ + uint8_t* data; + /** bytes array length (len <= size) */ + size_t len; +} exi_bytes_t; + + +/** \brief Integer value container */ +typedef struct { + /** type */ + exi_integer_type_t type; + union { + /* (signed) values */ + /** (signed) int 8 bits */ + int8_t int8; + /** (signed) int 16 bits */ + int16_t int16; + /** (signed) int 32 bits */ + int32_t int32; + /** (signed) int 64 bits */ + int64_t int64; + /* unsigned values */ + /** unsigned int 8 bits */ + uint8_t uint8; + /** unsigned int 16 bits */ + uint16_t uint16; + /** unsigned int 32 bits */ + uint32_t uint32; + /** unsigned int 64 bits */ + uint64_t uint64; + } val; +} exi_integer_t; + + +/** \brief Float value container */ +typedef struct { + /** range of the mantissa is -(2^63) to 2^63-1 */ + int64_t mantissa; + /** range of the exponent is - (2^14-1) to 2^14-1 */ + int16_t exponent; /* base-10 */ +} exi_float_me_t; + + +/** \brief Decimal value container */ +typedef struct { + /** a sign value */ + int negative; + /** represents the integral portion of the Decimal */ + exi_integer_t integral; + /** represents the fractional portion of the Decimal with the digits in reverse order to preserve leading zeros */ + exi_integer_t reverseFraction; +} exi_decimal_t; + + +/** \brief Datetime value container */ +typedef struct { + /** datetime type */ + exi_datetime_type_t type; + /** Datetime value for year */ + int32_t year; + /** Datetime value for monthDay */ + uint32_t monthDay; + /** Datetime value for time */ + uint32_t time; + /** Datetime value for presenceFractionalSecs */ + int presenceFractionalSecs; + /** Datetime value for fractionalSecs */ + uint32_t fractionalSecs; + /** Datetime value for presenceTimezone */ + int presenceTimezone; + /** Datetime value for timezone */ + uint32_t timezone; +} exi_datetime_t; + + +/** \brief List value container */ +typedef struct { + /** list item type */ + exi_datatype_t type; + /** number of items */ + size_t len; + /* Special datatype: integer */ + /* exi_integer_type_t intType;*/ + /** Special datatype: datetime */ + exi_datetime_type_t datetimeType; +} exi_list_t; + + +/** \brief Efficient qname */ +typedef struct { + /** namespace URI ID*/ + size_t namespaceURI; + /** local name ID*/ + size_t localPart; +} exi_eqname_t; + + +/** \brief Name entry type */ +typedef enum { + /** As known IDs */ + EXI_NAME_ENTRY_TYPE_ID, + /** As String */ + EXI_NAME_ENTRY_TYPE_STRING_AND_ID +} exi_name_entry_type_t; + + +/** \brief Name entry */ +typedef struct { + /** type */ + exi_name_entry_type_t type; + /** entry ID */ + size_t id; + /** entry string */ + exi_string_t str; +} exi_name_entry_t; + + +/** \brief Qualified name */ +typedef struct { + /** Uri */ + exi_name_entry_t uri; + /** LocalName */ + exi_name_entry_t localName; +} exi_qname_t; + +/*TODO Doxygen Documentation */ + + +/* ==================================== */ +/* URI and LocalName Entries */ +typedef struct exiNameTablePrepopulated { + /* number of namespaces AND length name-partitions array */ + size_t len; + /* number of localName entries divided by URI */ + size_t* localNames; +} exi_name_table_prepopulated_t; + +#define EXI_MAXIMUM_NUMBER_OF_NAME_PARTITION_ENTRIES 25 + +typedef enum { + EXI_NAME_PARTITION_URI, EXI_NAME_PARTITION_LOCALNAME +} exi_name_partition_type_t; + +typedef struct { + char* uri; + size_t uriID; +} exi_uri_partition_t; + +typedef struct { + char* localName; + size_t localNameID; + size_t uriID; +} exi_localname_partition_t; + +typedef struct { + exi_name_partition_type_t namePartitionType; + struct { + exi_uri_partition_t uriPartition; + exi_localname_partition_t localNamePartition; + } entry; +} exi_name_partition_t; + +typedef struct exiNameTableRuntime { + /* maximum number of characters in the name partitions entries PLUS null terminators */ + /* char characters[EXI_MAXIMUM_NUMBER_OF_NAME_PARTITION_CHARACTERS + EXI_MAXIMUM_NUMBER_OF_NAME_PARTITION_ENTRIES]; */ + /* uint16_t numberOfUsedCharacters; *//* initially zero <= EXI_MAXIMUM_NUMBER_OF_NAME_PARTITION_CHARACTERS */ + /* maximum number of name partitions entries. Name partitions entries consist in all uri, and local-name partition entries */ + exi_name_partition_t + namePartitionsEntries[EXI_MAXIMUM_NUMBER_OF_NAME_PARTITION_ENTRIES]; + /* uint16_t numberOfUsedNamePartitions; *//* initially zero */ + /* added entries */ + size_t addedUriEntries; /* initially zero */ + size_t addedLocalNameEntries; /* initially zero */ +} exi_name_table_runtime_t; + + +/* StartTagContent grammar initially empty */ +/* ElementContent grammar has EE per default */ +typedef struct { + size_t namespaceUriID; + size_t localNameID; + size_t numberOfProductions; + int hasXsiType; /* StartTagContent only */ + int hasEE; /* ElementContentper default TRUE */ +} exi_runtime_element_t; + +/* Note: We do have twice as many runtime grammars (StartTagContent and ElementContent)*/ +#define MAX_NUMBER_OF_RUNTIME_ELEMENTS 80 + + + +/* ==================================== */ +/* Value string table */ +typedef struct exiValueStringTableEntry { + /** Qualified namespace URI */ + size_t namespaceUriID; + /** Qualified localName */ + size_t localNameID; + /** Local Value ID */ + size_t localValueID; + /** String */ + exi_string_t str; +} exi_value_string_table_entry_t; + +typedef struct exiValueStringTable { + /** maximum number of global string table entry size */ + size_t size; + /** string table entry array container */ + exi_value_string_table_entry_t* strs; + /** current number of string table entries (len <= size) */ + size_t len; +} exi_value_string_table_t; + +/* typedef struct { */ + /** number of global strings */ + /* uint16_t numberOfGlobalStrings; */ + /** size of local-names container */ + /* uint16_t sizeLocalStrings; */ + /** number of local strings container */ + /* uint16_t* numberOfLocalStrings; */ + /** string values */ +/* exi_value_string_table_t* valueStringTable; +} exi_value_table_t;*/ + +typedef struct { + /** stack of grammar states */ + int16_t grammarStack[EXI_ELEMENT_STACK_SIZE]; + /** stack of grammar elements / qnameIDs */ + exi_eqname_t elementStack[EXI_ELEMENT_STACK_SIZE]; + /** stack index for both stacks */ + size_t stackIndex; + + /** event-code */ + uint32_t eventCode; + + /** name table entries, pre-populated */ + exi_name_table_prepopulated_t* nameTablePrepopulated; + /** name table entries, at runtime */ + exi_name_table_runtime_t* nameTableRuntime; + + /** next qname ID */ + size_t nextQNameID; + + /** string table entries */ + exi_value_string_table_t* stringTable; + + /** runtime built-in element grammars - numbers */ + size_t numberOfRuntimeGrammars; + /** runtime built-in element grammars */ + exi_runtime_element_t runtimeGrammars[MAX_NUMBER_OF_RUNTIME_ELEMENTS * 2]; +} exi_state_t; + +typedef struct { + /* type of value */ + exi_datatype_t type; + + /* base types */ + int boolean; + uint32_t enumeration; + + /* complex types: Integers, Bytes, Strings and Lists are not native types anymore */ + exi_integer_t integer; + exi_bytes_t binary; + exi_string_value_t str; + exi_float_me_t float_me; + exi_decimal_t decimal; + exi_datetime_t datetime; + exi_list_t list; + exi_eqname_t eqname; +} exi_value_t; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/codec/EncoderChannel.c b/csharp/vc2022/src/codec/EncoderChannel.c new file mode 100644 index 0000000..e7be9b6 --- /dev/null +++ b/csharp/vc2022/src/codec/EncoderChannel.c @@ -0,0 +1,704 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-02 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +#include "EncoderChannel.h" +#include "EXIOptions.h" +#include "BitOutputStream.h" +#include "EXITypes.h" +#include "ErrorCodes.h" +#include "MethodsBag.h" +/*#include "v2gEXICoder.h"*/ + +#ifndef ENCODER_CHANNEL_C +#define ENCODER_CHANNEL_C + +int encodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv) { + int errn = 0; + switch (iv->type) { + /* Unsigned Integer */ + case EXI_UNSIGNED_INTEGER_8: + errn = encodeUnsignedInteger32(stream, iv->val.uint8); + break; + case EXI_UNSIGNED_INTEGER_16: + errn = encodeUnsignedInteger32(stream, iv->val.uint16); + break; + case EXI_UNSIGNED_INTEGER_32: + errn = encodeUnsignedInteger32(stream, iv->val.uint32); + break; + case EXI_UNSIGNED_INTEGER_64: + errn = encodeUnsignedInteger64(stream, iv->val.uint64); + break; + /* (Signed) Integer */ + case EXI_INTEGER_8: + if (iv->val.int8 < 0) { + return EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE; + } + errn = encodeUnsignedInteger32(stream, (uint32_t)(iv->val.int8)); + break; + case EXI_INTEGER_16: + if (iv->val.int16 < 0) { + return EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE; + } + errn = encodeUnsignedInteger32(stream, (uint32_t)(iv->val.int16)); + break; + case EXI_INTEGER_32: + if (iv->val.int32 < 0) { + return EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE; + } + errn = encodeUnsignedInteger32(stream, (uint32_t)(iv->val.int32)); + break; + case EXI_INTEGER_64: + if (iv->val.int64 < 0) { + return EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE; + } + errn = encodeUnsignedInteger64(stream, (uint64_t)(iv->val.int64)); + break; + default: + errn = EXI_UNSUPPORTED_INTEGER_VALUE_TYPE; + break; + } + + return errn; +} + +/** + * Encode an arbitrary precision non negative integer using a sequence of + * octets. The most significant bit of the last octet is set to zero to + * indicate sequence termination. Only seven bits per octet are used to + * store the integer's value. + */ +int encodeUnsignedInteger16(bitstream_t* stream, uint16_t n) { + int errn = 0; + if (n < 128) { + /* write byte as is */ + errn = encode(stream, (uint8_t) n); + } else { + uint8_t n7BitBlocks = numberOf7BitBlocksToRepresent(n); + + switch (n7BitBlocks) { + case 3: + errn = encode(stream, (uint8_t) (128 | n)); + n = n >> 7; + if (errn != 0) { + break; + } + /* no break */ + case 2: + errn = encode(stream, (uint8_t) (128 | n)); + n = n >> 7; + if (errn != 0) { + break; + } + /* no break */ + case 1: + /* 0 .. 7 (last byte) */ + errn = encode(stream, (uint8_t) (0 | n)); + /* no break */ + } + } + + return errn; +} + +/** + * Encode an arbitrary precision non negative integer using a sequence of + * octets. The most significant bit of the last octet is set to zero to + * indicate sequence termination. Only seven bits per octet are used to + * store the integer's value. + */ +int encodeUnsignedInteger32(bitstream_t* stream, uint32_t n) { + int errn = 0; + if (n < 128) { + /* write byte as is */ + errn = encode(stream, (uint8_t) n); + } else { + uint8_t n7BitBlocks = numberOf7BitBlocksToRepresent(n); + + switch (n7BitBlocks) { + case 5: + errn = encode(stream, (uint8_t) (128 | n)); + n = n >> 7; + if (errn != 0) { + break; + } + /* no break */ + case 4: + errn = encode(stream, (uint8_t) (128 | n)); + n = n >> 7; + if (errn != 0) { + break; + } + /* no break */ + case 3: + errn = encode(stream, (uint8_t) (128 | n)); + n = n >> 7; + if (errn != 0) { + break; + } + /* no break */ + case 2: + errn = encode(stream, (uint8_t) (128 | n)); + n = n >> 7; + if (errn != 0) { + break; + } + /* no break */ + case 1: + /* 0 .. 7 (last byte) */ + errn = encode(stream, (uint8_t) (0 | n)); + /* no break */ + } + } + + return errn; +} + +/** + * Encode an arbitrary precision non negative integer using a sequence of + * octets. The most significant bit of the last octet is set to zero to + * indicate sequence termination. Only seven bits per octet are used to + * store the integer's value. + */ +int encodeUnsignedInteger64(bitstream_t* stream, uint64_t n) { + int errn = 0; + uint8_t lastEncode = (uint8_t) n; + n >>= 7; + + while (n != 0 && errn == 0) { + errn = encode(stream, lastEncode | 128); + lastEncode = (uint8_t) n; + n >>= 7; + } + + if (errn == 0) { + errn = encode(stream, lastEncode); + } + + return errn; +} + +void _shiftRight7(uint8_t* buf, int len) { + const int shift = 7; + unsigned char tmp = 0x00, tmp2 = 0x00; + for (int k = 0; k <= len; k++) { + if (k == 0) { + tmp = buf[k]; + buf[k] >>= shift; + } else { + tmp2 = buf[k]; + buf[k] >>= shift; + buf[k] |= ((tmp & 0x7F) << (8 - shift)); + + if (k != len) { + tmp = tmp2; + } + } + } +} + +/** + * Encode an arbitrary precision non negative integer using a sequence of + * octets. The most significant bit of the last octet is set to zero to + * indicate sequence termination. Only seven bits per octet are used to + * store the integer's value. + */ +int encodeUnsignedIntegerBig(bitstream_t* stream, size_t size, uint8_t* data, size_t len) { + int errn = 0; + int i; + int lenM1 = len - 1; + #define MAX_BIGINT_ARRAY 25 + uint8_t lastEncode = 0; + uint8_t bytesToShift[MAX_BIGINT_ARRAY]; // MAXIMUM + size_t bitsToEncode = len * 8; + + if(MAX_BIGINT_ARRAY <= len) { + return -1; + } + + /* init */ + for(i=0; i 7) { + lastEncode = bytesToShift[lenM1]; + lastEncode = lastEncode | 128; + errn = encode(stream, lastEncode); + _shiftRight7(bytesToShift, len); + bitsToEncode -= 7; + } + + if (errn == 0) { + errn = encode(stream, bytesToShift[lenM1]); + } + + return errn; +} + +int encodeInteger(bitstream_t* stream, exi_integer_t* iv) { + int errn = 0; + switch (iv->type) { + /* Unsigned Integer */ + case EXI_UNSIGNED_INTEGER_8: + errn = encodeInteger32(stream, iv->val.uint8); + break; + case EXI_UNSIGNED_INTEGER_16: + errn = encodeInteger32(stream, iv->val.uint16); + break; + case EXI_UNSIGNED_INTEGER_32: + errn = encodeInteger64(stream, iv->val.uint32); + break; + case EXI_UNSIGNED_INTEGER_64: + errn = encodeInteger64(stream, (int64_t)(iv->val.uint64)); + break; + /* (Signed) Integer */ + case EXI_INTEGER_8: + errn = encodeInteger32(stream, iv->val.int8); + break; + case EXI_INTEGER_16: + errn = encodeInteger32(stream, iv->val.int16); + break; + case EXI_INTEGER_32: + errn = encodeInteger32(stream, iv->val.int32); + break; + case EXI_INTEGER_64: + errn = encodeInteger64(stream, iv->val.int64); + break; + default: + errn = EXI_UNSUPPORTED_INTEGER_VALUE_TYPE; + break; + } + + return errn; +} + + +/** + * Encode an arbitrary precision integer using a sign bit followed by a + * sequence of octets. The most significant bit of the last octet is set to + * zero to indicate sequence termination. Only seven bits per octet are used + * to store the integer's value. + */ +int encodeInteger16(bitstream_t* stream, int16_t n) { + int errn; + /* signalize sign */ + if (n < 0) { + errn = encodeBoolean(stream, 1); + /* For negative values, the Unsigned Integer holds the + * magnitude of the value minus 1 */ + n = (int16_t)((-n) - 1); + } else { + errn = encodeBoolean(stream, 0); + } + if (errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)n); + } + return errn; +} + + + +/** + * Encode an arbitrary precision integer using a sign bit followed by a + * sequence of octets. The most significant bit of the last octet is set to + * zero to indicate sequence termination. Only seven bits per octet are used + * to store the integer's value. + */ +int encodeInteger32(bitstream_t* stream, int32_t n) { + int errn; + /* signalize sign */ + if (n < 0) { + errn = encodeBoolean(stream, 1); + /* For negative values, the Unsigned Integer holds the + * magnitude of the value minus 1 */ + n = (-n) - 1; + } else { + errn = encodeBoolean(stream, 0); + } + if (errn == 0) { + errn = encodeUnsignedInteger32(stream, (uint32_t)n); + } + return errn; +} + +/** + * Encode an arbitrary precision integer using a sign bit followed by a + * sequence of octets. The most significant bit of the last octet is set to + * zero to indicate sequence termination. Only seven bits per octet are used + * to store the integer's value. + */ +int encodeInteger64(bitstream_t* stream, int64_t n) { + int errn; + /* signalize sign */ + if (n < 0) { + errn = encodeBoolean(stream, 1); + /* For negative values, the Unsigned Integer holds the + * magnitude of the value minus 1 */ + n = (-n) - 1; + } else { + errn = encodeBoolean(stream, 0); + } + if (errn == 0) { + errn = encodeUnsignedInteger64(stream, (uint64_t)n); + } + return errn; +} + + +/** + * Encode an arbitrary precision integer using a sign bit followed by a + * sequence of octets. The most significant bit of the last octet is set to + * zero to indicate sequence termination. Only seven bits per octet are used + * to store the integer's value. + */ +int encodeIntegerBig(bitstream_t* stream, int negative, size_t size, uint8_t* data, size_t len) { + int errn; + /* signalize sign */ + if (negative) { + errn = encodeBoolean(stream, 1); + /* For negative values, the Unsigned Integer holds the + * magnitude of the value minus 1 */ + /* n = (-n) - 1; */ + } else { + errn = encodeBoolean(stream, 0); + } + if (errn == 0) { + errn = encodeUnsignedIntegerBig(stream, size, data, len); + } + return errn; +} + +/** + * The Float datatype representation is two consecutive Integers. + * The first Integer represents the mantissa of the floating point + * number and the second Integer represents the base-10 exponent + * of the floating point number. + */ +int encodeFloat(bitstream_t* stream, exi_float_me_t* f) { + int errn = encodeInteger64(stream, f->mantissa); + if (errn == 0) { + errn = encodeInteger32(stream, f->exponent); + } + return errn; +} + +/** + * Encode a decimal represented as a Boolean sign followed by two Unsigned + * Integers. A sign value of zero (0) is used to represent positive Decimal + * values and a sign value of one (1) is used to represent negative Decimal + * values The first Integer represents the integral portion of the Decimal + * value. The second positive integer represents the fractional portion of + * the decimal with the digits in reverse order to preserve leading zeros. + */ +int encodeDecimal(bitstream_t* stream, exi_decimal_t* d) { + /* sign, integral, reverse fractional */ + int errn = encodeBoolean(stream, d->negative); + if (errn == 0) { + errn = encodeUnsignedInteger(stream, &d->integral); + if (errn == 0) { + errn = encodeUnsignedInteger(stream, &d->reverseFraction); + } + } + return errn; +} + +/** + * Encode a length prefixed sequence of characters. + */ +int encodeString(bitstream_t* stream, exi_string_t* string) { + int errn = encodeUnsignedInteger32(stream, string->len); + if (errn == 0) { + errn = encodeCharacters(stream, string->characters, string->len); + } + return errn; +} + +/** + * Encode a sequence of characters according to a given length. + * Each character is represented by its UCS [ISO/IEC 10646] + * code point encoded as an Unsigned Integer + */ +int encodeCharacters(bitstream_t* stream, exi_string_character_t* chars, size_t len) { + unsigned int i; + int errn = 0; + for (i = 0; i < len && errn == 0; i++) { +#if STRING_REPRESENTATION == STRING_REPRESENTATION_ASCII + errn = encode(stream, (uint8_t)chars[i]); +#endif /* STRING_REPRESENTATION_ASCII */ +#if STRING_REPRESENTATION == STRING_REPRESENTATION_UCS + errn = encodeUnsignedInteger32(stream, chars[i]); +#endif /* STRING_REPRESENTATION_UCS */ + } + return errn; +} + + +int encodeRCSCharacters(bitstream_t* stream, exi_string_character_t* chars, size_t len, size_t rcsCodeLength, size_t rcsSize, const exi_string_character_t rcsSet[]) { + unsigned int i; + unsigned int k; + int errn = 0; + size_t rcsCode = SIZE_MAX; + + for (i = 0; i < len && errn == 0; i++) { + /* try to find short code */ + rcsCode = SIZE_MAX; + for(k=0; klen); + + if(errn == 0) { + errn = encodeBytes(stream, bytes->data, bytes->len); + } + + return errn; +} + +int encodeBytes(bitstream_t* stream, uint8_t* data, size_t len) { + unsigned int i; + int errn = 0; + + for (i = 0; i < len && errn == 0; i++) { + errn = encode(stream, data[i]); + } + return errn; +} + +/** + * Encode a datetime representation which is a sequence of values + * representing the individual components of the Date-Time + */ +int encodeDateTime(bitstream_t* stream, exi_datetime_t* datetime) { + int errn = 0; + switch (datetime->type) { + case EXI_DATETIME_GYEAR: /* Year, [Time-Zone] */ + errn = encodeInteger32(stream, datetime->year - DATETIME_YEAR_OFFSET); + break; + case EXI_DATETIME_GYEARMONTH: /* Year, MonthDay, [TimeZone] */ + case EXI_DATETIME_DATE: /* Year, MonthDay, [TimeZone] */ + errn = encodeInteger32(stream, datetime->year - DATETIME_YEAR_OFFSET); + if (errn == 0) { + errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY, + datetime->monthDay); + } + break; + case EXI_DATETIME_DATETIME: /* Year, MonthDay, Time, [FractionalSecs], [TimeZone] */ + errn = encodeInteger32(stream, datetime->year - DATETIME_YEAR_OFFSET); + if (errn == 0) { + errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY, + datetime->monthDay); + if (errn != 0) { + break; + } + } + /* no break */ + case EXI_DATETIME_TIME: /* Time, [FractionalSecs], [TimeZone] */ + errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_TIME, + datetime->time); + if (errn == 0) { + if (datetime->presenceFractionalSecs) { + errn = encodeBoolean(stream, 1); + if (errn == 0) { + errn = encodeUnsignedInteger32(stream, datetime->fractionalSecs); + } + } else { + errn = encodeBoolean(stream, 0); + } + } + break; + case EXI_DATETIME_GMONTH: /* MonthDay, [TimeZone] */ + case EXI_DATETIME_GMONTHDAY: /* MonthDay, [TimeZone] */ + case EXI_DATETIME_GDAY: /* MonthDay, [TimeZone] */ + errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY, + datetime->monthDay); + break; + default: + errn = EXI_UNSUPPORTED_DATETIME_TYPE; + break; + } + if (errn == 0) { + /* [TimeZone] */ + if (datetime->presenceTimezone) { + errn = encodeBoolean(stream, 1); + if (errn == 0) { + errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_TIMEZONE, + datetime->timezone + DATETIME_TIMEZONE_OFFSET_IN_MINUTES); + } + } else { + errn = encodeBoolean(stream, 0); + } + } + + return errn; +} + + + + +int encode(bitstream_t* stream, uint8_t b) { +#if EXI_OPTION_ALIGNMENT == BIT_PACKED + return writeBits(stream, 8, b); +#endif /* EXI_OPTION_ALIGNMENT == BIT_PACKED */ +#if EXI_OPTION_ALIGNMENT == BYTE_ALIGNMENT + int errn = 0; +#if EXI_STREAM == BYTE_ARRAY + if ( (*stream->pos) < stream->size ) { + stream->data[(*stream->pos)++] = b; + } else { + errn = EXI_ERROR_OUTPUT_STREAM_EOF; + } +#endif /* EXI_STREAM == BYTE_ARRAY */ +#if EXI_STREAM == FILE_STREAM + if ( putc(b, stream->file) == EOF ) { + errn = EXI_ERROR_OUTPUT_STREAM_EOF; + } +#endif /* EXI_STREAM == FILE_STREAM */ + return errn; +#endif /* EXI_OPTION_ALIGNMENT == BYTE_ALIGNMENT */ +} + +/** + * Encode a single boolean value. A false value is encoded as bit 0 and true + * value is encode as bit 1. + */ +int encodeBoolean(bitstream_t* stream, int b) { +#if EXI_OPTION_ALIGNMENT == BIT_PACKED + uint8_t val = b ? 1 : 0; + return writeBits(stream, 1, val); +#endif /* EXI_OPTION_ALIGNMENT == BIT_PACKED */ +#if EXI_OPTION_ALIGNMENT == BYTE_ALIGNMENT + uint8_t val = b ? 1 : 0; + return encode(stream, val); +#endif /* EXI_OPTION_ALIGNMENT == BYTE_ALIGNMENT */ +} + + +/** + * Encode n-bit unsigned integer. The n least significant bits of parameter + * b starting with the most significant, i.e. from left to right. + */ +int encodeNBitUnsignedInteger(bitstream_t* stream, size_t nbits, uint32_t val) { +#if EXI_OPTION_ALIGNMENT == BIT_PACKED + int errn = 0; + if (nbits > 0) { + errn = writeBits(stream, nbits, val); + } + return errn; +#endif /* EXI_OPTION_ALIGNMENT == BIT_PACKED */ +#if EXI_OPTION_ALIGNMENT == BYTE_ALIGNMENT + int errn = 0; + if (nbits > 0) { + if (nbits < 9) { + /* 1 byte */ + errn = encode(stream, val & 0xff); + } else if (nbits < 17) { + /* 2 bytes */ + errn = encode(stream, val & 0x00ff); + if(errn == 0) { + errn = encode(stream, (uint8_t)((val & 0xff00) >> 8)); + } + } else if (nbits < 25) { + /* 3 bytes */ + errn = encode(stream, val & 0x0000ff); + if(errn == 0) { + errn = encode(stream, (uint8_t)((val & 0x00ff00) >> 8)); + if(errn == 0) { + errn = encode(stream, (uint8_t)((val & 0xff0000) >> 16)); + } + } + } else if (nbits < 33) { + /* 4 bytes */ + errn = encode(stream, val & 0x000000ff); + if(errn == 0) { + errn = encode(stream, (uint8_t)((val & 0x0000ff00) >> 8)); + if(errn == 0) { + errn = encode(stream, (uint8_t)((val & 0x00ff0000) >> 16)); + if(errn == 0) { + errn = encode(stream, (uint8_t)((val & 0xff000000) >> 24)); + } + } + } + } else { + /* TODO Currently not more than 4 Bytes allowed for NBitUnsignedInteger */ + errn = EXI_UNSUPPORTED_NBIT_INTEGER_LENGTH; + } + } + return errn; +#endif /* EXI_OPTION_ALIGNMENT == BYTE_ALIGNMENT */ +} + +/** + * Flush underlying output stream. + */ +int encodeFinish(bitstream_t* stream) { +#if EXI_OPTION_ALIGNMENT == BIT_PACKED +#endif /* EXI_OPTION_ALIGNMENT == BIT_PACKED */ + return flush(stream); +#if EXI_OPTION_ALIGNMENT == BYTE_ALIGNMENT + /* no pending bits in byte-aligned mode */ + return 0; +#endif /* EXI_OPTION_ALIGNMENT == BYTE_ALIGNMENT */ +} + + + +#endif + diff --git a/csharp/vc2022/src/codec/EncoderChannel.h b/csharp/vc2022/src/codec/EncoderChannel.h new file mode 100644 index 0000000..fdceaff --- /dev/null +++ b/csharp/vc2022/src/codec/EncoderChannel.h @@ -0,0 +1,423 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-02 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EncoderChannel.h + * \brief EXI Encoder Channel + * + */ + +#ifndef ENCODER_CHANNEL_H +#define ENCODER_CHANNEL_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "EXITypes.h" + + +/** + * \brief Encode byte value + * + * \param stream Output Stream + * \param b byte + * \return Error-Code <> 0 + * + */ +int encode(bitstream_t* stream, uint8_t b); + + +/** + * \brief Encode a single boolean value + * + * A false value is encoded as 0 and true value is encode as 1. + * + * \param stream Output Stream + * \param b boolean + * \return Error-Code <> 0 + * + */ +int encodeBoolean(bitstream_t* stream, int b); + + +/** + * \brief Encode n-bit unsigned integer + * + * The n least significant bits of parameter b starting with the + * most significant, i.e. from left to right. + * + * \param stream Output Stream + * \param nbits number of bits + * \param val value + * \return Error-Code <> 0 + * + */ +int encodeNBitUnsignedInteger(bitstream_t* stream, size_t nbits, uint32_t val); + + +/** + * \brief Encode unsigned integer + * + * Encode an arbitrary precision non negative integer using + * a sequence of octets. The most significant bit of the last + * octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Output Stream + * \param iv Unsigned integer value + * \return Error-Code <> 0 + * + */ +int encodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv); + + +/** + * \brief Encode unsigned integer + * + * Encode an arbitrary precision non negative integer using + * a sequence of octets. The most significant bit of the last + * octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Output Stream + * \param n Unsigned integer value 16 bits + * \return Error-Code <> 0 + * + */ +int encodeUnsignedInteger16(bitstream_t* stream, uint16_t n); + + + +/** + * \brief Encode unsigned integer + * + * Encode an arbitrary precision non negative integer using + * a sequence of octets. The most significant bit of the last + * octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Output Stream + * \param n Unsigned integer value 32 bits + * \return Error-Code <> 0 + * + */ +int encodeUnsignedInteger32(bitstream_t* stream, uint32_t n); + + +/** + * \brief Encode unsigned integer + * + * Encode an arbitrary precision non negative integer using + * a sequence of octets. The most significant bit of the last + * octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Output Stream + * \param n Unsigned integer value 64 bits + * \return Error-Code <> 0 + * + */ +int encodeUnsignedInteger64(bitstream_t* stream, uint64_t n); + +/** + * \brief Encode unsigned integer + * + * Encode an arbitrary precision non negative integer using + * a sequence of octets. The most significant bit of the last + * octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Output Stream + * \param size size array + * \param data data array + * \param len length array + * \return Error-Code <> 0 + * + */ +int encodeUnsignedIntegerBig(bitstream_t* stream, size_t size, uint8_t* data, size_t len); + + +/** + * \brief Encode integer + * + * Encode an arbitrary precision integer using a sign boolean + * followed by a sequence of octets. The most significant bit + * of the last octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Output Stream + * \param iv Integer value + * \return Error-Code <> 0 + * + */ +int encodeInteger(bitstream_t* stream, exi_integer_t* iv); + + +/** + * \brief Encode integer + * + * Encode an arbitrary precision integer using a sign boolean + * followed by a sequence of octets. The most significant bit + * of the last octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Output Stream + * \param n Integer value 16 bits + * \return Error-Code <> 0 + * + */ +int encodeInteger16(bitstream_t* stream, int16_t n); + +/** + * \brief Encode integer + * + * Encode an arbitrary precision integer using a sign boolean + * followed by a sequence of octets. The most significant bit + * of the last octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Output Stream + * \param n Integer value 32 bits + * \return Error-Code <> 0 + * + */ +int encodeInteger32(bitstream_t* stream, int32_t n); + + +/** + * \brief Encode integer + * + * Encode an arbitrary precision integer using a sign boolean + * followed by a sequence of octets. The most significant bit + * of the last octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Output Stream + * \param n Integer value 64 bits + * \return Error-Code <> 0 + * + */ +int encodeInteger64(bitstream_t* stream, int64_t n); + +/** + * \brief Encode integer + * + * Encode an arbitrary precision integer using a sign boolean + * followed by a sequence of octets. The most significant bit + * of the last octet is set to zero to indicate sequence termination. + * Only seven bits per octet are used to store the integer's value. + * + * \param stream Output Stream + * \param negative negative integer + * \param size size array + * \param data data array + * \param len length array + * \return Error-Code <> 0 + * + */ +int encodeIntegerBig(bitstream_t* stream, int negative, size_t size, uint8_t* data, size_t len); + +/** + * \brief Encode float + * + * Encode a Float datatype as two consecutive Integers. The first + * Integer represents the mantissa of the floating point number + * and the second Integer represents the base-10 exponent of the + * floating point number. + * + * \param stream Output Stream + * \param f Float value + * \return Error-Code <> 0 + * + */ +int encodeFloat(bitstream_t* stream, exi_float_me_t* f); + + +/** + * \brief Encode decimal + * + * Encode a decimal represented as a Boolean sign followed by two + * Unsigned Integers. A sign value of zero (0) is used to represent + * positive Decimal values and a sign value of one (1) is used to + * represent negative Decimal values The first Integer represents + * the integral portion of the Decimal value. The second positive + * integer represents the fractional portion of the decimal with + * the digits in reverse order to preserve leading zeros. + * + * \param stream Output Stream + * \param d Decimal value + * \return Error-Code <> 0 + * + */ +int encodeDecimal(bitstream_t* stream, exi_decimal_t* d); + + +/** + * \brief Encode string + * + * Encode a length prefixed sequence of characters. + * + * \param stream Output Stream + * \param string String + * \return Error-Code <> 0 + * + */ +int encodeString(bitstream_t* stream, exi_string_t* string); + + +/** + * \brief Encode string value + * + * Encode a length prefixed sequence of characters + * in the sense of string tables + * + * \param stream Output Stream + * \param stringTable String Table + * \param namespaceUriID Qualified Namespace ID + * \param localNameID Qualified LocalName ID + * \param string String value + * \return Error-Code <> 0 + * + */ +int encodeStringValue(bitstream_t* stream, exi_value_string_table_t* stringTable, size_t namespaceUriID, size_t localNameID, + exi_string_value_t* string); + + +/** + * \brief Encode restricted character set value + * + * Encode a length prefixed sequence of characters + * in the sense of string tables + * + * \param stream Output Stream + * \param StringTable StringTable + * \param namespaceUriID Qualified Namespace ID + * \param localNameID Qualified LocalName ID + * \param rcs Restricted character set + * \param string String value + * \return Error-Code <> 0 + * + */ +int encodeRCSStringValue(bitstream_t* stream, exi_value_string_table_t* stringTable, + size_t namespaceUriID, size_t localNameID, exi_rcs_t* rcs, exi_string_value_t* string); + + +/** + * \brief Encode characters + * + * Encode a sequence of characters according to a given length. + * Each character is represented by its UCS [ISO/IEC 10646] + * code point encoded as an Unsigned Integer. + * + * \param stream Output Stream + * \param chars Characters + * \param len Numbr of characters + * \return Error-Code <> 0 + * + */ +int encodeCharacters(bitstream_t* stream, exi_string_character_t* chars, size_t len); + + +/** + * \brief Encode characters + * + * Encode a sequence of characters according to a given length. + * Each character is represented by its UCS [ISO/IEC 10646] + * code point encoded as an Unsigned Integer. + * + * \param stream Output Stream + * \param chars Characters + * \param len Numbr of characters + * \param rcsCodeLength RCS code-length + * \param rcsCodeLength RCS size + * \param rcsCodeLength RCS set + * \return Error-Code <> 0 + * + */ +int encodeRCSCharacters(bitstream_t* stream, exi_string_character_t* chars, size_t len, size_t rcsCodeLength, size_t rcsSize, const exi_string_character_t rcsSet[]); + + + +/** + * \brief Encode binary + * + * Encode a binary value as a length-prefixed sequence of octets. + * + * \param stream Output Stream + * \param bytes Byte values + * \return Error-Code <> 0 + * + */ +int encodeBinary(bitstream_t* stream, exi_bytes_t* bytes); + + +/** + * \brief Encode binary data + * + * Encode a sequence of octets. + * + * \param stream Output Stream + * \param data Byte values + * \param len Length + * \return Error-Code <> 0 + * + */ +int encodeBytes(bitstream_t* stream, uint8_t* data, size_t len); + +/** + * \brief Encode datetime + * + * Encode a datetime representation which is a sequence of values + * representing the individual components of the Date-Time. + * + * \param stream Output Stream + * \param datetime Datetime values + * \return Error-Code <> 0 + * + */ +int encodeDateTime(bitstream_t* stream, exi_datetime_t* datetime); + + +/** + * \brief Flush underlying bit output stream + * + * \param stream Output Stream + * \return Error-Code <> 0 + * + */ +int encodeFinish(bitstream_t* stream); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/codec/ErrorCodes.h b/csharp/vc2022/src/codec/ErrorCodes.h new file mode 100644 index 0000000..e77855f --- /dev/null +++ b/csharp/vc2022/src/codec/ErrorCodes.h @@ -0,0 +1,120 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-02 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file ErrorCodes.h + * \brief Error Codes descriptions + * + */ + +#ifndef EXI_ERROR_CODES_H +#define EXI_ERROR_CODES_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define EXI_ERROR_INPUT_STREAM_EOF -10 +#define EXI_ERROR_OUTPUT_STREAM_EOF -11 +#define EXI_ERROR_INPUT_FILE_HANDLE -12 +#define EXI_ERROR_OUTPUT_FILE -13 + +#define EXI_ERROR_OUT_OF_BOUNDS -100 +#define EXI_ERROR_OUT_OF_STRING_BUFFER -101 +/*#define EXI_ERROR_OUT_OF_ASCII_BUFFER -102 */ +#define EXI_ERROR_OUT_OF_BYTE_BUFFER -103 +#define EXI_ERROR_OUT_OF_GRAMMAR_STACK -104 +#define EXI_ERROR_OUT_OF_RUNTIME_GRAMMAR_STACK -105 +#define EXI_ERROR_OUT_OF_QNAMES -106 + +#define EXI_ERROR_UNKOWN_GRAMMAR_ID -108 +#define EXI_ERROR_UNKOWN_EVENT -109 +#define EXI_ERROR_UNKOWN_EVENT_CODE -110 +#define EXI_ERROR_UNEXPECTED_EVENT_LEVEL1 -111 +#define EXI_ERROR_UNEXPECTED_EVENT_LEVEL2 -112 + +#define EXI_ERROR_UNEXPECTED_START_DOCUMENT -113 +#define EXI_ERROR_UNEXPECTED_END_DOCUMENT -114 +#define EXI_ERROR_UNEXPECTED_START_ELEMENT -115 +#define EXI_ERROR_UNEXPECTED_START_ELEMENT_NS -116 +#define EXI_ERROR_UNEXPECTED_START_ELEMENT_GENERIC -117 +#define EXI_ERROR_UNEXPECTED_START_ELEMENT_GENERIC_UNDECLARED -118 +#define EXI_ERROR_UNEXPECTED_END_ELEMENT -119 +#define EXI_ERROR_UNEXPECTED_CHARACTERS -120 +#define EXI_ERROR_UNEXPECTED_ATTRIBUTE -121 +#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_NS -122 +#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_GENERIC -123 +#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_GENERIC_UNDECLARED -124 +#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_XSI_TYPE -125 +#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_XSI_NIL -126 +#define EXI_ERROR_UNEXPECTED_GRAMMAR_ID -127 +#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_MOVE_TO_CONTENT_RULE -128 + +#define EXI_UNSUPPORTED_NBIT_INTEGER_LENGTH -132 +#define EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS -133 +#define EXI_UNSUPPORTED_INTEGER_VALUE -134 +#define EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE -135 +#define EXI_UNSUPPORTED_LIST_VALUE_TYPE -136 +#define EXI_UNSUPPORTED_HEADER_COOKIE -137 +#define EXI_UNSUPPORTED_HEADER_OPTIONS -138 + +#define EXI_UNSUPPORTED_GLOBAL_ATTRIBUTE_VALUE_TYPE -139 +#define EXI_UNSUPPORTED_DATATYPE -140 +#define EXI_UNSUPPORTED_STRING_VALUE_TYPE -141 +#define EXI_UNSUPPORTED_INTEGER_VALUE_TYPE -142 +#define EXI_UNSUPPORTED_DATETIME_TYPE -143 +#define EXI_UNSUPPORTED_FRAGMENT_ELEMENT -144 + +#define EXI_UNSUPPORTED_GRAMMAR_LEARNING_CH -150 + +/* string values */ +#define EXI_ERROR_STRINGVALUES_NOT_SUPPORTED -160 +#define EXI_ERROR_STRINGVALUES_OUT_OF_ENTRIES -161 +#define EXI_ERROR_STRINGVALUES_OUT_OF_MEMORY -162 +#define EXI_ERROR_STRINGVALUES_OUT_OF_BOUND -163 +#define EXI_ERROR_STRINGVALUES_CHARACTER -164 + +#define EXI_ERROR_UNEXPECTED_BYTE_VALUE -200 + + +#define EXI_ERROR_CONVERSION_NO_ASCII_CHARACTERS -300 +#define EXI_ERROR_CONVERSION_TYPE_TO_STRING -301 + + +#define EXI_DEVIANT_SUPPORT_NOT_DEPLOYED -500 + +#ifdef __cplusplus +} +#endif + + +#endif /* EXI_ERROR_CODES_H */ + diff --git a/csharp/vc2022/src/codec/MethodsBag.c b/csharp/vc2022/src/codec/MethodsBag.c new file mode 100644 index 0000000..11606a5 --- /dev/null +++ b/csharp/vc2022/src/codec/MethodsBag.c @@ -0,0 +1,117 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-02 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +#ifndef METHODS_BAG_C +#define METHODS_BAG_C + +#include "MethodsBag.h" +#include "ErrorCodes.h" + +static const uint16_t smallLengths[] = { 0, 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, + 4, 4, 4 }; + +int exiGetCodingLength(size_t characteristics, size_t* codingLength) { + /* Note: we could use range expressions in switch statements but those are non-standard */ + /* e.g., case 1 ... 5: */ + int errn = 0; + if (characteristics < 17) { + *codingLength = smallLengths[characteristics]; + } else if (characteristics < 33) { + /* 17 .. 32 */ + *codingLength = 5; + } else if (characteristics < 65) { + /* 33 .. 64 */ + *codingLength = 6; + } else if (characteristics < 129) { + /* 65 .. 128 */ + *codingLength = 7; + } else if (characteristics < 257) { + /* 129 .. 256 */ + *codingLength = 8; + } else if (characteristics < 513) { + /* 257 .. 512 */ + *codingLength = 9; + } else if (characteristics < 1025) { + /* 513 .. 1024 */ + *codingLength = 10; + } else if (characteristics < 2049) { + /* 1025 .. 2048 */ + *codingLength = 11; + } else if (characteristics < 4097) { + /* 2049 .. 4096 */ + *codingLength = 12; + } else if (characteristics < 8193) { + /* 4097 .. 8192 */ + *codingLength = 13; + } else if (characteristics < 16385) { + /* 8193 .. 16384 */ + *codingLength = 14; + } else if (characteristics < 32769) { + /* 16385 .. 32768 */ + *codingLength = 15; + } else { + /* 32769 .. 65536 */ + *codingLength = 16; + } + return errn; +} + + +uint8_t numberOf7BitBlocksToRepresent(uint32_t n) { + /* assert (n >= 0); */ + + /* 7 bits */ + if (n < 128) { + return 1; + } + /* 14 bits */ + else if (n < 16384) { + return 2; + } + /* 21 bits */ + else if (n < 2097152) { + return 3; + } + /* 28 bits */ + else if (n < 268435456) { + return 4; + } + /* 35 bits */ + else { + /* int, 32 bits */ + return 5; + } +} + + + +#endif + diff --git a/csharp/vc2022/src/codec/MethodsBag.h b/csharp/vc2022/src/codec/MethodsBag.h new file mode 100644 index 0000000..163685c --- /dev/null +++ b/csharp/vc2022/src/codec/MethodsBag.h @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 2017-03-02 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** +* \file MethodsBag.h +* \brief Method bag for bit and octet functions +* +*/ + +#ifndef METHODS_BAG_H +#define METHODS_BAG_H + + + +#include +#include + +/** + * \brief Returns the number of bits to identify the characteristics. + * + * \param characteristics number of characteristics + * \param codingLength number of bits + * \return Error-Code <> 0 + * + */ +int exiGetCodingLength(size_t characteristics, size_t* codingLength); + + +/** + * \brief Returns the least number of 7 bit-blocks that is needed to represent the passed integer value + * + * Note: Returns 1 if passed parameter is 0. + * + * \param n integer value + * \return Error-Code <> 0 + * + */ +uint8_t numberOf7BitBlocksToRepresent(uint32_t n); + + +#endif + diff --git a/csharp/vc2022/src/compat/windows_compat.h b/csharp/vc2022/src/compat/windows_compat.h new file mode 100644 index 0000000..869c2ef --- /dev/null +++ b/csharp/vc2022/src/compat/windows_compat.h @@ -0,0 +1,30 @@ +#ifndef WINDOWS_COMPAT_H +#define WINDOWS_COMPAT_H + +#ifdef _WIN32 + #include + #include + #include + + // Windows equivalents for POSIX functions + #define access _access + #define F_OK 0 + #define R_OK 4 + #define W_OK 2 + #define X_OK 1 + + // For stat structure compatibility + #ifndef S_ISREG + #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) + #endif + + #ifndef S_ISDIR + #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) + #endif + +#else + #include + #include +#endif + +#endif // WINDOWS_COMPAT_H \ No newline at end of file diff --git a/csharp/vc2022/src/din/dinEXIDatatypes.c b/csharp/vc2022/src/din/dinEXIDatatypes.c new file mode 100644 index 0000000..fa1fb79 --- /dev/null +++ b/csharp/vc2022/src/din/dinEXIDatatypes.c @@ -0,0 +1,969 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +#include + +#include "dinEXIDatatypes.h" +#include "EXITypes.h" + + +#ifndef EXI_din_DATATYPES_C +#define EXI_din_DATATYPES_C + +#if DEPLOY_DIN_CODEC == SUPPORT_YES + + +void init_dinEXIDocument(struct dinEXIDocument* exiDoc) { + exiDoc->BodyElement_isUsed = 0u; + exiDoc->V2G_Message_isUsed = 0u; + exiDoc->SignatureProperty_isUsed = 0u; + exiDoc->DSAKeyValue_isUsed = 0u; + exiDoc->SignatureProperties_isUsed = 0u; + exiDoc->KeyValue_isUsed = 0u; + exiDoc->Transforms_isUsed = 0u; + exiDoc->DigestMethod_isUsed = 0u; + exiDoc->Signature_isUsed = 0u; + exiDoc->RetrievalMethod_isUsed = 0u; + exiDoc->Manifest_isUsed = 0u; + exiDoc->Reference_isUsed = 0u; + exiDoc->CanonicalizationMethod_isUsed = 0u; + exiDoc->RSAKeyValue_isUsed = 0u; + exiDoc->Transform_isUsed = 0u; + exiDoc->PGPData_isUsed = 0u; + exiDoc->MgmtData_isUsed = 0u; + exiDoc->SignatureMethod_isUsed = 0u; + exiDoc->KeyInfo_isUsed = 0u; + exiDoc->SPKIData_isUsed = 0u; + exiDoc->X509Data_isUsed = 0u; + exiDoc->SignatureValue_isUsed = 0u; + exiDoc->KeyName_isUsed = 0u; + exiDoc->DigestValue_isUsed = 0u; + exiDoc->SignedInfo_isUsed = 0u; + exiDoc->Object_isUsed = 0u; + exiDoc->DC_EVSEStatus_isUsed = 0u; + exiDoc->RelativeTimeInterval_isUsed = 0u; + exiDoc->SalesTariffEntry_isUsed = 0u; + exiDoc->DC_EVPowerDeliveryParameter_isUsed = 0u; + exiDoc->SASchedules_isUsed = 0u; + exiDoc->AC_EVChargeParameter_isUsed = 0u; + exiDoc->SAScheduleList_isUsed = 0u; + exiDoc->DC_EVStatus_isUsed = 0u; + exiDoc->ServiceCharge_isUsed = 0u; + exiDoc->EVStatus_isUsed = 0u; + exiDoc->DC_EVChargeParameter_isUsed = 0u; + exiDoc->DC_EVSEChargeParameter_isUsed = 0u; + exiDoc->EVSEStatus_isUsed = 0u; + exiDoc->TimeInterval_isUsed = 0u; + exiDoc->EVPowerDeliveryParameter_isUsed = 0u; + exiDoc->EVSEChargeParameter_isUsed = 0u; + exiDoc->AC_EVSEStatus_isUsed = 0u; + exiDoc->Entry_isUsed = 0u; + exiDoc->AC_EVSEChargeParameter_isUsed = 0u; + exiDoc->PMaxScheduleEntry_isUsed = 0u; + exiDoc->EVChargeParameter_isUsed = 0u; + exiDoc->ServiceDiscoveryReq_isUsed = 0u; + exiDoc->ServiceDiscoveryRes_isUsed = 0u; + exiDoc->MeteringReceiptReq_isUsed = 0u; + exiDoc->PaymentDetailsReq_isUsed = 0u; + exiDoc->MeteringReceiptRes_isUsed = 0u; + exiDoc->PaymentDetailsRes_isUsed = 0u; + exiDoc->SessionSetupReq_isUsed = 0u; + exiDoc->SessionSetupRes_isUsed = 0u; + exiDoc->CableCheckReq_isUsed = 0u; + exiDoc->CableCheckRes_isUsed = 0u; + exiDoc->ContractAuthenticationReq_isUsed = 0u; + exiDoc->CertificateInstallationReq_isUsed = 0u; + exiDoc->ContractAuthenticationRes_isUsed = 0u; + exiDoc->CertificateInstallationRes_isUsed = 0u; + exiDoc->WeldingDetectionReq_isUsed = 0u; + exiDoc->WeldingDetectionRes_isUsed = 0u; + exiDoc->CertificateUpdateReq_isUsed = 0u; + exiDoc->CertificateUpdateRes_isUsed = 0u; + exiDoc->PowerDeliveryReq_isUsed = 0u; + exiDoc->PowerDeliveryRes_isUsed = 0u; + exiDoc->ChargingStatusReq_isUsed = 0u; + exiDoc->ChargingStatusRes_isUsed = 0u; + exiDoc->CurrentDemandReq_isUsed = 0u; + exiDoc->PreChargeReq_isUsed = 0u; + exiDoc->CurrentDemandRes_isUsed = 0u; + exiDoc->PreChargeRes_isUsed = 0u; + exiDoc->ServicePaymentSelectionReq_isUsed = 0u; + exiDoc->SessionStopReq_isUsed = 0u; + exiDoc->ServicePaymentSelectionRes_isUsed = 0u; + exiDoc->SessionStopRes_isUsed = 0u; + exiDoc->ChargeParameterDiscoveryReq_isUsed = 0u; + exiDoc->ChargeParameterDiscoveryRes_isUsed = 0u; + exiDoc->ServiceDetailReq_isUsed = 0u; + exiDoc->ServiceDetailRes_isUsed = 0u; +} + + +#if DEPLOY_DIN_CODEC_FRAGMENT == SUPPORT_YES +void init_dinEXIFragment(struct dinEXIFragment* exiFrag) { + exiFrag->Unit_isUsed = 0u; + exiFrag->EVSEMaximumCurrentLimit_isUsed = 0u; + exiFrag->EVPowerDeliveryParameter_isUsed = 0u; + exiFrag->ChargingProfileEntryMaxPower_isUsed = 0u; + exiFrag->TMeter_isUsed = 0u; + exiFrag->EVSEPowerLimitAchieved_isUsed = 0u; + exiFrag->duration_isUsed = 0u; + exiFrag->EVMaximumCurrentLimit_isUsed = 0u; + exiFrag->Parameter_isUsed = 0u; + exiFrag->EVSEProcessing_isUsed = 0u; + exiFrag->AC_EVChargeParameter_isUsed = 0u; + exiFrag->EVSEProcessing_isUsed = 0u; + exiFrag->PMaxScheduleEntry_isUsed = 0u; + exiFrag->EVSEProcessing_isUsed = 0u; + exiFrag->EVSEMaximumVoltageLimit_isUsed = 0u; + exiFrag->SelectedService_isUsed = 0u; + exiFrag->Certificate_isUsed = 0u; + exiFrag->Certificate_isUsed = 0u; + exiFrag->EVSEMaximumPowerLimit_isUsed = 0u; + exiFrag->EVReady_isUsed = 0u; + exiFrag->X509SerialNumber_isUsed = 0u; + exiFrag->RetrievalMethod_isUsed = 0u; + exiFrag->RetryCounter_isUsed = 0u; + exiFrag->DC_EVSEStatus_isUsed = 0u; + exiFrag->DC_EVSEStatus_isUsed = 0u; + exiFrag->DC_EVSEStatus_isUsed = 0u; + exiFrag->DC_EVSEStatus_isUsed = 0u; + exiFrag->MeteringReceiptReq_isUsed = 0u; + exiFrag->ReadyToChargeState_isUsed = 0u; + exiFrag->Multiplier_isUsed = 0u; + exiFrag->EPriceLevel_isUsed = 0u; + exiFrag->stringValue_isUsed = 0u; + exiFrag->ServiceDiscoveryReq_isUsed = 0u; + exiFrag->Transforms_isUsed = 0u; + exiFrag->MeteringReceiptRes_isUsed = 0u; + exiFrag->PreChargeReq_isUsed = 0u; + exiFrag->OEMProvisioningCert_isUsed = 0u; + exiFrag->ServiceDiscoveryRes_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ContractAuthenticationReq_isUsed = 0u; + exiFrag->ContractSignatureCertChain_isUsed = 0u; + exiFrag->ContractSignatureCertChain_isUsed = 0u; + exiFrag->ContractSignatureCertChain_isUsed = 0u; + exiFrag->ContractSignatureCertChain_isUsed = 0u; + exiFrag->ContractAuthenticationRes_isUsed = 0u; + exiFrag->HMACOutputLength_isUsed = 0u; + exiFrag->BulkChargingComplete_isUsed = 0u; + exiFrag->Exponent_isUsed = 0u; + exiFrag->DC_EVStatus_isUsed = 0u; + exiFrag->SAScheduleTuple_isUsed = 0u; + exiFrag->DC_EVStatus_isUsed = 0u; + exiFrag->DC_EVStatus_isUsed = 0u; + exiFrag->DepartureTime_isUsed = 0u; + exiFrag->X509IssuerSerial_isUsed = 0u; + exiFrag->SAScheduleTupleID_isUsed = 0u; + exiFrag->SAScheduleTupleID_isUsed = 0u; + exiFrag->SPKIData_isUsed = 0u; + exiFrag->RelativeTimeInterval_isUsed = 0u; + exiFrag->EVEnergyRequest_isUsed = 0u; + exiFrag->PreChargeRes_isUsed = 0u; + exiFrag->SessionID_isUsed = 0u; + exiFrag->PMaxSchedule_isUsed = 0u; + exiFrag->ServiceCharge_isUsed = 0u; + exiFrag->PgenCounter_isUsed = 0u; + exiFrag->ChargingStatusReq_isUsed = 0u; + exiFrag->X509Data_isUsed = 0u; + exiFrag->SalesTariffEntry_isUsed = 0u; + exiFrag->KeyValue_isUsed = 0u; + exiFrag->ChargingStatusRes_isUsed = 0u; + exiFrag->V2G_Message_isUsed = 0u; + exiFrag->DC_EVStatus_isUsed = 0u; + exiFrag->DC_EVStatus_isUsed = 0u; + exiFrag->DC_EVStatus_isUsed = 0u; + exiFrag->ServicePaymentSelectionReq_isUsed = 0u; + exiFrag->DC_EVStatus_isUsed = 0u; + exiFrag->EVSEIsolationStatus_isUsed = 0u; + exiFrag->ServicePaymentSelectionRes_isUsed = 0u; + exiFrag->EVSEPresentVoltage_isUsed = 0u; + exiFrag->EVSEPresentVoltage_isUsed = 0u; + exiFrag->EVSEPresentVoltage_isUsed = 0u; + exiFrag->BodyElement_isUsed = 0u; + exiFrag->EVCCID_isUsed = 0u; + exiFrag->PGPData_isUsed = 0u; + exiFrag->RootCertificateID_isUsed = 0u; + exiFrag->FaultCode_isUsed = 0u; + exiFrag->CableCheckReq_isUsed = 0u; + exiFrag->EVSEVoltageLimitAchieved_isUsed = 0u; + exiFrag->EVRESSConditioning_isUsed = 0u; + exiFrag->MeterInfo_isUsed = 0u; + exiFrag->MeterInfo_isUsed = 0u; + exiFrag->CableCheckRes_isUsed = 0u; + exiFrag->ChargingProfileEntryStart_isUsed = 0u; + exiFrag->SignatureProperty_isUsed = 0u; + exiFrag->EVMaxCurrent_isUsed = 0u; + exiFrag->PGPKeyPacket_isUsed = 0u; + exiFrag->PGPKeyPacket_isUsed = 0u; + exiFrag->Seed_isUsed = 0u; + exiFrag->RSAKeyValue_isUsed = 0u; + exiFrag->costKind_isUsed = 0u; + exiFrag->EAmount_isUsed = 0u; + exiFrag->EVSEPresentCurrent_isUsed = 0u; + exiFrag->PowerDeliveryRes_isUsed = 0u; + exiFrag->NumEPriceLevels_isUsed = 0u; + exiFrag->SessionStopRes_isUsed = 0u; + exiFrag->PowerDeliveryReq_isUsed = 0u; + exiFrag->SessionStopReq_isUsed = 0u; + exiFrag->XPath_isUsed = 0u; + exiFrag->BulkSOC_isUsed = 0u; + exiFrag->PMax_isUsed = 0u; + exiFrag->ParameterSetID_isUsed = 0u; + exiFrag->ParameterSetID_isUsed = 0u; + exiFrag->ContractID_isUsed = 0u; + exiFrag->ContractID_isUsed = 0u; + exiFrag->ContractID_isUsed = 0u; + exiFrag->ContractID_isUsed = 0u; + exiFrag->Signature_isUsed = 0u; + exiFrag->EVMaxVoltage_isUsed = 0u; + exiFrag->ReceiptRequired_isUsed = 0u; + exiFrag->ChargingComplete_isUsed = 0u; + exiFrag->ChargingProfile_isUsed = 0u; + exiFrag->PaymentOptions_isUsed = 0u; + exiFrag->SessionSetupRes_isUsed = 0u; + exiFrag->EVSEMaximumVoltageLimit_isUsed = 0u; + exiFrag->ServiceDetailRes_isUsed = 0u; + exiFrag->DC_EVPowerDeliveryParameter_isUsed = 0u; + exiFrag->PaymentDetailsRes_isUsed = 0u; + exiFrag->PaymentDetailsReq_isUsed = 0u; + exiFrag->MgmtData_isUsed = 0u; + exiFrag->Value_isUsed = 0u; + exiFrag->EVSENotification_isUsed = 0u; + exiFrag->EVSENotification_isUsed = 0u; + exiFrag->EVSEMaximumPowerLimit_isUsed = 0u; + exiFrag->EVTargetCurrent_isUsed = 0u; + exiFrag->RemainingTimeToBulkSoC_isUsed = 0u; + exiFrag->EVTargetCurrent_isUsed = 0u; + exiFrag->SessionSetupReq_isUsed = 0u; + exiFrag->EVSECurrentLimitAchieved_isUsed = 0u; + exiFrag->ServiceDetailReq_isUsed = 0u; + exiFrag->byteValue_isUsed = 0u; + exiFrag->EVMaximumPowerLimit_isUsed = 0u; + exiFrag->PowerSwitchClosed_isUsed = 0u; + exiFrag->Manifest_isUsed = 0u; + exiFrag->P_isUsed = 0u; + exiFrag->SAScheduleList_isUsed = 0u; + exiFrag->Q_isUsed = 0u; + exiFrag->X509SubjectName_isUsed = 0u; + exiFrag->G_isUsed = 0u; + exiFrag->SessionID_isUsed = 0u; + exiFrag->J_isUsed = 0u; + exiFrag->CertificateInstallationRes_isUsed = 0u; + exiFrag->CertificateInstallationReq_isUsed = 0u; + exiFrag->SalesTariff_isUsed = 0u; + exiFrag->Header_isUsed = 0u; + exiFrag->EVSEMinimumCurrentLimit_isUsed = 0u; + exiFrag->X509CRL_isUsed = 0u; + exiFrag->EVMaximumCurrentLimit_isUsed = 0u; + exiFrag->Y_isUsed = 0u; + exiFrag->DigestValue_isUsed = 0u; + exiFrag->DC_EVChargeParameter_isUsed = 0u; + exiFrag->ContractSignatureEncryptedPrivateKey_isUsed = 0u; + exiFrag->ContractSignatureEncryptedPrivateKey_isUsed = 0u; + exiFrag->DigestMethod_isUsed = 0u; + exiFrag->SPKISexp_isUsed = 0u; + exiFrag->ChargeService_isUsed = 0u; + exiFrag->EVSEEnergyToBeDelivered_isUsed = 0u; + exiFrag->SignatureProperties_isUsed = 0u; + exiFrag->EVSEMaxCurrent_isUsed = 0u; + exiFrag->EVMaximumPowerLimit_isUsed = 0u; + exiFrag->EVSEStatus_isUsed = 0u; + exiFrag->Service_isUsed = 0u; + exiFrag->DHParams_isUsed = 0u; + exiFrag->DHParams_isUsed = 0u; + exiFrag->DHParams_isUsed = 0u; + exiFrag->DHParams_isUsed = 0u; + exiFrag->PGPKeyID_isUsed = 0u; + exiFrag->DSAKeyValue_isUsed = 0u; + exiFrag->EnergyTransferType_isUsed = 0u; + exiFrag->WeldingDetectionRes_isUsed = 0u; + exiFrag->FreeService_isUsed = 0u; + exiFrag->SelectedServiceList_isUsed = 0u; + exiFrag->WeldingDetectionReq_isUsed = 0u; + exiFrag->EVTargetVoltage_isUsed = 0u; + exiFrag->EVTargetVoltage_isUsed = 0u; + exiFrag->CanonicalizationMethod_isUsed = 0u; + exiFrag->X509Certificate_isUsed = 0u; + exiFrag->CertificateUpdateRes_isUsed = 0u; + exiFrag->CertificateUpdateReq_isUsed = 0u; + exiFrag->EVSEMaxVoltage_isUsed = 0u; + exiFrag->SignedInfo_isUsed = 0u; + exiFrag->AC_EVSEChargeParameter_isUsed = 0u; + exiFrag->EVEnergyCapacity_isUsed = 0u; + exiFrag->ServiceID_isUsed = 0u; + exiFrag->ServiceID_isUsed = 0u; + exiFrag->EVSECurrentRegulationTolerance_isUsed = 0u; + exiFrag->ServiceParameterList_isUsed = 0u; + exiFrag->ListOfRootCertificateIDs_isUsed = 0u; + exiFrag->ListOfRootCertificateIDs_isUsed = 0u; + exiFrag->ProfileEntry_isUsed = 0u; + exiFrag->EVSEMinimumVoltageLimit_isUsed = 0u; + exiFrag->CurrentDemandRes_isUsed = 0u; + exiFrag->EVRESSSOC_isUsed = 0u; + exiFrag->MeterReading_isUsed = 0u; + exiFrag->CurrentDemandReq_isUsed = 0u; + exiFrag->physicalValue_isUsed = 0u; + exiFrag->ChargingComplete_isUsed = 0u; + exiFrag->TimeInterval_isUsed = 0u; + exiFrag->AC_EVSEStatus_isUsed = 0u; + exiFrag->AC_EVSEStatus_isUsed = 0u; + exiFrag->EVMaximumVoltageLimit_isUsed = 0u; + exiFrag->SignatureValue_isUsed = 0u; + exiFrag->DateTimeNow_isUsed = 0u; + exiFrag->DateTimeNow_isUsed = 0u; + exiFrag->ServiceTag_isUsed = 0u; + exiFrag->intValue_isUsed = 0u; + exiFrag->SelectedPaymentOption_isUsed = 0u; + exiFrag->ServiceName_isUsed = 0u; + exiFrag->EVCabinConditioning_isUsed = 0u; + exiFrag->EVSEID_isUsed = 0u; + exiFrag->ServiceScope_isUsed = 0u; + exiFrag->EVSEID_isUsed = 0u; + exiFrag->MeterStatus_isUsed = 0u; + exiFrag->EVRequestedEnergyTransferType_isUsed = 0u; + exiFrag->ServiceCategory_isUsed = 0u; + exiFrag->GenChallenge_isUsed = 0u; + exiFrag->GenChallenge_isUsed = 0u; + exiFrag->SalesTariffDescription_isUsed = 0u; + exiFrag->NotificationMaxDelay_isUsed = 0u; + exiFrag->NotificationMaxDelay_isUsed = 0u; + exiFrag->boolValue_isUsed = 0u; + exiFrag->EVSEStatusCode_isUsed = 0u; + exiFrag->ServiceScope_isUsed = 0u; + exiFrag->FaultMsg_isUsed = 0u; + exiFrag->SAScheduleTupleID_isUsed = 0u; + exiFrag->SAScheduleTupleID_isUsed = 0u; + exiFrag->BulkChargingComplete_isUsed = 0u; + exiFrag->KeyName_isUsed = 0u; + exiFrag->ParameterSet_isUsed = 0u; + exiFrag->SigMeterReading_isUsed = 0u; + exiFrag->EVSEChargeParameter_isUsed = 0u; + exiFrag->Body_isUsed = 0u; + exiFrag->SASchedules_isUsed = 0u; + exiFrag->ServiceCategory_isUsed = 0u; + exiFrag->KeyInfo_isUsed = 0u; + exiFrag->PMaxScheduleID_isUsed = 0u; + exiFrag->RemainingTimeToFullSoC_isUsed = 0u; + exiFrag->EVStatus_isUsed = 0u; + exiFrag->SubCertificates_isUsed = 0u; + exiFrag->PaymentOption_isUsed = 0u; + exiFrag->X509SKI_isUsed = 0u; + exiFrag->EVMaximumVoltageLimit_isUsed = 0u; + exiFrag->ServiceList_isUsed = 0u; + exiFrag->Cost_isUsed = 0u; + exiFrag->AC_EVSEStatus_isUsed = 0u; + exiFrag->AC_EVSEStatus_isUsed = 0u; + exiFrag->SignatureMethod_isUsed = 0u; + exiFrag->EVSEMinCurrent_isUsed = 0u; + exiFrag->ConsumptionCost_isUsed = 0u; + exiFrag->EVSEPeakCurrentRipple_isUsed = 0u; + exiFrag->EVErrorCode_isUsed = 0u; + exiFrag->EVChargeParameter_isUsed = 0u; + exiFrag->start_isUsed = 0u; + exiFrag->X509IssuerName_isUsed = 0u; + exiFrag->Reference_isUsed = 0u; + exiFrag->EVMinCurrent_isUsed = 0u; + exiFrag->FullSOC_isUsed = 0u; + exiFrag->amount_isUsed = 0u; + exiFrag->DC_EVSEStatus_isUsed = 0u; + exiFrag->DC_EVSEStatus_isUsed = 0u; + exiFrag->shortValue_isUsed = 0u; + exiFrag->DC_EVSEChargeParameter_isUsed = 0u; + exiFrag->Entry_isUsed = 0u; + exiFrag->ServiceID_isUsed = 0u; + exiFrag->ServiceID_isUsed = 0u; + exiFrag->SalesTariffID_isUsed = 0u; + exiFrag->MeterID_isUsed = 0u; + exiFrag->EVSEMaximumCurrentLimit_isUsed = 0u; + exiFrag->ChargeParameterDiscoveryReq_isUsed = 0u; + exiFrag->amountMultiplier_isUsed = 0u; + exiFrag->ChargeParameterDiscoveryRes_isUsed = 0u; + exiFrag->Transform_isUsed = 0u; + exiFrag->Object_isUsed = 0u; + exiFrag->RCD_isUsed = 0u; + exiFrag->Notification_isUsed = 0u; + exiFrag->startValue_isUsed = 0u; + exiFrag->Modulus_isUsed = 0u; + exiFrag->EVSEMaxCurrent_isUsed = 0u; +} +#endif /* DEPLOY_DIN_CODEC_FRAGMENT */ + +void init_dinMeteringReceiptReqType(struct dinMeteringReceiptReqType* dinMeteringReceiptReqType) { + dinMeteringReceiptReqType->Id_isUsed = 0u; + dinMeteringReceiptReqType->SAScheduleTupleID_isUsed = 0u; +} + +void init_dinBodyType(struct dinBodyType* dinBodyType) { + dinBodyType->BodyElement_isUsed = 0u; + dinBodyType->SessionSetupReq_isUsed = 0u; + dinBodyType->SessionSetupRes_isUsed = 0u; + dinBodyType->ServiceDiscoveryReq_isUsed = 0u; + dinBodyType->ServiceDiscoveryRes_isUsed = 0u; + dinBodyType->ServiceDetailReq_isUsed = 0u; + dinBodyType->ServiceDetailRes_isUsed = 0u; + dinBodyType->ServicePaymentSelectionReq_isUsed = 0u; + dinBodyType->ServicePaymentSelectionRes_isUsed = 0u; + dinBodyType->PaymentDetailsReq_isUsed = 0u; + dinBodyType->PaymentDetailsRes_isUsed = 0u; + dinBodyType->ContractAuthenticationReq_isUsed = 0u; + dinBodyType->ContractAuthenticationRes_isUsed = 0u; + dinBodyType->ChargeParameterDiscoveryReq_isUsed = 0u; + dinBodyType->ChargeParameterDiscoveryRes_isUsed = 0u; + dinBodyType->PowerDeliveryReq_isUsed = 0u; + dinBodyType->PowerDeliveryRes_isUsed = 0u; + dinBodyType->ChargingStatusReq_isUsed = 0u; + dinBodyType->ChargingStatusRes_isUsed = 0u; + dinBodyType->MeteringReceiptReq_isUsed = 0u; + dinBodyType->MeteringReceiptRes_isUsed = 0u; + dinBodyType->SessionStopReq_isUsed = 0u; + dinBodyType->SessionStopRes_isUsed = 0u; + dinBodyType->CertificateUpdateReq_isUsed = 0u; + dinBodyType->CertificateUpdateRes_isUsed = 0u; + dinBodyType->CertificateInstallationReq_isUsed = 0u; + dinBodyType->CertificateInstallationRes_isUsed = 0u; + dinBodyType->CableCheckReq_isUsed = 0u; + dinBodyType->CableCheckRes_isUsed = 0u; + dinBodyType->PreChargeReq_isUsed = 0u; + dinBodyType->PreChargeRes_isUsed = 0u; + dinBodyType->CurrentDemandReq_isUsed = 0u; + dinBodyType->CurrentDemandRes_isUsed = 0u; + dinBodyType->WeldingDetectionReq_isUsed = 0u; + dinBodyType->WeldingDetectionRes_isUsed = 0u; +} + +void init_dinSessionSetupReqType(struct dinSessionSetupReqType* dinSessionSetupReqType) { + (void)dinSessionSetupReqType; /* avoid unused warning */ +} + +void init_dinPowerDeliveryResType(struct dinPowerDeliveryResType* dinPowerDeliveryResType) { + dinPowerDeliveryResType->EVSEStatus_isUsed = 0u; + dinPowerDeliveryResType->AC_EVSEStatus_isUsed = 0u; + dinPowerDeliveryResType->DC_EVSEStatus_isUsed = 0u; +} + +void init_dinServiceDetailResType(struct dinServiceDetailResType* dinServiceDetailResType) { + dinServiceDetailResType->ServiceParameterList_isUsed = 0u; +} + +void init_dinWeldingDetectionResType(struct dinWeldingDetectionResType* dinWeldingDetectionResType) { + (void)dinWeldingDetectionResType; /* avoid unused warning */ +} + +void init_dinContractAuthenticationResType(struct dinContractAuthenticationResType* dinContractAuthenticationResType) { + (void)dinContractAuthenticationResType; /* avoid unused warning */ +} + +void init_dinCanonicalizationMethodType(struct dinCanonicalizationMethodType* dinCanonicalizationMethodType) { + dinCanonicalizationMethodType->ANY_isUsed = 0u; +} + +void init_dinSPKIDataType(struct dinSPKIDataType* dinSPKIDataType) { + dinSPKIDataType->SPKISexp.arrayLen = 0u; + dinSPKIDataType->ANY_isUsed = 0u; +} + +void init_dinListOfRootCertificateIDsType(struct dinListOfRootCertificateIDsType* dinListOfRootCertificateIDsType) { + dinListOfRootCertificateIDsType->RootCertificateID.arrayLen = 0u; +} + +void init_dinSelectedServiceListType(struct dinSelectedServiceListType* dinSelectedServiceListType) { + dinSelectedServiceListType->SelectedService.arrayLen = 0u; +} + +void init_dinCurrentDemandResType(struct dinCurrentDemandResType* dinCurrentDemandResType) { + dinCurrentDemandResType->EVSEMaximumVoltageLimit_isUsed = 0u; + dinCurrentDemandResType->EVSEMaximumCurrentLimit_isUsed = 0u; + dinCurrentDemandResType->EVSEMaximumPowerLimit_isUsed = 0u; +} + +void init_dinTransformType(struct dinTransformType* dinTransformType) { + dinTransformType->ANY_isUsed = 0u; + dinTransformType->XPath.arrayLen = 0u; +} + +void init_dinAC_EVChargeParameterType(struct dinAC_EVChargeParameterType* dinAC_EVChargeParameterType) { + (void)dinAC_EVChargeParameterType; /* avoid unused warning */ +} + +void init_dinX509DataType(struct dinX509DataType* dinX509DataType) { + dinX509DataType->X509IssuerSerial.arrayLen = 0u; + dinX509DataType->X509SKI.arrayLen = 0u; + dinX509DataType->X509SubjectName.arrayLen = 0u; + dinX509DataType->X509Certificate.arrayLen = 0u; + dinX509DataType->X509CRL.arrayLen = 0u; + dinX509DataType->ANY_isUsed = 0u; +} + +void init_dinChargingStatusResType(struct dinChargingStatusResType* dinChargingStatusResType) { + dinChargingStatusResType->EVSEMaxCurrent_isUsed = 0u; + dinChargingStatusResType->MeterInfo_isUsed = 0u; +} + +void init_dinWeldingDetectionReqType(struct dinWeldingDetectionReqType* dinWeldingDetectionReqType) { + (void)dinWeldingDetectionReqType; /* avoid unused warning */ +} + +void init_dinSignaturePropertiesType(struct dinSignaturePropertiesType* dinSignaturePropertiesType) { + dinSignaturePropertiesType->Id_isUsed = 0u; + dinSignaturePropertiesType->SignatureProperty.arrayLen = 0u; +} + +void init_dinContractAuthenticationReqType(struct dinContractAuthenticationReqType* dinContractAuthenticationReqType) { + dinContractAuthenticationReqType->Id_isUsed = 0u; + dinContractAuthenticationReqType->GenChallenge_isUsed = 0u; +} + +void init_dinDC_EVPowerDeliveryParameterType(struct dinDC_EVPowerDeliveryParameterType* dinDC_EVPowerDeliveryParameterType) { + dinDC_EVPowerDeliveryParameterType->BulkChargingComplete_isUsed = 0u; +} + +void init_dinEVSEChargeParameterType(struct dinEVSEChargeParameterType* dinEVSEChargeParameterType) { + (void)dinEVSEChargeParameterType; /* avoid unused warning */ +} + +void init_dinCableCheckReqType(struct dinCableCheckReqType* dinCableCheckReqType) { + (void)dinCableCheckReqType; /* avoid unused warning */ +} + +void init_dinDC_EVChargeParameterType(struct dinDC_EVChargeParameterType* dinDC_EVChargeParameterType) { + dinDC_EVChargeParameterType->EVMaximumPowerLimit_isUsed = 0u; + dinDC_EVChargeParameterType->EVEnergyCapacity_isUsed = 0u; + dinDC_EVChargeParameterType->EVEnergyRequest_isUsed = 0u; + dinDC_EVChargeParameterType->FullSOC_isUsed = 0u; + dinDC_EVChargeParameterType->BulkSOC_isUsed = 0u; +} + +void init_dinSAScheduleListType(struct dinSAScheduleListType* dinSAScheduleListType) { + dinSAScheduleListType->SAScheduleTuple.arrayLen = 0u; +} + +void init_dinPMaxScheduleType(struct dinPMaxScheduleType* dinPMaxScheduleType) { + dinPMaxScheduleType->PMaxScheduleEntry.arrayLen = 0u; +} + +void init_dinServicePaymentSelectionReqType(struct dinServicePaymentSelectionReqType* dinServicePaymentSelectionReqType) { + (void)dinServicePaymentSelectionReqType; /* avoid unused warning */ +} + +void init_dinRelativeTimeIntervalType(struct dinRelativeTimeIntervalType* dinRelativeTimeIntervalType) { + dinRelativeTimeIntervalType->duration_isUsed = 0u; +} + +void init_dinEVStatusType(struct dinEVStatusType* dinEVStatusType) { + (void)dinEVStatusType; /* avoid unused warning */ +} + +void init_dinPreChargeResType(struct dinPreChargeResType* dinPreChargeResType) { + (void)dinPreChargeResType; /* avoid unused warning */ +} + +void init_dinDC_EVSEChargeParameterType(struct dinDC_EVSEChargeParameterType* dinDC_EVSEChargeParameterType) { + dinDC_EVSEChargeParameterType->EVSEMaximumPowerLimit_isUsed = 0u; + dinDC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed = 0u; + dinDC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed = 0u; +} + +void init_dinPaymentDetailsResType(struct dinPaymentDetailsResType* dinPaymentDetailsResType) { + (void)dinPaymentDetailsResType; /* avoid unused warning */ +} + +void init_dinDSAKeyValueType(struct dinDSAKeyValueType* dinDSAKeyValueType) { + dinDSAKeyValueType->P_isUsed = 0u; + dinDSAKeyValueType->Q_isUsed = 0u; + dinDSAKeyValueType->G_isUsed = 0u; + dinDSAKeyValueType->J_isUsed = 0u; + dinDSAKeyValueType->Seed_isUsed = 0u; + dinDSAKeyValueType->PgenCounter_isUsed = 0u; +} + +void init_dinSASchedulesType(struct dinSASchedulesType* dinSASchedulesType) { + (void)dinSASchedulesType; /* avoid unused warning */ +} + +void init_dinCertificateUpdateResType(struct dinCertificateUpdateResType* dinCertificateUpdateResType) { + (void)dinCertificateUpdateResType; /* avoid unused warning */ +} + +void init_dinEVChargeParameterType(struct dinEVChargeParameterType* dinEVChargeParameterType) { + (void)dinEVChargeParameterType; /* avoid unused warning */ +} + +void init_dinMessageHeaderType(struct dinMessageHeaderType* dinMessageHeaderType) { + dinMessageHeaderType->Notification_isUsed = 0u; + dinMessageHeaderType->Signature_isUsed = 0u; +} + +void init_dinBodyBaseType(struct dinBodyBaseType* dinBodyBaseType) { + (void)dinBodyBaseType; /* avoid unused warning */ +} + +void init_dinKeyValueType(struct dinKeyValueType* dinKeyValueType) { + dinKeyValueType->DSAKeyValue_isUsed = 0u; + dinKeyValueType->RSAKeyValue_isUsed = 0u; + dinKeyValueType->ANY_isUsed = 0u; +} + +void init_dinIntervalType(struct dinIntervalType* dinIntervalType) { + (void)dinIntervalType; /* avoid unused warning */ +} + +void init_dinChargeParameterDiscoveryResType(struct dinChargeParameterDiscoveryResType* dinChargeParameterDiscoveryResType) { + dinChargeParameterDiscoveryResType->SASchedules_isUsed = 0u; + dinChargeParameterDiscoveryResType->SAScheduleList_isUsed = 0u; + dinChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed = 0u; + dinChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed = 0u; + dinChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed = 0u; +} + +void init_dinPowerDeliveryReqType(struct dinPowerDeliveryReqType* dinPowerDeliveryReqType) { + dinPowerDeliveryReqType->ChargingProfile_isUsed = 0u; + dinPowerDeliveryReqType->EVPowerDeliveryParameter_isUsed = 0u; + dinPowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed = 0u; +} + +void init_dinCertificateChainType(struct dinCertificateChainType* dinCertificateChainType) { + dinCertificateChainType->SubCertificates_isUsed = 0u; +} + +void init_dinTransformsType(struct dinTransformsType* dinTransformsType) { + dinTransformsType->Transform.arrayLen = 0u; +} + +void init_dinEntryType(struct dinEntryType* dinEntryType) { + dinEntryType->TimeInterval_isUsed = 0u; + dinEntryType->RelativeTimeInterval_isUsed = 0u; +} + +void init_dinSessionStopType(struct dinSessionStopType* dinSessionStopType) { + (void)dinSessionStopType; /* avoid unused warning */ +} + +void init_dinServiceDetailReqType(struct dinServiceDetailReqType* dinServiceDetailReqType) { + (void)dinServiceDetailReqType; /* avoid unused warning */ +} + +void init_dinDigestMethodType(struct dinDigestMethodType* dinDigestMethodType) { + dinDigestMethodType->ANY_isUsed = 0u; +} + +void init_dinParameterType(struct dinParameterType* dinParameterType) { + dinParameterType->boolValue_isUsed = 0u; + dinParameterType->byteValue_isUsed = 0u; + dinParameterType->shortValue_isUsed = 0u; + dinParameterType->intValue_isUsed = 0u; + dinParameterType->physicalValue_isUsed = 0u; + dinParameterType->stringValue_isUsed = 0u; +} + +void init_dinChargingStatusReqType(struct dinChargingStatusReqType* dinChargingStatusReqType) { + (void)dinChargingStatusReqType; /* avoid unused warning */ +} + +void init_dinSignatureMethodType(struct dinSignatureMethodType* dinSignatureMethodType) { + dinSignatureMethodType->HMACOutputLength_isUsed = 0u; + dinSignatureMethodType->ANY_isUsed = 0u; +} + +void init_dinCertificateInstallationReqType(struct dinCertificateInstallationReqType* dinCertificateInstallationReqType) { + dinCertificateInstallationReqType->Id_isUsed = 0u; +} + +void init_dinSalesTariffEntryType(struct dinSalesTariffEntryType* dinSalesTariffEntryType) { + dinSalesTariffEntryType->TimeInterval_isUsed = 0u; + dinSalesTariffEntryType->RelativeTimeInterval_isUsed = 0u; + dinSalesTariffEntryType->ConsumptionCost.arrayLen = 0u; +} + +void init_dinServiceDiscoveryResType(struct dinServiceDiscoveryResType* dinServiceDiscoveryResType) { + dinServiceDiscoveryResType->ServiceList_isUsed = 0u; +} + +void init_dinParameterSetType(struct dinParameterSetType* dinParameterSetType) { + dinParameterSetType->Parameter.arrayLen = 0u; +} + +void init_dinCurrentDemandReqType(struct dinCurrentDemandReqType* dinCurrentDemandReqType) { + dinCurrentDemandReqType->EVMaximumVoltageLimit_isUsed = 0u; + dinCurrentDemandReqType->EVMaximumCurrentLimit_isUsed = 0u; + dinCurrentDemandReqType->EVMaximumPowerLimit_isUsed = 0u; + dinCurrentDemandReqType->BulkChargingComplete_isUsed = 0u; + dinCurrentDemandReqType->RemainingTimeToFullSoC_isUsed = 0u; + dinCurrentDemandReqType->RemainingTimeToBulkSoC_isUsed = 0u; +} + +void init_dinPreChargeReqType(struct dinPreChargeReqType* dinPreChargeReqType) { + (void)dinPreChargeReqType; /* avoid unused warning */ +} + +void init_dinSignatureType(struct dinSignatureType* dinSignatureType) { + dinSignatureType->Id_isUsed = 0u; + dinSignatureType->KeyInfo_isUsed = 0u; + dinSignatureType->Object.arrayLen = 0u; +} + +void init_dinReferenceType(struct dinReferenceType* dinReferenceType) { + dinReferenceType->Id_isUsed = 0u; + dinReferenceType->URI_isUsed = 0u; + dinReferenceType->Type_isUsed = 0u; + dinReferenceType->Transforms_isUsed = 0u; +} + +void init_dinProfileEntryType(struct dinProfileEntryType* dinProfileEntryType) { + (void)dinProfileEntryType; /* avoid unused warning */ +} + +void init_dinAnonType_V2G_Message(struct dinAnonType_V2G_Message* dinAnonType_V2G_Message) { + (void)dinAnonType_V2G_Message; /* avoid unused warning */ +} + +void init_dinChargeParameterDiscoveryReqType(struct dinChargeParameterDiscoveryReqType* dinChargeParameterDiscoveryReqType) { + dinChargeParameterDiscoveryReqType->EVChargeParameter_isUsed = 0u; + dinChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed = 0u; + dinChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed = 0u; +} + +void init_dinConsumptionCostType(struct dinConsumptionCostType* dinConsumptionCostType) { + dinConsumptionCostType->Cost.arrayLen = 0u; +} + +void init_dinRSAKeyValueType(struct dinRSAKeyValueType* dinRSAKeyValueType) { + (void)dinRSAKeyValueType; /* avoid unused warning */ +} + +void init_dinServiceType(struct dinServiceType* dinServiceType) { + (void)dinServiceType; /* avoid unused warning */ +} + +void init_dinServiceTagListType(struct dinServiceTagListType* dinServiceTagListType) { + dinServiceTagListType->Service.arrayLen = 0u; +} + +void init_dinEVSEStatusType(struct dinEVSEStatusType* dinEVSEStatusType) { + (void)dinEVSEStatusType; /* avoid unused warning */ +} + +void init_dinSessionSetupResType(struct dinSessionSetupResType* dinSessionSetupResType) { + dinSessionSetupResType->DateTimeNow_isUsed = 0u; +} + +void init_dinEVPowerDeliveryParameterType(struct dinEVPowerDeliveryParameterType* dinEVPowerDeliveryParameterType) { + (void)dinEVPowerDeliveryParameterType; /* avoid unused warning */ +} + +void init_dinX509IssuerSerialType(struct dinX509IssuerSerialType* dinX509IssuerSerialType) { + (void)dinX509IssuerSerialType; /* avoid unused warning */ +} + +void init_dinSelectedServiceType(struct dinSelectedServiceType* dinSelectedServiceType) { + dinSelectedServiceType->ParameterSetID_isUsed = 0u; +} + +void init_dinMeteringReceiptResType(struct dinMeteringReceiptResType* dinMeteringReceiptResType) { + (void)dinMeteringReceiptResType; /* avoid unused warning */ +} + +void init_dinDC_EVStatusType(struct dinDC_EVStatusType* dinDC_EVStatusType) { + dinDC_EVStatusType->EVCabinConditioning_isUsed = 0u; + dinDC_EVStatusType->EVRESSConditioning_isUsed = 0u; +} + +void init_dinPhysicalValueType(struct dinPhysicalValueType* dinPhysicalValueType) { + dinPhysicalValueType->Unit_isUsed = 0u; +} + +void init_dinManifestType(struct dinManifestType* dinManifestType) { + dinManifestType->Id_isUsed = 0u; + dinManifestType->Reference.arrayLen = 0u; +} + +void init_dinPMaxScheduleEntryType(struct dinPMaxScheduleEntryType* dinPMaxScheduleEntryType) { + dinPMaxScheduleEntryType->TimeInterval_isUsed = 0u; + dinPMaxScheduleEntryType->RelativeTimeInterval_isUsed = 0u; +} + +void init_dinServiceParameterListType(struct dinServiceParameterListType* dinServiceParameterListType) { + dinServiceParameterListType->ParameterSet.arrayLen = 0u; +} + +void init_dinSignatureValueType(struct dinSignatureValueType* dinSignatureValueType) { + dinSignatureValueType->Id_isUsed = 0u; +} + +void init_dinPaymentOptionsType(struct dinPaymentOptionsType* dinPaymentOptionsType) { + dinPaymentOptionsType->PaymentOption.arrayLen = 0u; +} + +void init_dinServiceTagType(struct dinServiceTagType* dinServiceTagType) { + dinServiceTagType->ServiceName_isUsed = 0u; + dinServiceTagType->ServiceScope_isUsed = 0u; +} + +void init_dinAC_EVSEStatusType(struct dinAC_EVSEStatusType* dinAC_EVSEStatusType) { + (void)dinAC_EVSEStatusType; /* avoid unused warning */ +} + +void init_dinCertificateUpdateReqType(struct dinCertificateUpdateReqType* dinCertificateUpdateReqType) { + dinCertificateUpdateReqType->Id_isUsed = 0u; +} + +void init_dinServicePaymentSelectionResType(struct dinServicePaymentSelectionResType* dinServicePaymentSelectionResType) { + (void)dinServicePaymentSelectionResType; /* avoid unused warning */ +} + +void init_dinSAScheduleTupleType(struct dinSAScheduleTupleType* dinSAScheduleTupleType) { + dinSAScheduleTupleType->SalesTariff_isUsed = 0u; +} + +void init_dinChargingProfileType(struct dinChargingProfileType* dinChargingProfileType) { + dinChargingProfileType->ProfileEntry.arrayLen = 0u; +} + +void init_dinServiceDiscoveryReqType(struct dinServiceDiscoveryReqType* dinServiceDiscoveryReqType) { + dinServiceDiscoveryReqType->ServiceScope_isUsed = 0u; + dinServiceDiscoveryReqType->ServiceCategory_isUsed = 0u; +} + +void init_dinAC_EVSEChargeParameterType(struct dinAC_EVSEChargeParameterType* dinAC_EVSEChargeParameterType) { + (void)dinAC_EVSEChargeParameterType; /* avoid unused warning */ +} + +void init_dinKeyInfoType(struct dinKeyInfoType* dinKeyInfoType) { + dinKeyInfoType->Id_isUsed = 0u; + dinKeyInfoType->KeyName.arrayLen = 0u; + dinKeyInfoType->KeyValue.arrayLen = 0u; + dinKeyInfoType->RetrievalMethod.arrayLen = 0u; + dinKeyInfoType->X509Data.arrayLen = 0u; + dinKeyInfoType->PGPData.arrayLen = 0u; + dinKeyInfoType->SPKIData.arrayLen = 0u; + dinKeyInfoType->MgmtData.arrayLen = 0u; + dinKeyInfoType->ANY_isUsed = 0u; +} + +void init_dinPaymentDetailsReqType(struct dinPaymentDetailsReqType* dinPaymentDetailsReqType) { + (void)dinPaymentDetailsReqType; /* avoid unused warning */ +} + +void init_dinCableCheckResType(struct dinCableCheckResType* dinCableCheckResType) { + (void)dinCableCheckResType; /* avoid unused warning */ +} + +void init_dinObjectType(struct dinObjectType* dinObjectType) { + dinObjectType->Id_isUsed = 0u; + dinObjectType->MimeType_isUsed = 0u; + dinObjectType->Encoding_isUsed = 0u; + dinObjectType->ANY_isUsed = 0u; +} + +void init_dinSessionStopResType(struct dinSessionStopResType* dinSessionStopResType) { + (void)dinSessionStopResType; /* avoid unused warning */ +} + +void init_dinSignedInfoType(struct dinSignedInfoType* dinSignedInfoType) { + dinSignedInfoType->Id_isUsed = 0u; + dinSignedInfoType->Reference.arrayLen = 0u; +} + +void init_dinSalesTariffType(struct dinSalesTariffType* dinSalesTariffType) { + dinSalesTariffType->SalesTariffDescription_isUsed = 0u; + dinSalesTariffType->SalesTariffEntry.arrayLen = 0u; +} + +void init_dinCostType(struct dinCostType* dinCostType) { + dinCostType->amountMultiplier_isUsed = 0u; +} + +void init_dinServiceChargeType(struct dinServiceChargeType* dinServiceChargeType) { + (void)dinServiceChargeType; /* avoid unused warning */ +} + +void init_dinDC_EVSEStatusType(struct dinDC_EVSEStatusType* dinDC_EVSEStatusType) { + dinDC_EVSEStatusType->EVSEIsolationStatus_isUsed = 0u; +} + +void init_dinRetrievalMethodType(struct dinRetrievalMethodType* dinRetrievalMethodType) { + dinRetrievalMethodType->URI_isUsed = 0u; + dinRetrievalMethodType->Type_isUsed = 0u; + dinRetrievalMethodType->Transforms_isUsed = 0u; +} + +void init_dinNotificationType(struct dinNotificationType* dinNotificationType) { + dinNotificationType->FaultMsg_isUsed = 0u; +} + +void init_dinPGPDataType(struct dinPGPDataType* dinPGPDataType) { + dinPGPDataType->PGPKeyID_isUsed = 0u; + dinPGPDataType->PGPKeyPacket_isUsed = 0u; + dinPGPDataType->ANY_isUsed = 0u; +} + +void init_dinCertificateInstallationResType(struct dinCertificateInstallationResType* dinCertificateInstallationResType) { + (void)dinCertificateInstallationResType; /* avoid unused warning */ +} + +void init_dinSignaturePropertyType(struct dinSignaturePropertyType* dinSignaturePropertyType) { + dinSignaturePropertyType->Id_isUsed = 0u; + dinSignaturePropertyType->ANY_isUsed = 0u; +} + +void init_dinMeterInfoType(struct dinMeterInfoType* dinMeterInfoType) { + dinMeterInfoType->MeterReading_isUsed = 0u; + dinMeterInfoType->SigMeterReading_isUsed = 0u; + dinMeterInfoType->MeterStatus_isUsed = 0u; + dinMeterInfoType->TMeter_isUsed = 0u; +} + +void init_dinSubCertificatesType(struct dinSubCertificatesType* dinSubCertificatesType) { + dinSubCertificatesType->Certificate.arrayLen = 0u; +} + + + +#endif /* DEPLOY_DIN_CODEC */ + +#endif + diff --git a/csharp/vc2022/src/din/dinEXIDatatypes.h b/csharp/vc2022/src/din/dinEXIDatatypes.h new file mode 100644 index 0000000..d67d229 --- /dev/null +++ b/csharp/vc2022/src/din/dinEXIDatatypes.h @@ -0,0 +1,2934 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIDatatypes.h + * \brief Datatype definitions and structs for given XML Schema definitions and initialization methods + * + */ + +#ifndef EXI_din_DATATYPES_H +#define EXI_din_DATATYPES_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define SUPPORT_YES 1 +#define SUPPORT_NO 2 +#define DEPLOY_DIN_CODEC SUPPORT_YES +#define DEPLOY_DIN_CODEC_FRAGMENT SUPPORT_YES + +#if DEPLOY_DIN_CODEC == SUPPORT_YES + +#include + +#include "EXITypes.h" + + +/* Datatype definitions and structs for given XML Schema definitions */ + +#define UNION_YES 1 +#define UNION_NO 2 +#define SAVE_MEMORY_WITH_UNNAMED_UNION UNION_YES + +/* Note: Please find below a list of occurrence limits that have been applied */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":SPKISexp from unbounded to 1 (see #define dinSPKIDataType_SPKISexp_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2010:MsgDataTypes":RootCertificateID from unbounded to 5 (see #define dinListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":XPath from unbounded to 1 (see #define dinTransformType_XPath_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":Transform from unbounded to 1 (see #define dinTransformsType_Transform_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":Reference from unbounded to 1 (see #define dinManifestType_Reference_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2010:MsgDataTypes":PaymentOption from unbounded to 5 (see #define dinPaymentOptionsType_PaymentOption_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2010:MsgDataTypes":ProfileEntry from unbounded to 24 (see #define dinChargingProfileType_ProfileEntry_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":Reference from unbounded to 1 (see #define dinSignedInfoType_Reference_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2010:MsgDataTypes":Certificate from unbounded to 5 (see #define dinSubCertificatesType_Certificate_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2010:MsgDataTypes":SelectedService from unbounded to 16 (see #define dinSelectedServiceListType_SelectedService_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial from unbounded to 1 (see #define dinX509DataType_X509IssuerSerial_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":X509SKI from unbounded to 1 (see #define dinX509DataType_X509SKI_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":X509SubjectName from unbounded to 1 (see #define dinX509DataType_X509SubjectName_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":X509Certificate from unbounded to 1 (see #define dinX509DataType_X509Certificate_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":X509CRL from unbounded to 1 (see #define dinX509DataType_X509CRL_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":SignatureProperty from unbounded to 1 (see #define dinSignaturePropertiesType_SignatureProperty_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2010:MsgDataTypes":PMaxScheduleEntry from unbounded to 5 (see #define dinPMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2010:MsgDataTypes":Parameter from unbounded to 16 (see #define dinParameterSetType_Parameter_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2010:MsgDataTypes":Cost from unbounded to 5 (see #define dinConsumptionCostType_Cost_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2010:MsgDataTypes":Service from unbounded to 8 (see #define dinServiceTagListType_Service_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2010:MsgDataTypes":ParameterSet from unbounded to 5 (see #define dinServiceParameterListType_ParameterSet_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":KeyName from unbounded to 1 (see #define dinKeyInfoType_KeyName_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":KeyValue from unbounded to 1 (see #define dinKeyInfoType_KeyValue_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":RetrievalMethod from unbounded to 1 (see #define dinKeyInfoType_RetrievalMethod_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":X509Data from unbounded to 1 (see #define dinKeyInfoType_X509Data_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":PGPData from unbounded to 1 (see #define dinKeyInfoType_PGPData_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":SPKIData from unbounded to 1 (see #define dinKeyInfoType_SPKIData_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":MgmtData from unbounded to 1 (see #define dinKeyInfoType_MgmtData_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2010:MsgDataTypes":ConsumptionCost from unbounded to 5 (see #define dinSalesTariffEntryType_ConsumptionCost_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":Object from unbounded to 1 (see #define dinSignatureType_Object_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2010:MsgDataTypes":SalesTariffEntry from unbounded to 5 (see #define dinSalesTariffType_SalesTariffEntry_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2010:MsgDataTypes":SAScheduleTuple from unbounded to 5 (see #define dinSAScheduleListType_SAScheduleTuple_ARRAY_SIZE) */ + + +typedef enum { + dinDC_EVSEStatusCodeType_EVSE_NotReady = 0, + dinDC_EVSEStatusCodeType_EVSE_Ready = 1, + dinDC_EVSEStatusCodeType_EVSE_Shutdown = 2, + dinDC_EVSEStatusCodeType_EVSE_UtilityInterruptEvent = 3, + dinDC_EVSEStatusCodeType_EVSE_IsolationMonitoringActive = 4, + dinDC_EVSEStatusCodeType_EVSE_EmergencyShutdown = 5, + dinDC_EVSEStatusCodeType_EVSE_Malfunction = 6, + dinDC_EVSEStatusCodeType_Reserved_8 = 7, + dinDC_EVSEStatusCodeType_Reserved_9 = 8, + dinDC_EVSEStatusCodeType_Reserved_A = 9, + dinDC_EVSEStatusCodeType_Reserved_B = 10, + dinDC_EVSEStatusCodeType_Reserved_C = 11 +} dinDC_EVSEStatusCodeType; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,SessionSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":EVCCID)', derivedBy='EXTENSION'. */ +#define dinSessionSetupReqType_EVCCID_BYTES_SIZE 8 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,evccIDType is 8 */ +struct dinSessionSetupReqType { + /* element: "urn:iso:15118:2:2010:MsgBody":EVCCID, urn:iso:15118:2:2010:MsgDataTypes,evccIDType */ + struct { + uint8_t bytes[dinSessionSetupReqType_EVCCID_BYTES_SIZE]; + uint16_t bytesLen; + } EVCCID ; +}; + +typedef enum { + dinEVSEProcessingType_Finished = 0, + dinEVSEProcessingType_Ongoing = 1 +} dinEVSEProcessingType; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinCanonicalizationMethodType_Algorithm_CHARACTERS_SIZE 65 + EXTRA_CHAR +#define dinCanonicalizationMethodType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct dinCanonicalizationMethodType { + /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[dinCanonicalizationMethodType_Algorithm_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Algorithm ; + /* element: WC[##any] */ + struct { + exi_string_character_t characters[dinCanonicalizationMethodType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define dinSPKIDataType_SPKISexp_BYTES_SIZE 350 +#define dinSPKIDataType_SPKISexp_ARRAY_SIZE 1 +#define dinSPKIDataType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct dinSPKIDataType { + /* element: "http://www.w3.org/2000/09/xmldsig#":SPKISexp, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + struct { + uint8_t bytes[dinSPKIDataType_SPKISexp_BYTES_SIZE]; + uint16_t bytesLen; + } array[dinSPKIDataType_SPKISexp_ARRAY_SIZE]; + uint16_t arrayLen; + } SPKISexp; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[dinSPKIDataType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":RootCertificateID{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinListOfRootCertificateIDsType_RootCertificateID_CHARACTERS_SIZE 40 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,rootCertificateIDType is 40 */ +#define dinListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE 5 +struct dinListOfRootCertificateIDsType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":RootCertificateID, urn:iso:15118:2:2010:MsgDataTypes,rootCertificateIDType */ + struct { + struct { + exi_string_character_t characters[dinListOfRootCertificateIDsType_RootCertificateID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } array[dinListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE]; + uint16_t arrayLen; + } RootCertificateID; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define dinTransformType_Algorithm_CHARACTERS_SIZE 65 + EXTRA_CHAR +#define dinTransformType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinTransformType_XPath_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinTransformType_XPath_ARRAY_SIZE 1 +struct dinTransformType { + /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[dinTransformType_Algorithm_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Algorithm ; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[dinTransformType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":XPath, http://www.w3.org/2001/XMLSchema,string */ + struct { + struct { + exi_string_character_t characters[dinTransformType_XPath_CHARACTERS_SIZE]; + uint16_t charactersLen; + } array[dinTransformType_XPath_ARRAY_SIZE]; + uint16_t arrayLen; + } XPath; +}; + +typedef enum { + dinDC_EVErrorCodeType_NO_ERROR = 0, + dinDC_EVErrorCodeType_FAILED_RESSTemperatureInhibit = 1, + dinDC_EVErrorCodeType_FAILED_EVShiftPosition = 2, + dinDC_EVErrorCodeType_FAILED_ChargerConnectorLockFault = 3, + dinDC_EVErrorCodeType_FAILED_EVRESSMalfunction = 4, + dinDC_EVErrorCodeType_FAILED_ChargingCurrentdifferential = 5, + dinDC_EVErrorCodeType_FAILED_ChargingVoltageOutOfRange = 6, + dinDC_EVErrorCodeType_Reserved_A = 7, + dinDC_EVErrorCodeType_Reserved_B = 8, + dinDC_EVErrorCodeType_Reserved_C = 9, + dinDC_EVErrorCodeType_FAILED_ChargingSystemIncompatibility = 10, + dinDC_EVErrorCodeType_NoData = 11 +} dinDC_EVErrorCodeType; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ContractAuthenticationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":GenChallenge{0-1})', derivedBy='EXTENSION'. */ +#define dinContractAuthenticationReqType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinContractAuthenticationReqType_GenChallenge_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct dinContractAuthenticationReqType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,IDREF} */ + struct { + exi_string_character_t characters[dinContractAuthenticationReqType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgBody":GenChallenge, urn:iso:15118:2:2010:MsgDataTypes,genChallengeType */ + struct { + exi_string_character_t characters[dinContractAuthenticationReqType_GenChallenge_CHARACTERS_SIZE]; + uint16_t charactersLen; + } GenChallenge ; + unsigned int GenChallenge_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVSEChargeParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct dinEVSEChargeParameterType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":start,"urn:iso:15118:2:2010:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */ +struct dinRelativeTimeIntervalType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":start, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t start ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":duration, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t duration ; + unsigned int duration_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVStatusType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct dinEVStatusType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */ +#define dinDSAKeyValueType_P_BYTES_SIZE 350 +#define dinDSAKeyValueType_Q_BYTES_SIZE 350 +#define dinDSAKeyValueType_G_BYTES_SIZE 350 +#define dinDSAKeyValueType_Y_BYTES_SIZE 350 +#define dinDSAKeyValueType_J_BYTES_SIZE 350 +#define dinDSAKeyValueType_Seed_BYTES_SIZE 350 +#define dinDSAKeyValueType_PgenCounter_BYTES_SIZE 350 +struct dinDSAKeyValueType { + /* element: "http://www.w3.org/2000/09/xmldsig#":P, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[dinDSAKeyValueType_P_BYTES_SIZE]; + uint16_t bytesLen; + } P ; + unsigned int P_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Q, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[dinDSAKeyValueType_Q_BYTES_SIZE]; + uint16_t bytesLen; + } Q ; + unsigned int Q_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":G, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[dinDSAKeyValueType_G_BYTES_SIZE]; + uint16_t bytesLen; + } G ; + unsigned int G_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Y, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[dinDSAKeyValueType_Y_BYTES_SIZE]; + uint16_t bytesLen; + } Y ; + /* element: "http://www.w3.org/2000/09/xmldsig#":J, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[dinDSAKeyValueType_J_BYTES_SIZE]; + uint16_t bytesLen; + } J ; + unsigned int J_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Seed, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[dinDSAKeyValueType_Seed_BYTES_SIZE]; + uint16_t bytesLen; + } Seed ; + unsigned int Seed_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":PgenCounter, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[dinDSAKeyValueType_PgenCounter_BYTES_SIZE]; + uint16_t bytesLen; + } PgenCounter ; + unsigned int PgenCounter_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SASchedulesType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct dinSASchedulesType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVChargeParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct dinEVChargeParameterType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDef,BodyBaseType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct dinBodyBaseType { + int noContent; /* avoid warning */ +}; + +typedef enum { + dinunitSymbolType_h = 0, + dinunitSymbolType_m = 1, + dinunitSymbolType_s = 2, + dinunitSymbolType_A = 3, + dinunitSymbolType_Ah = 4, + dinunitSymbolType_V = 5, + dinunitSymbolType_VA = 6, + dinunitSymbolType_W = 7, + dinunitSymbolType_W_s = 8, + dinunitSymbolType_Wh = 9 +} dinunitSymbolType; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct dinIntervalType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinTransformsType_Transform_ARRAY_SIZE 1 +struct dinTransformsType { + /* element: "http://www.w3.org/2000/09/xmldsig#":Transform, Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct dinTransformType array[dinTransformsType_Transform_ARRAY_SIZE]; + uint16_t arrayLen; + } Transform; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EntryType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":TimeInterval)', derivedBy='RESTRICTION'. */ +struct dinEntryType { + /* substitutionGroup */ +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + union { +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + /* element: "urn:iso:15118:2:2010:MsgDataTypes":TimeInterval, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct dinIntervalType TimeInterval ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":RelativeTimeInterval, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":start,"urn:iso:15118:2:2010:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */ + struct dinRelativeTimeIntervalType RelativeTimeInterval ; +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + }; +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + unsigned int TimeInterval_isUsed:1; + unsigned int RelativeTimeInterval_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,SessionStopType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +struct dinSessionStopType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ServiceDetailReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ServiceID)', derivedBy='EXTENSION'. */ +struct dinServiceDetailReqType { + /* element: "urn:iso:15118:2:2010:MsgBody":ServiceID, urn:iso:15118:2:2010:MsgDataTypes,serviceIDType */ + uint16_t ServiceID ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinDigestMethodType_Algorithm_CHARACTERS_SIZE 65 + EXTRA_CHAR +#define dinDigestMethodType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct dinDigestMethodType { + /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[dinDigestMethodType_Algorithm_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Algorithm ; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[dinDigestMethodType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +typedef enum { + dinvalueType_bool = 0, + dinvalueType_byte = 1, + dinvalueType_short = 2, + dinvalueType_int = 3, + dinvalueType_physicalValue = 4, + dinvalueType_string = 5 +} dinvalueType; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ChargingStatusReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +struct dinChargingStatusReqType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinSignatureMethodType_Algorithm_CHARACTERS_SIZE 65 + EXTRA_CHAR +#define dinSignatureMethodType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct dinSignatureMethodType { + /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[dinSignatureMethodType_Algorithm_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Algorithm ; + /* element: "http://www.w3.org/2000/09/xmldsig#":HMACOutputLength, http://www.w3.org/2000/09/xmldsig#,HMACOutputLengthType */ + int64_t HMACOutputLength ; + unsigned int HMACOutputLength_isUsed:1; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[dinSignatureMethodType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CertificateInstallationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":OEMProvisioningCert,"urn:iso:15118:2:2010:MsgBody":ListOfRootCertificateIDs,"urn:iso:15118:2:2010:MsgBody":DHParams)', derivedBy='EXTENSION'. */ +#define dinCertificateInstallationReqType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinCertificateInstallationReqType_OEMProvisioningCert_BYTES_SIZE 1200 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,certificateType is 1200 */ +#define dinCertificateInstallationReqType_DHParams_BYTES_SIZE 256 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,dHParamsType is 256 */ +struct dinCertificateInstallationReqType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,IDREF} */ + struct { + exi_string_character_t characters[dinCertificateInstallationReqType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgBody":OEMProvisioningCert, urn:iso:15118:2:2010:MsgDataTypes,certificateType */ + struct { + uint8_t bytes[dinCertificateInstallationReqType_OEMProvisioningCert_BYTES_SIZE]; + uint16_t bytesLen; + } OEMProvisioningCert ; + /* element: "urn:iso:15118:2:2010:MsgBody":ListOfRootCertificateIDs, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":RootCertificateID{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct dinListOfRootCertificateIDsType ListOfRootCertificateIDs ; + /* element: "urn:iso:15118:2:2010:MsgBody":DHParams, urn:iso:15118:2:2010:MsgDataTypes,dHParamsType */ + struct { + uint8_t bytes[dinCertificateInstallationReqType_DHParams_BYTES_SIZE]; + uint16_t bytesLen; + } DHParams ; +}; + +typedef enum { + dinEVRequestedEnergyTransferType_AC_single_phase_core = 0, + dinEVRequestedEnergyTransferType_AC_three_phase_core = 1, + dinEVRequestedEnergyTransferType_DC_core = 2, + dinEVRequestedEnergyTransferType_DC_extended = 3, + dinEVRequestedEnergyTransferType_DC_combo_core = 4, + dinEVRequestedEnergyTransferType_DC_unique = 5 +} dinEVRequestedEnergyTransferType; + +typedef enum { + dinpaymentOptionType_Contract = 0, + dinpaymentOptionType_ExternalPayment = 1 +} dinpaymentOptionType; + +typedef enum { + dinEVSESupportedEnergyTransferType_AC_single_phase_core = 0, + dinEVSESupportedEnergyTransferType_AC_three_phase_core = 1, + dinEVSESupportedEnergyTransferType_DC_core = 2, + dinEVSESupportedEnergyTransferType_DC_extended = 3, + dinEVSESupportedEnergyTransferType_DC_combo_core = 4, + dinEVSESupportedEnergyTransferType_DC_dual = 5, + dinEVSESupportedEnergyTransferType_AC_core1p_DC_extended = 6, + dinEVSESupportedEnergyTransferType_AC_single_DC_core = 7, + dinEVSESupportedEnergyTransferType_AC_single_phase_three_phase_core_DC_extended = 8, + dinEVSESupportedEnergyTransferType_AC_core3p_DC_extended = 9 +} dinEVSESupportedEnergyTransferType; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ +#define dinReferenceType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinReferenceType_URI_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinReferenceType_Type_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinReferenceType_DigestValue_BYTES_SIZE 350 +struct dinReferenceType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[dinReferenceType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* attribute: URI {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[dinReferenceType_URI_CHARACTERS_SIZE]; + uint16_t charactersLen; + } URI ; + unsigned int URI_isUsed:1; + /* attribute: Type {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[dinReferenceType_Type_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Type ; + unsigned int Type_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Transforms, Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct dinTransformsType Transforms ; + unsigned int Transforms_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":DigestMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct dinDigestMethodType DigestMethod ; + /* element: "http://www.w3.org/2000/09/xmldsig#":DigestValue, http://www.w3.org/2000/09/xmldsig#,DigestValueType */ + struct { + uint8_t bytes[dinReferenceType_DigestValue_BYTES_SIZE]; + uint16_t bytesLen; + } DigestValue ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ProfileEntryType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ChargingProfileEntryStart,"urn:iso:15118:2:2010:MsgDataTypes":ChargingProfileEntryMaxPower)', derivedBy='RESTRICTION'. */ +struct dinProfileEntryType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":ChargingProfileEntryStart, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t ChargingProfileEntryStart ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":ChargingProfileEntryMaxPower, urn:iso:15118:2:2010:MsgDataTypes,PMaxType */ + int16_t ChargingProfileEntryMaxPower ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */ +#define dinRSAKeyValueType_Modulus_BYTES_SIZE 350 +#define dinRSAKeyValueType_Exponent_BYTES_SIZE 350 +struct dinRSAKeyValueType { + /* element: "http://www.w3.org/2000/09/xmldsig#":Modulus, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[dinRSAKeyValueType_Modulus_BYTES_SIZE]; + uint16_t bytesLen; + } Modulus ; + /* element: "http://www.w3.org/2000/09/xmldsig#":Exponent, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[dinRSAKeyValueType_Exponent_BYTES_SIZE]; + uint16_t bytesLen; + } Exponent ; +}; + +typedef enum { + dinfaultCodeType_ParsingError = 0, + dinfaultCodeType_NoTLSRootCertificatAvailable = 1, + dinfaultCodeType_UnknownError = 2 +} dinfaultCodeType; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct dinEVSEStatusType { + int noContent; /* avoid warning */ +}; + +typedef enum { + dinserviceCategoryType_EVCharging = 0, + dinserviceCategoryType_Internet = 1, + dinserviceCategoryType_ContractCertificate = 2, + dinserviceCategoryType_OtherCustom = 3 +} dinserviceCategoryType; + +typedef enum { + dinEVSENotificationType_None = 0, + dinEVSENotificationType_StopCharging = 1, + dinEVSENotificationType_ReNegotiation = 2 +} dinEVSENotificationType; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVPowerDeliveryParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct dinEVPowerDeliveryParameterType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */ +#define dinX509IssuerSerialType_X509IssuerName_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct dinX509IssuerSerialType { + /* element: "http://www.w3.org/2000/09/xmldsig#":X509IssuerName, http://www.w3.org/2001/XMLSchema,string */ + struct { + exi_string_character_t characters[dinX509IssuerSerialType_X509IssuerName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } X509IssuerName ; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509SerialNumber, http://www.w3.org/2001/XMLSchema,integer */ + int64_t X509SerialNumber ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SelectedServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ServiceID,"urn:iso:15118:2:2010:MsgDataTypes":ParameterSetID{0-1})', derivedBy='RESTRICTION'. */ +struct dinSelectedServiceType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":ServiceID, urn:iso:15118:2:2010:MsgDataTypes,serviceIDType */ + uint16_t ServiceID ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":ParameterSetID, http://www.w3.org/2001/XMLSchema,short */ + int16_t ParameterSetID ; + unsigned int ParameterSetID_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":EVReady,"urn:iso:15118:2:2010:MsgDataTypes":EVCabinConditioning{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVRESSConditioning{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2010:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */ +struct dinDC_EVStatusType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVReady, http://www.w3.org/2001/XMLSchema,boolean */ + int EVReady ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVCabinConditioning, http://www.w3.org/2001/XMLSchema,boolean */ + int EVCabinConditioning ; + unsigned int EVCabinConditioning_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVRESSConditioning, http://www.w3.org/2001/XMLSchema,boolean */ + int EVRESSConditioning ; + unsigned int EVRESSConditioning_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVErrorCode, urn:iso:15118:2:2010:MsgDataTypes,DC_EVErrorCodeType */ + dinDC_EVErrorCodeType EVErrorCode ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVRESSSOC, urn:iso:15118:2:2010:MsgDataTypes,percentValueType */ + int8_t EVRESSSOC ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ +struct dinPhysicalValueType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":Multiplier, urn:iso:15118:2:2010:MsgDataTypes,unitMultiplierType */ + int8_t Multiplier ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":Unit, urn:iso:15118:2:2010:MsgDataTypes,unitSymbolType */ + dinunitSymbolType Unit ; + unsigned int Unit_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":Value, http://www.w3.org/2001/XMLSchema,short */ + int16_t Value ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ManifestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinManifestType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinManifestType_Reference_ARRAY_SIZE 1 +struct dinManifestType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[dinManifestType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Reference, Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ + struct { + struct dinReferenceType array[dinManifestType_Reference_ARRAY_SIZE]; + uint16_t arrayLen; + } Reference; +}; + +typedef enum { + dincostKindType_relativePricePercentage = 0, + dincostKindType_RenewableGenerationPercentage = 1, + dincostKindType_CarbonDioxideEmission = 2 +} dincostKindType; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2010:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2010:MsgDataTypes":PMax))', derivedBy='EXTENSION'. */ +struct dinPMaxScheduleEntryType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":TimeInterval, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct dinIntervalType TimeInterval ; + unsigned int TimeInterval_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":RelativeTimeInterval, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":start,"urn:iso:15118:2:2010:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */ + struct dinRelativeTimeIntervalType RelativeTimeInterval ; + unsigned int RelativeTimeInterval_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":PMax, urn:iso:15118:2:2010:MsgDataTypes,PMaxType */ + int16_t PMax ; +}; + +typedef enum { + dinisolationLevelType_Invalid = 0, + dinisolationLevelType_Valid = 1, + dinisolationLevelType_Warning = 2, + dinisolationLevelType_Fault = 3 +} dinisolationLevelType; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +#define dinSignatureValueType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinSignatureValueType_CONTENT_BYTES_SIZE 350 +struct dinSignatureValueType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[dinSignatureValueType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* simple content: http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + uint8_t bytes[dinSignatureValueType_CONTENT_BYTES_SIZE]; + uint16_t bytesLen; + } CONTENT ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PaymentOptionsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":PaymentOption{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinPaymentOptionsType_PaymentOption_ARRAY_SIZE 5 +struct dinPaymentOptionsType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":PaymentOption, urn:iso:15118:2:2010:MsgDataTypes,paymentOptionType */ + struct { + dinpaymentOptionType array[dinPaymentOptionsType_PaymentOption_ARRAY_SIZE]; + uint16_t arrayLen; + } PaymentOption; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceTagType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ServiceID,"urn:iso:15118:2:2010:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2010:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2010:MsgDataTypes":ServiceScope{0-1})', derivedBy='RESTRICTION'. */ +#define dinServiceTagType_ServiceName_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,serviceNameType is 32 */ +#define dinServiceTagType_ServiceScope_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,serviceScopeType is 32 */ +struct dinServiceTagType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":ServiceID, urn:iso:15118:2:2010:MsgDataTypes,serviceIDType */ + uint16_t ServiceID ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":ServiceName, urn:iso:15118:2:2010:MsgDataTypes,serviceNameType */ + struct { + exi_string_character_t characters[dinServiceTagType_ServiceName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ServiceName ; + unsigned int ServiceName_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":ServiceCategory, urn:iso:15118:2:2010:MsgDataTypes,serviceCategoryType */ + dinserviceCategoryType ServiceCategory ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":ServiceScope, urn:iso:15118:2:2010:MsgDataTypes,serviceScopeType */ + struct { + exi_string_character_t characters[dinServiceTagType_ServiceScope_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ServiceScope ; + unsigned int ServiceScope_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":PowerSwitchClosed,"urn:iso:15118:2:2010:MsgDataTypes":RCD,"urn:iso:15118:2:2010:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2010:MsgDataTypes":EVSENotification)', derivedBy='EXTENSION'. */ +struct dinAC_EVSEStatusType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":PowerSwitchClosed, http://www.w3.org/2001/XMLSchema,boolean */ + int PowerSwitchClosed ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":RCD, http://www.w3.org/2001/XMLSchema,boolean */ + int RCD ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":NotificationMaxDelay, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t NotificationMaxDelay ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVSENotification, urn:iso:15118:2:2010:MsgDataTypes,EVSENotificationType */ + dinEVSENotificationType EVSENotification ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ChargingProfileType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2010:MsgDataTypes":ProfileEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinChargingProfileType_ProfileEntry_ARRAY_SIZE 24 +struct dinChargingProfileType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":SAScheduleTupleID, urn:iso:15118:2:2010:MsgDataTypes,SAIDType */ + int16_t SAScheduleTupleID ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":ProfileEntry, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ProfileEntryType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ChargingProfileEntryStart,"urn:iso:15118:2:2010:MsgDataTypes":ChargingProfileEntryMaxPower)', derivedBy='RESTRICTION'. */ + struct { + struct dinProfileEntryType array[dinChargingProfileType_ProfileEntry_ARRAY_SIZE]; + uint16_t arrayLen; + } ProfileEntry; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ServiceDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ServiceScope{0-1},"urn:iso:15118:2:2010:MsgBody":ServiceCategory{0-1})', derivedBy='EXTENSION'. */ +#define dinServiceDiscoveryReqType_ServiceScope_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,serviceScopeType is 32 */ +struct dinServiceDiscoveryReqType { + /* element: "urn:iso:15118:2:2010:MsgBody":ServiceScope, urn:iso:15118:2:2010:MsgDataTypes,serviceScopeType */ + struct { + exi_string_character_t characters[dinServiceDiscoveryReqType_ServiceScope_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ServiceScope ; + unsigned int ServiceScope_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgBody":ServiceCategory, urn:iso:15118:2:2010:MsgDataTypes,serviceCategoryType */ + dinserviceCategoryType ServiceCategory ; + unsigned int ServiceCategory_isUsed:1; +}; + +typedef enum { + dinresponseCodeType_OK = 0, + dinresponseCodeType_OK_NewSessionEstablished = 1, + dinresponseCodeType_OK_OldSessionJoined = 2, + dinresponseCodeType_OK_CertificateExpiresSoon = 3, + dinresponseCodeType_FAILED = 4, + dinresponseCodeType_FAILED_SequenceError = 5, + dinresponseCodeType_FAILED_ServiceIDInvalid = 6, + dinresponseCodeType_FAILED_UnknownSession = 7, + dinresponseCodeType_FAILED_ServiceSelectionInvalid = 8, + dinresponseCodeType_FAILED_PaymentSelectionInvalid = 9, + dinresponseCodeType_FAILED_CertificateExpired = 10, + dinresponseCodeType_FAILED_SignatureError = 11, + dinresponseCodeType_FAILED_NoCertificateAvailable = 12, + dinresponseCodeType_FAILED_CertChainError = 13, + dinresponseCodeType_FAILED_ChallengeInvalid = 14, + dinresponseCodeType_FAILED_ContractCanceled = 15, + dinresponseCodeType_FAILED_WrongChargeParameter = 16, + dinresponseCodeType_FAILED_PowerDeliveryNotApplied = 17, + dinresponseCodeType_FAILED_TariffSelectionInvalid = 18, + dinresponseCodeType_FAILED_ChargingProfileInvalid = 19, + dinresponseCodeType_FAILED_EVSEPresentVoltageToLow = 20, + dinresponseCodeType_FAILED_MeteringSignatureNotValid = 21, + dinresponseCodeType_FAILED_WrongEnergyTransferType = 22 +} dinresponseCodeType; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,AC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":AC_EVSEStatus,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaxVoltage,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaxCurrent,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMinCurrent)', derivedBy='EXTENSION'. */ +struct dinAC_EVSEChargeParameterType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":AC_EVSEStatus, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":PowerSwitchClosed,"urn:iso:15118:2:2010:MsgDataTypes":RCD,"urn:iso:15118:2:2010:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2010:MsgDataTypes":EVSENotification)', derivedBy='EXTENSION'. */ + struct dinAC_EVSEStatusType AC_EVSEStatus ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVSEMaxVoltage, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSEMaxVoltage ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVSEMaxCurrent, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSEMaxCurrent ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVSEMinCurrent, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSEMinCurrent ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define dinObjectType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinObjectType_MimeType_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinObjectType_Encoding_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinObjectType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct dinObjectType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[dinObjectType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* attribute: MimeType {http://www.w3.org/2001/XMLSchema,string} */ + struct { + exi_string_character_t characters[dinObjectType_MimeType_CHARACTERS_SIZE]; + uint16_t charactersLen; + } MimeType ; + unsigned int MimeType_isUsed:1; + /* attribute: Encoding {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[dinObjectType_Encoding_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Encoding ; + unsigned int Encoding_isUsed:1; + /* element: WC[##any] */ + struct { + exi_string_character_t characters[dinObjectType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,SessionStopResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */ +struct dinSessionStopResType { + /* element: "urn:iso:15118:2:2010:MsgBody":ResponseCode, urn:iso:15118:2:2010:MsgDataTypes,responseCodeType */ + dinresponseCodeType ResponseCode ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinSignedInfoType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinSignedInfoType_Reference_ARRAY_SIZE 1 +struct dinSignedInfoType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[dinSignedInfoType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct dinCanonicalizationMethodType CanonicalizationMethod ; + /* element: "http://www.w3.org/2000/09/xmldsig#":SignatureMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct dinSignatureMethodType SignatureMethod ; + /* element: "http://www.w3.org/2000/09/xmldsig#":Reference, Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ + struct { + struct dinReferenceType array[dinSignedInfoType_Reference_ARRAY_SIZE]; + uint16_t arrayLen; + } Reference; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,CostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":costKind,"urn:iso:15118:2:2010:MsgDataTypes":amount,"urn:iso:15118:2:2010:MsgDataTypes":amountMultiplier{0-1})', derivedBy='RESTRICTION'. */ +struct dinCostType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":costKind, urn:iso:15118:2:2010:MsgDataTypes,costKindType */ + dincostKindType costKind ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":amount, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t amount ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":amountMultiplier, urn:iso:15118:2:2010:MsgDataTypes,unitMultiplierType */ + int8_t amountMultiplier ; + unsigned int amountMultiplier_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceChargeType', base type name='ServiceType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2010:MsgDataTypes":ServiceTag,"urn:iso:15118:2:2010:MsgDataTypes":FreeService),("urn:iso:15118:2:2010:MsgDataTypes":EnergyTransferType))', derivedBy='EXTENSION'. */ +struct dinServiceChargeType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":ServiceTag, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceTagType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ServiceID,"urn:iso:15118:2:2010:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2010:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2010:MsgDataTypes":ServiceScope{0-1})', derivedBy='RESTRICTION'. */ + struct dinServiceTagType ServiceTag ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":FreeService, http://www.w3.org/2001/XMLSchema,boolean */ + int FreeService ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EnergyTransferType, urn:iso:15118:2:2010:MsgDataTypes,EVSESupportedEnergyTransferType */ + dinEVSESupportedEnergyTransferType EnergyTransferType ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVSEStatusCode,"urn:iso:15118:2:2010:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2010:MsgDataTypes":EVSENotification)', derivedBy='EXTENSION'. */ +struct dinDC_EVSEStatusType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVSEIsolationStatus, urn:iso:15118:2:2010:MsgDataTypes,isolationLevelType */ + dinisolationLevelType EVSEIsolationStatus ; + unsigned int EVSEIsolationStatus_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVSEStatusCode, urn:iso:15118:2:2010:MsgDataTypes,DC_EVSEStatusCodeType */ + dinDC_EVSEStatusCodeType EVSEStatusCode ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":NotificationMaxDelay, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t NotificationMaxDelay ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVSENotification, urn:iso:15118:2:2010:MsgDataTypes,EVSENotificationType */ + dinEVSENotificationType EVSENotification ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */ +#define dinRetrievalMethodType_URI_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinRetrievalMethodType_Type_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct dinRetrievalMethodType { + /* attribute: URI {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[dinRetrievalMethodType_URI_CHARACTERS_SIZE]; + uint16_t charactersLen; + } URI ; + unsigned int URI_isUsed:1; + /* attribute: Type {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[dinRetrievalMethodType_Type_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Type ; + unsigned int Type_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Transforms, Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct dinTransformsType Transforms ; + unsigned int Transforms_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,NotificationType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":FaultCode,"urn:iso:15118:2:2010:MsgDataTypes":FaultMsg{0-1})', derivedBy='RESTRICTION'. */ +#define dinNotificationType_FaultMsg_CHARACTERS_SIZE 64 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,faultMsgType is 64 */ +struct dinNotificationType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":FaultCode, urn:iso:15118:2:2010:MsgDataTypes,faultCodeType */ + dinfaultCodeType FaultCode ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":FaultMsg, urn:iso:15118:2:2010:MsgDataTypes,faultMsgType */ + struct { + exi_string_character_t characters[dinNotificationType_FaultMsg_CHARACTERS_SIZE]; + uint16_t charactersLen; + } FaultMsg ; + unsigned int FaultMsg_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */ +#define dinPGPDataType_PGPKeyID_BYTES_SIZE 350 +#define dinPGPDataType_PGPKeyPacket_BYTES_SIZE 350 +#define dinPGPDataType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct dinPGPDataType { + /* element: "http://www.w3.org/2000/09/xmldsig#":PGPKeyID, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + uint8_t bytes[dinPGPDataType_PGPKeyID_BYTES_SIZE]; + uint16_t bytesLen; + } PGPKeyID ; + unsigned int PGPKeyID_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + uint8_t bytes[dinPGPDataType_PGPKeyPacket_BYTES_SIZE]; + uint16_t bytesLen; + } PGPKeyPacket ; + unsigned int PGPKeyPacket_isUsed:1; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[dinPGPDataType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define dinSignaturePropertyType_Target_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinSignaturePropertyType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinSignaturePropertyType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct dinSignaturePropertyType { + /* attribute: Target {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[dinSignaturePropertyType_Target_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Target ; + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[dinSignaturePropertyType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[dinSignaturePropertyType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":MeterID,"urn:iso:15118:2:2010:MsgDataTypes":MeterReading{0-1},"urn:iso:15118:2:2010:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2010:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2010:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ +#define dinMeterInfoType_MeterID_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,meterIDType is 32 */ +#define dinMeterInfoType_SigMeterReading_BYTES_SIZE 32 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,sigMeterReadingType is 32 */ +struct dinMeterInfoType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":MeterID, urn:iso:15118:2:2010:MsgDataTypes,meterIDType */ + struct { + exi_string_character_t characters[dinMeterInfoType_MeterID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } MeterID ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":MeterReading, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType MeterReading ; + unsigned int MeterReading_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":SigMeterReading, urn:iso:15118:2:2010:MsgDataTypes,sigMeterReadingType */ + struct { + uint8_t bytes[dinMeterInfoType_SigMeterReading_BYTES_SIZE]; + uint16_t bytesLen; + } SigMeterReading ; + unsigned int SigMeterReading_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":MeterStatus, urn:iso:15118:2:2010:MsgDataTypes,meterStatusType */ + int16_t MeterStatus ; + unsigned int MeterStatus_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":TMeter, http://www.w3.org/2001/XMLSchema,long */ + int64_t TMeter ; + unsigned int TMeter_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SubCertificatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Certificate{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinSubCertificatesType_Certificate_BYTES_SIZE 1200 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,certificateType is 1200 */ +#define dinSubCertificatesType_Certificate_ARRAY_SIZE 5 +struct dinSubCertificatesType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":Certificate, urn:iso:15118:2:2010:MsgDataTypes,certificateType */ + struct { + struct { + uint8_t bytes[dinSubCertificatesType_Certificate_BYTES_SIZE]; + uint16_t bytesLen; + } array[dinSubCertificatesType_Certificate_ARRAY_SIZE]; + uint16_t arrayLen; + } Certificate; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,MeteringReceiptReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":SessionID,"urn:iso:15118:2:2010:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2010:MsgBody":MeterInfo)', derivedBy='EXTENSION'. */ +#define dinMeteringReceiptReqType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinMeteringReceiptReqType_SessionID_BYTES_SIZE 8 /* XML schema facet length for urn:iso:15118:2:2010:MsgDataTypes,sessionIDType is 8 */ +struct dinMeteringReceiptReqType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,IDREF} */ + struct { + exi_string_character_t characters[dinMeteringReceiptReqType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgBody":SessionID, urn:iso:15118:2:2010:MsgDataTypes,sessionIDType */ + struct { + uint8_t bytes[dinMeteringReceiptReqType_SessionID_BYTES_SIZE]; + uint16_t bytesLen; + } SessionID ; + /* element: "urn:iso:15118:2:2010:MsgBody":SAScheduleTupleID, urn:iso:15118:2:2010:MsgDataTypes,SAIDType */ + int16_t SAScheduleTupleID ; + unsigned int SAScheduleTupleID_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgBody":MeterInfo, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":MeterID,"urn:iso:15118:2:2010:MsgDataTypes":MeterReading{0-1},"urn:iso:15118:2:2010:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2010:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2010:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ + struct dinMeterInfoType MeterInfo ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,PowerDeliveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */ +struct dinPowerDeliveryResType { + /* element: "urn:iso:15118:2:2010:MsgBody":ResponseCode, urn:iso:15118:2:2010:MsgDataTypes,responseCodeType */ + dinresponseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVSEStatus, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct dinEVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":AC_EVSEStatus, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":PowerSwitchClosed,"urn:iso:15118:2:2010:MsgDataTypes":RCD,"urn:iso:15118:2:2010:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2010:MsgDataTypes":EVSENotification)', derivedBy='EXTENSION'. */ + struct dinAC_EVSEStatusType AC_EVSEStatus ; + unsigned int AC_EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVSEStatusCode,"urn:iso:15118:2:2010:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2010:MsgDataTypes":EVSENotification)', derivedBy='EXTENSION'. */ + struct dinDC_EVSEStatusType DC_EVSEStatus ; + unsigned int DC_EVSEStatus_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,WeldingDetectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */ +struct dinWeldingDetectionResType { + /* element: "urn:iso:15118:2:2010:MsgBody":ResponseCode, urn:iso:15118:2:2010:MsgDataTypes,responseCodeType */ + dinresponseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVSEStatusCode,"urn:iso:15118:2:2010:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2010:MsgDataTypes":EVSENotification)', derivedBy='EXTENSION'. */ + struct dinDC_EVSEStatusType DC_EVSEStatus ; + /* element: "urn:iso:15118:2:2010:MsgBody":EVSEPresentVoltage, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSEPresentVoltage ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ContractAuthenticationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */ +struct dinContractAuthenticationResType { + /* element: "urn:iso:15118:2:2010:MsgBody":ResponseCode, urn:iso:15118:2:2010:MsgDataTypes,responseCodeType */ + dinresponseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2010:MsgBody":EVSEProcessing, urn:iso:15118:2:2010:MsgDataTypes,EVSEProcessingType */ + dinEVSEProcessingType EVSEProcessing ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SelectedServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SelectedService{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinSelectedServiceListType_SelectedService_ARRAY_SIZE 16 +struct dinSelectedServiceListType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":SelectedService, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SelectedServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ServiceID,"urn:iso:15118:2:2010:MsgDataTypes":ParameterSetID{0-1})', derivedBy='RESTRICTION'. */ + struct { + struct dinSelectedServiceType array[dinSelectedServiceListType_SelectedService_ARRAY_SIZE]; + uint16_t arrayLen; + } SelectedService; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CurrentDemandResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2010:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2010:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2010:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2010:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2010:MsgBody":EVSEMaximumVoltageLimit{0-1},"urn:iso:15118:2:2010:MsgBody":EVSEMaximumCurrentLimit{0-1},"urn:iso:15118:2:2010:MsgBody":EVSEMaximumPowerLimit{0-1})', derivedBy='EXTENSION'. */ +struct dinCurrentDemandResType { + /* element: "urn:iso:15118:2:2010:MsgBody":ResponseCode, urn:iso:15118:2:2010:MsgDataTypes,responseCodeType */ + dinresponseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVSEStatusCode,"urn:iso:15118:2:2010:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2010:MsgDataTypes":EVSENotification)', derivedBy='EXTENSION'. */ + struct dinDC_EVSEStatusType DC_EVSEStatus ; + /* element: "urn:iso:15118:2:2010:MsgBody":EVSEPresentVoltage, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSEPresentVoltage ; + /* element: "urn:iso:15118:2:2010:MsgBody":EVSEPresentCurrent, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSEPresentCurrent ; + /* element: "urn:iso:15118:2:2010:MsgBody":EVSECurrentLimitAchieved, http://www.w3.org/2001/XMLSchema,boolean */ + int EVSECurrentLimitAchieved ; + /* element: "urn:iso:15118:2:2010:MsgBody":EVSEVoltageLimitAchieved, http://www.w3.org/2001/XMLSchema,boolean */ + int EVSEVoltageLimitAchieved ; + /* element: "urn:iso:15118:2:2010:MsgBody":EVSEPowerLimitAchieved, http://www.w3.org/2001/XMLSchema,boolean */ + int EVSEPowerLimitAchieved ; + /* element: "urn:iso:15118:2:2010:MsgBody":EVSEMaximumVoltageLimit, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSEMaximumVoltageLimit ; + unsigned int EVSEMaximumVoltageLimit_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgBody":EVSEMaximumCurrentLimit, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSEMaximumCurrentLimit ; + unsigned int EVSEMaximumCurrentLimit_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgBody":EVSEMaximumPowerLimit, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSEMaximumPowerLimit ; + unsigned int EVSEMaximumPowerLimit_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,AC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":DepartureTime,"urn:iso:15118:2:2010:MsgDataTypes":EAmount,"urn:iso:15118:2:2010:MsgDataTypes":EVMaxVoltage,"urn:iso:15118:2:2010:MsgDataTypes":EVMaxCurrent,"urn:iso:15118:2:2010:MsgDataTypes":EVMinCurrent)', derivedBy='EXTENSION'. */ +struct dinAC_EVChargeParameterType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":DepartureTime, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t DepartureTime ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EAmount, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EAmount ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVMaxVoltage, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVMaxVoltage ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVMaxCurrent, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVMaxCurrent ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVMinCurrent, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVMinCurrent ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define dinX509DataType_X509IssuerSerial_ARRAY_SIZE 1 +#define dinX509DataType_X509SKI_BYTES_SIZE 350 +#define dinX509DataType_X509SKI_ARRAY_SIZE 1 +#define dinX509DataType_X509SubjectName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinX509DataType_X509SubjectName_ARRAY_SIZE 1 +#define dinX509DataType_X509Certificate_BYTES_SIZE 350 +#define dinX509DataType_X509Certificate_ARRAY_SIZE 1 +#define dinX509DataType_X509CRL_BYTES_SIZE 350 +#define dinX509DataType_X509CRL_ARRAY_SIZE 1 +#define dinX509DataType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct dinX509DataType { + /* element: "http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial, Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */ + struct { + struct dinX509IssuerSerialType array[dinX509DataType_X509IssuerSerial_ARRAY_SIZE]; + uint16_t arrayLen; + } X509IssuerSerial; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509SKI, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + struct { + uint8_t bytes[dinX509DataType_X509SKI_BYTES_SIZE]; + uint16_t bytesLen; + } array[dinX509DataType_X509SKI_ARRAY_SIZE]; + uint16_t arrayLen; + } X509SKI; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509SubjectName, http://www.w3.org/2001/XMLSchema,string */ + struct { + struct { + exi_string_character_t characters[dinX509DataType_X509SubjectName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } array[dinX509DataType_X509SubjectName_ARRAY_SIZE]; + uint16_t arrayLen; + } X509SubjectName; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509Certificate, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + struct { + uint8_t bytes[dinX509DataType_X509Certificate_BYTES_SIZE]; + uint16_t bytesLen; + } array[dinX509DataType_X509Certificate_ARRAY_SIZE]; + uint16_t arrayLen; + } X509Certificate; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509CRL, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + struct { + uint8_t bytes[dinX509DataType_X509CRL_BYTES_SIZE]; + uint16_t bytesLen; + } array[dinX509DataType_X509CRL_ARRAY_SIZE]; + uint16_t arrayLen; + } X509CRL; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[dinX509DataType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ChargingStatusResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":EVSEID,"urn:iso:15118:2:2010:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2010:MsgBody":EVSEMaxCurrent{0-1},"urn:iso:15118:2:2010:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2010:MsgBody":ReceiptRequired,"urn:iso:15118:2:2010:MsgBody":AC_EVSEStatus)', derivedBy='EXTENSION'. */ +#define dinChargingStatusResType_EVSEID_BYTES_SIZE 32 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,evseIDType is 32 */ +struct dinChargingStatusResType { + /* element: "urn:iso:15118:2:2010:MsgBody":ResponseCode, urn:iso:15118:2:2010:MsgDataTypes,responseCodeType */ + dinresponseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2010:MsgBody":EVSEID, urn:iso:15118:2:2010:MsgDataTypes,evseIDType */ + struct { + uint8_t bytes[dinChargingStatusResType_EVSEID_BYTES_SIZE]; + uint16_t bytesLen; + } EVSEID ; + /* element: "urn:iso:15118:2:2010:MsgBody":SAScheduleTupleID, urn:iso:15118:2:2010:MsgDataTypes,SAIDType */ + int16_t SAScheduleTupleID ; + /* element: "urn:iso:15118:2:2010:MsgBody":EVSEMaxCurrent, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSEMaxCurrent ; + unsigned int EVSEMaxCurrent_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgBody":MeterInfo, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":MeterID,"urn:iso:15118:2:2010:MsgDataTypes":MeterReading{0-1},"urn:iso:15118:2:2010:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2010:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2010:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ + struct dinMeterInfoType MeterInfo ; + unsigned int MeterInfo_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgBody":ReceiptRequired, http://www.w3.org/2001/XMLSchema,boolean */ + int ReceiptRequired ; + /* element: "urn:iso:15118:2:2010:MsgBody":AC_EVSEStatus, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":PowerSwitchClosed,"urn:iso:15118:2:2010:MsgDataTypes":RCD,"urn:iso:15118:2:2010:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2010:MsgDataTypes":EVSENotification)', derivedBy='EXTENSION'. */ + struct dinAC_EVSEStatusType AC_EVSEStatus ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,WeldingDetectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */ +struct dinWeldingDetectionReqType { + /* element: "urn:iso:15118:2:2010:MsgBody":DC_EVStatus, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":EVReady,"urn:iso:15118:2:2010:MsgDataTypes":EVCabinConditioning{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVRESSConditioning{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2010:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */ + struct dinDC_EVStatusType DC_EVStatus ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertiesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignatureProperty{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinSignaturePropertiesType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinSignaturePropertiesType_SignatureProperty_ARRAY_SIZE 1 +struct dinSignaturePropertiesType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[dinSignaturePropertiesType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":SignatureProperty, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct dinSignaturePropertyType array[dinSignaturePropertiesType_SignatureProperty_ARRAY_SIZE]; + uint16_t arrayLen; + } SignatureProperty; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVPowerDeliveryParameterType', base type name='EVPowerDeliveryParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2010:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2010:MsgDataTypes":ChargingComplete)', derivedBy='EXTENSION'. */ +struct dinDC_EVPowerDeliveryParameterType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":DC_EVStatus, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":EVReady,"urn:iso:15118:2:2010:MsgDataTypes":EVCabinConditioning{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVRESSConditioning{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2010:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */ + struct dinDC_EVStatusType DC_EVStatus ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":BulkChargingComplete, http://www.w3.org/2001/XMLSchema,boolean */ + int BulkChargingComplete ; + unsigned int BulkChargingComplete_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":ChargingComplete, http://www.w3.org/2001/XMLSchema,boolean */ + int ChargingComplete ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CableCheckReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */ +struct dinCableCheckReqType { + /* element: "urn:iso:15118:2:2010:MsgBody":DC_EVStatus, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":EVReady,"urn:iso:15118:2:2010:MsgDataTypes":EVCabinConditioning{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVRESSConditioning{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2010:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */ + struct dinDC_EVStatusType DC_EVStatus ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2010:MsgDataTypes":EVMaximumCurrentLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVMaximumVoltageLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVEnergyCapacity{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVEnergyRequest{0-1},"urn:iso:15118:2:2010:MsgDataTypes":FullSOC{0-1},"urn:iso:15118:2:2010:MsgDataTypes":BulkSOC{0-1})', derivedBy='EXTENSION'. */ +struct dinDC_EVChargeParameterType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":DC_EVStatus, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":EVReady,"urn:iso:15118:2:2010:MsgDataTypes":EVCabinConditioning{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVRESSConditioning{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2010:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */ + struct dinDC_EVStatusType DC_EVStatus ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVMaximumCurrentLimit, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVMaximumCurrentLimit ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVMaximumPowerLimit, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVMaximumPowerLimit ; + unsigned int EVMaximumPowerLimit_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVMaximumVoltageLimit, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVMaximumVoltageLimit ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVEnergyCapacity, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVEnergyCapacity ; + unsigned int EVEnergyCapacity_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVEnergyRequest, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVEnergyRequest ; + unsigned int EVEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":FullSOC, urn:iso:15118:2:2010:MsgDataTypes,percentValueType */ + int8_t FullSOC ; + unsigned int FullSOC_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":BulkSOC, urn:iso:15118:2:2010:MsgDataTypes,percentValueType */ + int8_t BulkSOC ; + unsigned int BulkSOC_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PMaxScheduleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":PMaxScheduleID,"urn:iso:15118:2:2010:MsgDataTypes":PMaxScheduleEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinPMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE 5 +struct dinPMaxScheduleType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":PMaxScheduleID, urn:iso:15118:2:2010:MsgDataTypes,SAIDType */ + int16_t PMaxScheduleID ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":PMaxScheduleEntry, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2010:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2010:MsgDataTypes":PMax))', derivedBy='EXTENSION'. */ + struct { + struct dinPMaxScheduleEntryType array[dinPMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE]; + uint16_t arrayLen; + } PMaxScheduleEntry; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ServicePaymentSelectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":SelectedPaymentOption,"urn:iso:15118:2:2010:MsgBody":SelectedServiceList)', derivedBy='EXTENSION'. */ +struct dinServicePaymentSelectionReqType { + /* element: "urn:iso:15118:2:2010:MsgBody":SelectedPaymentOption, urn:iso:15118:2:2010:MsgDataTypes,paymentOptionType */ + dinpaymentOptionType SelectedPaymentOption ; + /* element: "urn:iso:15118:2:2010:MsgBody":SelectedServiceList, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SelectedServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SelectedService{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct dinSelectedServiceListType SelectedServiceList ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,PreChargeResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */ +struct dinPreChargeResType { + /* element: "urn:iso:15118:2:2010:MsgBody":ResponseCode, urn:iso:15118:2:2010:MsgDataTypes,responseCodeType */ + dinresponseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVSEStatusCode,"urn:iso:15118:2:2010:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2010:MsgDataTypes":EVSENotification)', derivedBy='EXTENSION'. */ + struct dinDC_EVSEStatusType DC_EVSEStatus ; + /* element: "urn:iso:15118:2:2010:MsgBody":EVSEPresentVoltage, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSEPresentVoltage ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaximumCurrentLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaximumPowerLimit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaximumVoltageLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMinimumCurrentLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMinimumVoltageLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2010:MsgDataTypes":EVSEEnergyToBeDelivered{0-1})', derivedBy='EXTENSION'. */ +struct dinDC_EVSEChargeParameterType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVSEStatusCode,"urn:iso:15118:2:2010:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2010:MsgDataTypes":EVSENotification)', derivedBy='EXTENSION'. */ + struct dinDC_EVSEStatusType DC_EVSEStatus ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVSEMaximumCurrentLimit, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSEMaximumCurrentLimit ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVSEMaximumPowerLimit, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSEMaximumPowerLimit ; + unsigned int EVSEMaximumPowerLimit_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVSEMaximumVoltageLimit, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSEMaximumVoltageLimit ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVSEMinimumCurrentLimit, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSEMinimumCurrentLimit ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVSEMinimumVoltageLimit, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSEMinimumVoltageLimit ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVSECurrentRegulationTolerance, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSECurrentRegulationTolerance ; + unsigned int EVSECurrentRegulationTolerance_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVSEPeakCurrentRipple, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSEPeakCurrentRipple ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVSEEnergyToBeDelivered, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVSEEnergyToBeDelivered ; + unsigned int EVSEEnergyToBeDelivered_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,PaymentDetailsResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":GenChallenge,"urn:iso:15118:2:2010:MsgBody":DateTimeNow)', derivedBy='EXTENSION'. */ +#define dinPaymentDetailsResType_GenChallenge_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct dinPaymentDetailsResType { + /* element: "urn:iso:15118:2:2010:MsgBody":ResponseCode, urn:iso:15118:2:2010:MsgDataTypes,responseCodeType */ + dinresponseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2010:MsgBody":GenChallenge, urn:iso:15118:2:2010:MsgDataTypes,genChallengeType */ + struct { + exi_string_character_t characters[dinPaymentDetailsResType_GenChallenge_CHARACTERS_SIZE]; + uint16_t charactersLen; + } GenChallenge ; + /* element: "urn:iso:15118:2:2010:MsgBody":DateTimeNow, http://www.w3.org/2001/XMLSchema,long */ + int64_t DateTimeNow ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */ +#define dinKeyValueType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct dinKeyValueType { + /* element: "http://www.w3.org/2000/09/xmldsig#":DSAKeyValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */ + struct dinDSAKeyValueType DSAKeyValue ; + unsigned int DSAKeyValue_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":RSAKeyValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */ + struct dinRSAKeyValueType RSAKeyValue ; + unsigned int RSAKeyValue_isUsed:1; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[dinKeyValueType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,PowerDeliveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ReadyToChargeState,"urn:iso:15118:2:2010:MsgBody":ChargingProfile{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVPowerDeliveryParameter{0-1})', derivedBy='EXTENSION'. */ +struct dinPowerDeliveryReqType { + /* element: "urn:iso:15118:2:2010:MsgBody":ReadyToChargeState, http://www.w3.org/2001/XMLSchema,boolean */ + int ReadyToChargeState ; + /* element: "urn:iso:15118:2:2010:MsgBody":ChargingProfile, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ChargingProfileType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2010:MsgDataTypes":ProfileEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct dinChargingProfileType ChargingProfile ; + unsigned int ChargingProfile_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVPowerDeliveryParameter, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVPowerDeliveryParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct dinEVPowerDeliveryParameterType EVPowerDeliveryParameter ; + unsigned int EVPowerDeliveryParameter_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":DC_EVPowerDeliveryParameter, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVPowerDeliveryParameterType', base type name='EVPowerDeliveryParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2010:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2010:MsgDataTypes":ChargingComplete)', derivedBy='EXTENSION'. */ + struct dinDC_EVPowerDeliveryParameterType DC_EVPowerDeliveryParameter ; + unsigned int DC_EVPowerDeliveryParameter_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Certificate,"urn:iso:15118:2:2010:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ +#define dinCertificateChainType_Certificate_BYTES_SIZE 1200 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,certificateType is 1200 */ +struct dinCertificateChainType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":Certificate, urn:iso:15118:2:2010:MsgDataTypes,certificateType */ + struct { + uint8_t bytes[dinCertificateChainType_Certificate_BYTES_SIZE]; + uint16_t bytesLen; + } Certificate ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":SubCertificates, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SubCertificatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Certificate{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct dinSubCertificatesType SubCertificates ; + unsigned int SubCertificates_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ParameterType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":boolValue|"urn:iso:15118:2:2010:MsgDataTypes":byteValue|"urn:iso:15118:2:2010:MsgDataTypes":shortValue|"urn:iso:15118:2:2010:MsgDataTypes":intValue|"urn:iso:15118:2:2010:MsgDataTypes":physicalValue|"urn:iso:15118:2:2010:MsgDataTypes":stringValue)', derivedBy='RESTRICTION'. */ +#define dinParameterType_Name_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinParameterType_stringValue_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct dinParameterType { + /* attribute: Name {http://www.w3.org/2001/XMLSchema,string} */ + struct { + exi_string_character_t characters[dinParameterType_Name_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Name ; + /* attribute: ValueType {urn:iso:15118:2:2010:MsgDataTypes,valueType} */ + dinvalueType ValueType ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":boolValue, http://www.w3.org/2001/XMLSchema,boolean */ + int boolValue ; + unsigned int boolValue_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":byteValue, http://www.w3.org/2001/XMLSchema,byte */ + int8_t byteValue ; + unsigned int byteValue_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":shortValue, http://www.w3.org/2001/XMLSchema,short */ + int16_t shortValue ; + unsigned int shortValue_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":intValue, http://www.w3.org/2001/XMLSchema,int */ + int32_t intValue ; + unsigned int intValue_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":physicalValue, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType physicalValue ; + unsigned int physicalValue_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":stringValue, http://www.w3.org/2001/XMLSchema,string */ + struct { + exi_string_character_t characters[dinParameterType_stringValue_CHARACTERS_SIZE]; + uint16_t charactersLen; + } stringValue ; + unsigned int stringValue_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2010:MsgDataTypes":Parameter{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinParameterSetType_Parameter_ARRAY_SIZE 16 +struct dinParameterSetType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":ParameterSetID, http://www.w3.org/2001/XMLSchema,short */ + int16_t ParameterSetID ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":Parameter, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ParameterType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":boolValue|"urn:iso:15118:2:2010:MsgDataTypes":byteValue|"urn:iso:15118:2:2010:MsgDataTypes":shortValue|"urn:iso:15118:2:2010:MsgDataTypes":intValue|"urn:iso:15118:2:2010:MsgDataTypes":physicalValue|"urn:iso:15118:2:2010:MsgDataTypes":stringValue)', derivedBy='RESTRICTION'. */ + struct { + struct dinParameterType array[dinParameterSetType_Parameter_ARRAY_SIZE]; + uint16_t arrayLen; + } Parameter; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CurrentDemandReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":DC_EVStatus,"urn:iso:15118:2:2010:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2010:MsgBody":EVMaximumVoltageLimit{0-1},"urn:iso:15118:2:2010:MsgBody":EVMaximumCurrentLimit{0-1},"urn:iso:15118:2:2010:MsgBody":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2010:MsgBody":BulkChargingComplete{0-1},"urn:iso:15118:2:2010:MsgBody":ChargingComplete,"urn:iso:15118:2:2010:MsgBody":RemainingTimeToFullSoC{0-1},"urn:iso:15118:2:2010:MsgBody":RemainingTimeToBulkSoC{0-1},"urn:iso:15118:2:2010:MsgBody":EVTargetVoltage)', derivedBy='EXTENSION'. */ +struct dinCurrentDemandReqType { + /* element: "urn:iso:15118:2:2010:MsgBody":DC_EVStatus, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":EVReady,"urn:iso:15118:2:2010:MsgDataTypes":EVCabinConditioning{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVRESSConditioning{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2010:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */ + struct dinDC_EVStatusType DC_EVStatus ; + /* element: "urn:iso:15118:2:2010:MsgBody":EVTargetCurrent, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVTargetCurrent ; + /* element: "urn:iso:15118:2:2010:MsgBody":EVMaximumVoltageLimit, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVMaximumVoltageLimit ; + unsigned int EVMaximumVoltageLimit_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgBody":EVMaximumCurrentLimit, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVMaximumCurrentLimit ; + unsigned int EVMaximumCurrentLimit_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgBody":EVMaximumPowerLimit, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVMaximumPowerLimit ; + unsigned int EVMaximumPowerLimit_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgBody":BulkChargingComplete, http://www.w3.org/2001/XMLSchema,boolean */ + int BulkChargingComplete ; + unsigned int BulkChargingComplete_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgBody":ChargingComplete, http://www.w3.org/2001/XMLSchema,boolean */ + int ChargingComplete ; + /* element: "urn:iso:15118:2:2010:MsgBody":RemainingTimeToFullSoC, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType RemainingTimeToFullSoC ; + unsigned int RemainingTimeToFullSoC_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgBody":RemainingTimeToBulkSoC, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType RemainingTimeToBulkSoC ; + unsigned int RemainingTimeToBulkSoC_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgBody":EVTargetVoltage, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVTargetVoltage ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,PreChargeReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":DC_EVStatus,"urn:iso:15118:2:2010:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2010:MsgBody":EVTargetCurrent)', derivedBy='EXTENSION'. */ +struct dinPreChargeReqType { + /* element: "urn:iso:15118:2:2010:MsgBody":DC_EVStatus, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":EVReady,"urn:iso:15118:2:2010:MsgDataTypes":EVCabinConditioning{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVRESSConditioning{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2010:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */ + struct dinDC_EVStatusType DC_EVStatus ; + /* element: "urn:iso:15118:2:2010:MsgBody":EVTargetVoltage, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVTargetVoltage ; + /* element: "urn:iso:15118:2:2010:MsgBody":EVTargetCurrent, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct dinPhysicalValueType EVTargetCurrent ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ChargeParameterDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":EVRequestedEnergyTransferType,"urn:iso:15118:2:2010:MsgDataTypes":EVChargeParameter)', derivedBy='EXTENSION'. */ +struct dinChargeParameterDiscoveryReqType { + /* element: "urn:iso:15118:2:2010:MsgBody":EVRequestedEnergyTransferType, urn:iso:15118:2:2010:MsgDataTypes,EVRequestedEnergyTransferType */ + dinEVRequestedEnergyTransferType EVRequestedEnergyTransferType ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVChargeParameter, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVChargeParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct dinEVChargeParameterType EVChargeParameter ; + unsigned int EVChargeParameter_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":AC_EVChargeParameter, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,AC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":DepartureTime,"urn:iso:15118:2:2010:MsgDataTypes":EAmount,"urn:iso:15118:2:2010:MsgDataTypes":EVMaxVoltage,"urn:iso:15118:2:2010:MsgDataTypes":EVMaxCurrent,"urn:iso:15118:2:2010:MsgDataTypes":EVMinCurrent)', derivedBy='EXTENSION'. */ + struct dinAC_EVChargeParameterType AC_EVChargeParameter ; + unsigned int AC_EVChargeParameter_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":DC_EVChargeParameter, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2010:MsgDataTypes":EVMaximumCurrentLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVMaximumVoltageLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVEnergyCapacity{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVEnergyRequest{0-1},"urn:iso:15118:2:2010:MsgDataTypes":FullSOC{0-1},"urn:iso:15118:2:2010:MsgDataTypes":BulkSOC{0-1})', derivedBy='EXTENSION'. */ + struct dinDC_EVChargeParameterType DC_EVChargeParameter ; + unsigned int DC_EVChargeParameter_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ConsumptionCostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":startValue,"urn:iso:15118:2:2010:MsgDataTypes":Cost{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinConsumptionCostType_Cost_ARRAY_SIZE 5 +struct dinConsumptionCostType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":startValue, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t startValue ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":Cost, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,CostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":costKind,"urn:iso:15118:2:2010:MsgDataTypes":amount,"urn:iso:15118:2:2010:MsgDataTypes":amountMultiplier{0-1})', derivedBy='RESTRICTION'. */ + struct { + struct dinCostType array[dinConsumptionCostType_Cost_ARRAY_SIZE]; + uint16_t arrayLen; + } Cost; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ServiceTag,"urn:iso:15118:2:2010:MsgDataTypes":FreeService)', derivedBy='RESTRICTION'. */ +struct dinServiceType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":ServiceTag, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceTagType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ServiceID,"urn:iso:15118:2:2010:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2010:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2010:MsgDataTypes":ServiceScope{0-1})', derivedBy='RESTRICTION'. */ + struct dinServiceTagType ServiceTag ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":FreeService, http://www.w3.org/2001/XMLSchema,boolean */ + int FreeService ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceTagListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Service{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinServiceTagListType_Service_ARRAY_SIZE 8 +struct dinServiceTagListType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":Service, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ServiceTag,"urn:iso:15118:2:2010:MsgDataTypes":FreeService)', derivedBy='RESTRICTION'. */ + struct { + struct dinServiceType array[dinServiceTagListType_Service_ARRAY_SIZE]; + uint16_t arrayLen; + } Service; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,SessionSetupResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":EVSEID,"urn:iso:15118:2:2010:MsgBody":DateTimeNow{0-1})', derivedBy='EXTENSION'. */ +#define dinSessionSetupResType_EVSEID_BYTES_SIZE 32 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,evseIDType is 32 */ +struct dinSessionSetupResType { + /* element: "urn:iso:15118:2:2010:MsgBody":ResponseCode, urn:iso:15118:2:2010:MsgDataTypes,responseCodeType */ + dinresponseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2010:MsgBody":EVSEID, urn:iso:15118:2:2010:MsgDataTypes,evseIDType */ + struct { + uint8_t bytes[dinSessionSetupResType_EVSEID_BYTES_SIZE]; + uint16_t bytesLen; + } EVSEID ; + /* element: "urn:iso:15118:2:2010:MsgBody":DateTimeNow, http://www.w3.org/2001/XMLSchema,long */ + int64_t DateTimeNow ; + unsigned int DateTimeNow_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,MeteringReceiptResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":AC_EVSEStatus)', derivedBy='EXTENSION'. */ +struct dinMeteringReceiptResType { + /* element: "urn:iso:15118:2:2010:MsgBody":ResponseCode, urn:iso:15118:2:2010:MsgDataTypes,responseCodeType */ + dinresponseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2010:MsgBody":AC_EVSEStatus, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":PowerSwitchClosed,"urn:iso:15118:2:2010:MsgDataTypes":RCD,"urn:iso:15118:2:2010:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2010:MsgDataTypes":EVSENotification)', derivedBy='EXTENSION'. */ + struct dinAC_EVSEStatusType AC_EVSEStatus ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceParameterListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ParameterSet{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinServiceParameterListType_ParameterSet_ARRAY_SIZE 5 +struct dinServiceParameterListType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":ParameterSet, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2010:MsgDataTypes":Parameter{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct { + struct dinParameterSetType array[dinServiceParameterListType_ParameterSet_ARRAY_SIZE]; + uint16_t arrayLen; + } ParameterSet; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CertificateUpdateReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2010:MsgBody":ContractID,"urn:iso:15118:2:2010:MsgBody":ListOfRootCertificateIDs,"urn:iso:15118:2:2010:MsgBody":DHParams)', derivedBy='EXTENSION'. */ +#define dinCertificateUpdateReqType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinCertificateUpdateReqType_ContractID_CHARACTERS_SIZE 24 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,contractIDType is 24 */ +#define dinCertificateUpdateReqType_DHParams_BYTES_SIZE 256 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,dHParamsType is 256 */ +struct dinCertificateUpdateReqType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,IDREF} */ + struct { + exi_string_character_t characters[dinCertificateUpdateReqType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Certificate,"urn:iso:15118:2:2010:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ + struct dinCertificateChainType ContractSignatureCertChain ; + /* element: "urn:iso:15118:2:2010:MsgBody":ContractID, urn:iso:15118:2:2010:MsgDataTypes,contractIDType */ + struct { + exi_string_character_t characters[dinCertificateUpdateReqType_ContractID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ContractID ; + /* element: "urn:iso:15118:2:2010:MsgBody":ListOfRootCertificateIDs, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":RootCertificateID{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct dinListOfRootCertificateIDsType ListOfRootCertificateIDs ; + /* element: "urn:iso:15118:2:2010:MsgBody":DHParams, urn:iso:15118:2:2010:MsgDataTypes,dHParamsType */ + struct { + uint8_t bytes[dinCertificateUpdateReqType_DHParams_BYTES_SIZE]; + uint16_t bytesLen; + } DHParams ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ServicePaymentSelectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */ +struct dinServicePaymentSelectionResType { + /* element: "urn:iso:15118:2:2010:MsgBody":ResponseCode, urn:iso:15118:2:2010:MsgDataTypes,responseCodeType */ + dinresponseCodeType ResponseCode ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define dinKeyInfoType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinKeyInfoType_KeyName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinKeyInfoType_KeyName_ARRAY_SIZE 1 +#define dinKeyInfoType_KeyValue_ARRAY_SIZE 1 +#define dinKeyInfoType_RetrievalMethod_ARRAY_SIZE 1 +#define dinKeyInfoType_X509Data_ARRAY_SIZE 1 +#define dinKeyInfoType_PGPData_ARRAY_SIZE 1 +#define dinKeyInfoType_SPKIData_ARRAY_SIZE 1 +#define dinKeyInfoType_MgmtData_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinKeyInfoType_MgmtData_ARRAY_SIZE 1 +#define dinKeyInfoType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct dinKeyInfoType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[dinKeyInfoType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":KeyName, http://www.w3.org/2001/XMLSchema,string */ + struct { + struct { + exi_string_character_t characters[dinKeyInfoType_KeyName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } array[dinKeyInfoType_KeyName_ARRAY_SIZE]; + uint16_t arrayLen; + } KeyName; + /* element: "http://www.w3.org/2000/09/xmldsig#":KeyValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */ + struct { + struct dinKeyValueType array[dinKeyInfoType_KeyValue_ARRAY_SIZE]; + uint16_t arrayLen; + } KeyValue; + /* element: "http://www.w3.org/2000/09/xmldsig#":RetrievalMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */ + struct { + struct dinRetrievalMethodType array[dinKeyInfoType_RetrievalMethod_ARRAY_SIZE]; + uint16_t arrayLen; + } RetrievalMethod; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509Data, Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct dinX509DataType array[dinKeyInfoType_X509Data_ARRAY_SIZE]; + uint16_t arrayLen; + } X509Data; + /* element: "http://www.w3.org/2000/09/xmldsig#":PGPData, Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */ + struct { + struct dinPGPDataType array[dinKeyInfoType_PGPData_ARRAY_SIZE]; + uint16_t arrayLen; + } PGPData; + /* element: "http://www.w3.org/2000/09/xmldsig#":SPKIData, Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct dinSPKIDataType array[dinKeyInfoType_SPKIData_ARRAY_SIZE]; + uint16_t arrayLen; + } SPKIData; + /* element: "http://www.w3.org/2000/09/xmldsig#":MgmtData, http://www.w3.org/2001/XMLSchema,string */ + struct { + struct { + exi_string_character_t characters[dinKeyInfoType_MgmtData_CHARACTERS_SIZE]; + uint16_t charactersLen; + } array[dinKeyInfoType_MgmtData_ARRAY_SIZE]; + uint16_t arrayLen; + } MgmtData; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[dinKeyInfoType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,PaymentDetailsReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ContractID,"urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain)', derivedBy='EXTENSION'. */ +#define dinPaymentDetailsReqType_ContractID_CHARACTERS_SIZE 24 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,contractIDType is 24 */ +struct dinPaymentDetailsReqType { + /* element: "urn:iso:15118:2:2010:MsgBody":ContractID, urn:iso:15118:2:2010:MsgDataTypes,contractIDType */ + struct { + exi_string_character_t characters[dinPaymentDetailsReqType_ContractID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ContractID ; + /* element: "urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Certificate,"urn:iso:15118:2:2010:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ + struct dinCertificateChainType ContractSignatureCertChain ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CableCheckResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */ +struct dinCableCheckResType { + /* element: "urn:iso:15118:2:2010:MsgBody":ResponseCode, urn:iso:15118:2:2010:MsgDataTypes,responseCodeType */ + dinresponseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVSEStatusCode,"urn:iso:15118:2:2010:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2010:MsgDataTypes":EVSENotification)', derivedBy='EXTENSION'. */ + struct dinDC_EVSEStatusType DC_EVSEStatus ; + /* element: "urn:iso:15118:2:2010:MsgBody":EVSEProcessing, urn:iso:15118:2:2010:MsgDataTypes,EVSEProcessingType */ + dinEVSEProcessingType EVSEProcessing ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CertificateInstallationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2010:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2010:MsgBody":DHParams,"urn:iso:15118:2:2010:MsgBody":ContractID)', derivedBy='EXTENSION'. */ +#define dinCertificateInstallationResType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinCertificateInstallationResType_ContractSignatureEncryptedPrivateKey_BYTES_SIZE 128 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,privateKeyType is 128 */ +#define dinCertificateInstallationResType_DHParams_BYTES_SIZE 256 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,dHParamsType is 256 */ +#define dinCertificateInstallationResType_ContractID_CHARACTERS_SIZE 24 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,contractIDType is 24 */ +struct dinCertificateInstallationResType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,IDREF} */ + struct { + exi_string_character_t characters[dinCertificateInstallationResType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + /* element: "urn:iso:15118:2:2010:MsgBody":ResponseCode, urn:iso:15118:2:2010:MsgDataTypes,responseCodeType */ + dinresponseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Certificate,"urn:iso:15118:2:2010:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ + struct dinCertificateChainType ContractSignatureCertChain ; + /* element: "urn:iso:15118:2:2010:MsgBody":ContractSignatureEncryptedPrivateKey, urn:iso:15118:2:2010:MsgDataTypes,privateKeyType */ + struct { + uint8_t bytes[dinCertificateInstallationResType_ContractSignatureEncryptedPrivateKey_BYTES_SIZE]; + uint16_t bytesLen; + } ContractSignatureEncryptedPrivateKey ; + /* element: "urn:iso:15118:2:2010:MsgBody":DHParams, urn:iso:15118:2:2010:MsgDataTypes,dHParamsType */ + struct { + uint8_t bytes[dinCertificateInstallationResType_DHParams_BYTES_SIZE]; + uint16_t bytesLen; + } DHParams ; + /* element: "urn:iso:15118:2:2010:MsgBody":ContractID, urn:iso:15118:2:2010:MsgDataTypes,contractIDType */ + struct { + exi_string_character_t characters[dinCertificateInstallationResType_ContractID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ContractID ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ServiceDetailResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":ServiceID,"urn:iso:15118:2:2010:MsgBody":ServiceParameterList{0-1})', derivedBy='EXTENSION'. */ +struct dinServiceDetailResType { + /* element: "urn:iso:15118:2:2010:MsgBody":ResponseCode, urn:iso:15118:2:2010:MsgDataTypes,responseCodeType */ + dinresponseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2010:MsgBody":ServiceID, urn:iso:15118:2:2010:MsgDataTypes,serviceIDType */ + uint16_t ServiceID ; + /* element: "urn:iso:15118:2:2010:MsgBody":ServiceParameterList, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceParameterListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ParameterSet{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct dinServiceParameterListType ServiceParameterList ; + unsigned int ServiceParameterList_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CertificateUpdateResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2010:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2010:MsgBody":DHParams,"urn:iso:15118:2:2010:MsgBody":ContractID,"urn:iso:15118:2:2010:MsgBody":RetryCounter)', derivedBy='EXTENSION'. */ +#define dinCertificateUpdateResType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinCertificateUpdateResType_ContractSignatureEncryptedPrivateKey_BYTES_SIZE 128 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,privateKeyType is 128 */ +#define dinCertificateUpdateResType_DHParams_BYTES_SIZE 256 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,dHParamsType is 256 */ +#define dinCertificateUpdateResType_ContractID_CHARACTERS_SIZE 24 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,contractIDType is 24 */ +struct dinCertificateUpdateResType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,IDREF} */ + struct { + exi_string_character_t characters[dinCertificateUpdateResType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + /* element: "urn:iso:15118:2:2010:MsgBody":ResponseCode, urn:iso:15118:2:2010:MsgDataTypes,responseCodeType */ + dinresponseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Certificate,"urn:iso:15118:2:2010:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ + struct dinCertificateChainType ContractSignatureCertChain ; + /* element: "urn:iso:15118:2:2010:MsgBody":ContractSignatureEncryptedPrivateKey, urn:iso:15118:2:2010:MsgDataTypes,privateKeyType */ + struct { + uint8_t bytes[dinCertificateUpdateResType_ContractSignatureEncryptedPrivateKey_BYTES_SIZE]; + uint16_t bytesLen; + } ContractSignatureEncryptedPrivateKey ; + /* element: "urn:iso:15118:2:2010:MsgBody":DHParams, urn:iso:15118:2:2010:MsgDataTypes,dHParamsType */ + struct { + uint8_t bytes[dinCertificateUpdateResType_DHParams_BYTES_SIZE]; + uint16_t bytesLen; + } DHParams ; + /* element: "urn:iso:15118:2:2010:MsgBody":ContractID, urn:iso:15118:2:2010:MsgDataTypes,contractIDType */ + struct { + exi_string_character_t characters[dinCertificateUpdateResType_ContractID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ContractID ; + /* element: "urn:iso:15118:2:2010:MsgBody":RetryCounter, http://www.w3.org/2001/XMLSchema,short */ + int16_t RetryCounter ; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SalesTariffEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2010:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2010:MsgDataTypes":EPriceLevel,"urn:iso:15118:2:2010:MsgDataTypes":ConsumptionCost{0-UNBOUNDED}))', derivedBy='EXTENSION'. */ +#define dinSalesTariffEntryType_ConsumptionCost_ARRAY_SIZE 5 +struct dinSalesTariffEntryType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":TimeInterval, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct dinIntervalType TimeInterval ; + unsigned int TimeInterval_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":RelativeTimeInterval, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":start,"urn:iso:15118:2:2010:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */ + struct dinRelativeTimeIntervalType RelativeTimeInterval ; + unsigned int RelativeTimeInterval_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EPriceLevel, http://www.w3.org/2001/XMLSchema,unsignedByte */ + uint8_t EPriceLevel ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":ConsumptionCost, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ConsumptionCostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":startValue,"urn:iso:15118:2:2010:MsgDataTypes":Cost{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct { + struct dinConsumptionCostType array[dinSalesTariffEntryType_ConsumptionCost_ARRAY_SIZE]; + uint16_t arrayLen; + } ConsumptionCost; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ServiceDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":PaymentOptions,"urn:iso:15118:2:2010:MsgBody":ChargeService,"urn:iso:15118:2:2010:MsgBody":ServiceList{0-1})', derivedBy='EXTENSION'. */ +struct dinServiceDiscoveryResType { + /* element: "urn:iso:15118:2:2010:MsgBody":ResponseCode, urn:iso:15118:2:2010:MsgDataTypes,responseCodeType */ + dinresponseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2010:MsgBody":PaymentOptions, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PaymentOptionsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":PaymentOption{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct dinPaymentOptionsType PaymentOptions ; + /* element: "urn:iso:15118:2:2010:MsgBody":ChargeService, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceChargeType', base type name='ServiceType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2010:MsgDataTypes":ServiceTag,"urn:iso:15118:2:2010:MsgDataTypes":FreeService),("urn:iso:15118:2:2010:MsgDataTypes":EnergyTransferType))', derivedBy='EXTENSION'. */ + struct dinServiceChargeType ChargeService ; + /* element: "urn:iso:15118:2:2010:MsgBody":ServiceList, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceTagListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Service{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct dinServiceTagListType ServiceList ; + unsigned int ServiceList_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinSignatureType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinSignatureType_Object_ARRAY_SIZE 1 +struct dinSignatureType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[dinSignatureType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":SignedInfo, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct dinSignedInfoType SignedInfo ; + /* element: "http://www.w3.org/2000/09/xmldsig#":SignatureValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct dinSignatureValueType SignatureValue ; + /* element: "http://www.w3.org/2000/09/xmldsig#":KeyInfo, Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct dinKeyInfoType KeyInfo ; + unsigned int KeyInfo_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Object, Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct dinObjectType array[dinSignatureType_Object_ARRAY_SIZE]; + uint16_t arrayLen; + } Object; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SalesTariffType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SalesTariffID,"urn:iso:15118:2:2010:MsgDataTypes":SalesTariffDescription{0-1},"urn:iso:15118:2:2010:MsgDataTypes":NumEPriceLevels,"urn:iso:15118:2:2010:MsgDataTypes":SalesTariffEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define dinSalesTariffType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinSalesTariffType_SalesTariffDescription_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,tariffDescriptionType is 32 */ +#define dinSalesTariffType_SalesTariffEntry_ARRAY_SIZE 5 +struct dinSalesTariffType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,IDREF} */ + struct { + exi_string_character_t characters[dinSalesTariffType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":SalesTariffID, urn:iso:15118:2:2010:MsgDataTypes,SAIDType */ + int16_t SalesTariffID ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":SalesTariffDescription, urn:iso:15118:2:2010:MsgDataTypes,tariffDescriptionType */ + struct { + exi_string_character_t characters[dinSalesTariffType_SalesTariffDescription_CHARACTERS_SIZE]; + uint16_t charactersLen; + } SalesTariffDescription ; + unsigned int SalesTariffDescription_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":NumEPriceLevels, http://www.w3.org/2001/XMLSchema,unsignedByte */ + uint8_t NumEPriceLevels ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":SalesTariffEntry, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SalesTariffEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2010:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2010:MsgDataTypes":EPriceLevel,"urn:iso:15118:2:2010:MsgDataTypes":ConsumptionCost{0-UNBOUNDED}))', derivedBy='EXTENSION'. */ + struct { + struct dinSalesTariffEntryType array[dinSalesTariffType_SalesTariffEntry_ARRAY_SIZE]; + uint16_t arrayLen; + } SalesTariffEntry; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgHeader,MessageHeaderType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgHeader":SessionID,"urn:iso:15118:2:2010:MsgHeader":Notification{0-1},"http://www.w3.org/2000/09/xmldsig#":Signature{0-1})', derivedBy='RESTRICTION'. */ +#define dinMessageHeaderType_SessionID_BYTES_SIZE 8 /* XML schema facet length for urn:iso:15118:2:2010:MsgDataTypes,sessionIDType is 8 */ +struct dinMessageHeaderType { + /* element: "urn:iso:15118:2:2010:MsgHeader":SessionID, urn:iso:15118:2:2010:MsgDataTypes,sessionIDType */ + struct { + uint8_t bytes[dinMessageHeaderType_SessionID_BYTES_SIZE]; + uint16_t bytesLen; + } SessionID ; + /* element: "urn:iso:15118:2:2010:MsgHeader":Notification, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,NotificationType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":FaultCode,"urn:iso:15118:2:2010:MsgDataTypes":FaultMsg{0-1})', derivedBy='RESTRICTION'. */ + struct dinNotificationType Notification ; + unsigned int Notification_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Signature, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct dinSignatureType Signature ; + unsigned int Signature_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SAScheduleTupleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2010:MsgDataTypes":PMaxSchedule,"urn:iso:15118:2:2010:MsgDataTypes":SalesTariff{0-1})', derivedBy='RESTRICTION'. */ +struct dinSAScheduleTupleType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":SAScheduleTupleID, urn:iso:15118:2:2010:MsgDataTypes,SAIDType */ + int16_t SAScheduleTupleID ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":PMaxSchedule, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PMaxScheduleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":PMaxScheduleID,"urn:iso:15118:2:2010:MsgDataTypes":PMaxScheduleEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct dinPMaxScheduleType PMaxSchedule ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":SalesTariff, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SalesTariffType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SalesTariffID,"urn:iso:15118:2:2010:MsgDataTypes":SalesTariffDescription{0-1},"urn:iso:15118:2:2010:MsgDataTypes":NumEPriceLevels,"urn:iso:15118:2:2010:MsgDataTypes":SalesTariffEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct dinSalesTariffType SalesTariff ; + unsigned int SalesTariff_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SAScheduleListType', base type name='SASchedulesType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SAScheduleTuple{1-UNBOUNDED})', derivedBy='EXTENSION'. */ +#define dinSAScheduleListType_SAScheduleTuple_ARRAY_SIZE 5 +struct dinSAScheduleListType { + /* element: "urn:iso:15118:2:2010:MsgDataTypes":SAScheduleTuple, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SAScheduleTupleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2010:MsgDataTypes":PMaxSchedule,"urn:iso:15118:2:2010:MsgDataTypes":SalesTariff{0-1})', derivedBy='RESTRICTION'. */ + struct { + struct dinSAScheduleTupleType array[dinSAScheduleListType_SAScheduleTuple_ARRAY_SIZE]; + uint16_t arrayLen; + } SAScheduleTuple; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ChargeParameterDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":EVSEProcessing,"urn:iso:15118:2:2010:MsgDataTypes":SASchedules,"urn:iso:15118:2:2010:MsgDataTypes":EVSEChargeParameter)', derivedBy='EXTENSION'. */ +struct dinChargeParameterDiscoveryResType { + /* element: "urn:iso:15118:2:2010:MsgBody":ResponseCode, urn:iso:15118:2:2010:MsgDataTypes,responseCodeType */ + dinresponseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2010:MsgBody":EVSEProcessing, urn:iso:15118:2:2010:MsgDataTypes,EVSEProcessingType */ + dinEVSEProcessingType EVSEProcessing ; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":SASchedules, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SASchedulesType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct dinSASchedulesType SASchedules ; + unsigned int SASchedules_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":SAScheduleList, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SAScheduleListType', base type name='SASchedulesType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SAScheduleTuple{1-UNBOUNDED})', derivedBy='EXTENSION'. */ + struct dinSAScheduleListType SAScheduleList ; + unsigned int SAScheduleList_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":EVSEChargeParameter, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVSEChargeParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct dinEVSEChargeParameterType EVSEChargeParameter ; + unsigned int EVSEChargeParameter_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":AC_EVSEChargeParameter, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,AC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":AC_EVSEStatus,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaxVoltage,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaxCurrent,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMinCurrent)', derivedBy='EXTENSION'. */ + struct dinAC_EVSEChargeParameterType AC_EVSEChargeParameter ; + unsigned int AC_EVSEChargeParameter_isUsed:1; + /* element: "urn:iso:15118:2:2010:MsgDataTypes":DC_EVSEChargeParameter, Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaximumCurrentLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaximumPowerLimit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaximumVoltageLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMinimumCurrentLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMinimumVoltageLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2010:MsgDataTypes":EVSEEnergyToBeDelivered{0-1})', derivedBy='EXTENSION'. */ + struct dinDC_EVSEChargeParameterType DC_EVSEChargeParameter ; + unsigned int DC_EVSEChargeParameter_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDef,BodyType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDef":BodyElement{0-1})', derivedBy='RESTRICTION'. */ +struct dinBodyType { + /* substitutionGroup */ +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + union { +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + /* element: "urn:iso:15118:2:2010:MsgDef":BodyElement, Complex type name='urn:iso:15118:2:2010:MsgDef,BodyBaseType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct dinBodyBaseType BodyElement ; + /* element: "urn:iso:15118:2:2010:MsgBody":SessionSetupReq, Complex type name='urn:iso:15118:2:2010:MsgBody,SessionSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":EVCCID)', derivedBy='EXTENSION'. */ + struct dinSessionSetupReqType SessionSetupReq ; + /* element: "urn:iso:15118:2:2010:MsgBody":SessionSetupRes, Complex type name='urn:iso:15118:2:2010:MsgBody,SessionSetupResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":EVSEID,"urn:iso:15118:2:2010:MsgBody":DateTimeNow{0-1})', derivedBy='EXTENSION'. */ + struct dinSessionSetupResType SessionSetupRes ; + /* element: "urn:iso:15118:2:2010:MsgBody":ServiceDiscoveryReq, Complex type name='urn:iso:15118:2:2010:MsgBody,ServiceDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ServiceScope{0-1},"urn:iso:15118:2:2010:MsgBody":ServiceCategory{0-1})', derivedBy='EXTENSION'. */ + struct dinServiceDiscoveryReqType ServiceDiscoveryReq ; + /* element: "urn:iso:15118:2:2010:MsgBody":ServiceDiscoveryRes, Complex type name='urn:iso:15118:2:2010:MsgBody,ServiceDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":PaymentOptions,"urn:iso:15118:2:2010:MsgBody":ChargeService,"urn:iso:15118:2:2010:MsgBody":ServiceList{0-1})', derivedBy='EXTENSION'. */ + struct dinServiceDiscoveryResType ServiceDiscoveryRes ; + /* element: "urn:iso:15118:2:2010:MsgBody":ServiceDetailReq, Complex type name='urn:iso:15118:2:2010:MsgBody,ServiceDetailReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ServiceID)', derivedBy='EXTENSION'. */ + struct dinServiceDetailReqType ServiceDetailReq ; + /* element: "urn:iso:15118:2:2010:MsgBody":ServiceDetailRes, Complex type name='urn:iso:15118:2:2010:MsgBody,ServiceDetailResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":ServiceID,"urn:iso:15118:2:2010:MsgBody":ServiceParameterList{0-1})', derivedBy='EXTENSION'. */ + struct dinServiceDetailResType ServiceDetailRes ; + /* element: "urn:iso:15118:2:2010:MsgBody":ServicePaymentSelectionReq, Complex type name='urn:iso:15118:2:2010:MsgBody,ServicePaymentSelectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":SelectedPaymentOption,"urn:iso:15118:2:2010:MsgBody":SelectedServiceList)', derivedBy='EXTENSION'. */ + struct dinServicePaymentSelectionReqType ServicePaymentSelectionReq ; + /* element: "urn:iso:15118:2:2010:MsgBody":ServicePaymentSelectionRes, Complex type name='urn:iso:15118:2:2010:MsgBody,ServicePaymentSelectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */ + struct dinServicePaymentSelectionResType ServicePaymentSelectionRes ; + /* element: "urn:iso:15118:2:2010:MsgBody":PaymentDetailsReq, Complex type name='urn:iso:15118:2:2010:MsgBody,PaymentDetailsReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ContractID,"urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain)', derivedBy='EXTENSION'. */ + struct dinPaymentDetailsReqType PaymentDetailsReq ; + /* element: "urn:iso:15118:2:2010:MsgBody":PaymentDetailsRes, Complex type name='urn:iso:15118:2:2010:MsgBody,PaymentDetailsResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":GenChallenge,"urn:iso:15118:2:2010:MsgBody":DateTimeNow)', derivedBy='EXTENSION'. */ + struct dinPaymentDetailsResType PaymentDetailsRes ; + /* element: "urn:iso:15118:2:2010:MsgBody":ContractAuthenticationReq, Complex type name='urn:iso:15118:2:2010:MsgBody,ContractAuthenticationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":GenChallenge{0-1})', derivedBy='EXTENSION'. */ + struct dinContractAuthenticationReqType ContractAuthenticationReq ; + /* element: "urn:iso:15118:2:2010:MsgBody":ContractAuthenticationRes, Complex type name='urn:iso:15118:2:2010:MsgBody,ContractAuthenticationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */ + struct dinContractAuthenticationResType ContractAuthenticationRes ; + /* element: "urn:iso:15118:2:2010:MsgBody":ChargeParameterDiscoveryReq, Complex type name='urn:iso:15118:2:2010:MsgBody,ChargeParameterDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":EVRequestedEnergyTransferType,"urn:iso:15118:2:2010:MsgDataTypes":EVChargeParameter)', derivedBy='EXTENSION'. */ + struct dinChargeParameterDiscoveryReqType ChargeParameterDiscoveryReq ; + /* element: "urn:iso:15118:2:2010:MsgBody":ChargeParameterDiscoveryRes, Complex type name='urn:iso:15118:2:2010:MsgBody,ChargeParameterDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":EVSEProcessing,"urn:iso:15118:2:2010:MsgDataTypes":SASchedules,"urn:iso:15118:2:2010:MsgDataTypes":EVSEChargeParameter)', derivedBy='EXTENSION'. */ + struct dinChargeParameterDiscoveryResType ChargeParameterDiscoveryRes ; + /* element: "urn:iso:15118:2:2010:MsgBody":PowerDeliveryReq, Complex type name='urn:iso:15118:2:2010:MsgBody,PowerDeliveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ReadyToChargeState,"urn:iso:15118:2:2010:MsgBody":ChargingProfile{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVPowerDeliveryParameter{0-1})', derivedBy='EXTENSION'. */ + struct dinPowerDeliveryReqType PowerDeliveryReq ; + /* element: "urn:iso:15118:2:2010:MsgBody":PowerDeliveryRes, Complex type name='urn:iso:15118:2:2010:MsgBody,PowerDeliveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */ + struct dinPowerDeliveryResType PowerDeliveryRes ; + /* element: "urn:iso:15118:2:2010:MsgBody":ChargingStatusReq, Complex type name='urn:iso:15118:2:2010:MsgBody,ChargingStatusReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct dinChargingStatusReqType ChargingStatusReq ; + /* element: "urn:iso:15118:2:2010:MsgBody":ChargingStatusRes, Complex type name='urn:iso:15118:2:2010:MsgBody,ChargingStatusResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":EVSEID,"urn:iso:15118:2:2010:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2010:MsgBody":EVSEMaxCurrent{0-1},"urn:iso:15118:2:2010:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2010:MsgBody":ReceiptRequired,"urn:iso:15118:2:2010:MsgBody":AC_EVSEStatus)', derivedBy='EXTENSION'. */ + struct dinChargingStatusResType ChargingStatusRes ; + /* element: "urn:iso:15118:2:2010:MsgBody":MeteringReceiptReq, Complex type name='urn:iso:15118:2:2010:MsgBody,MeteringReceiptReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":SessionID,"urn:iso:15118:2:2010:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2010:MsgBody":MeterInfo)', derivedBy='EXTENSION'. */ + struct dinMeteringReceiptReqType MeteringReceiptReq ; + /* element: "urn:iso:15118:2:2010:MsgBody":MeteringReceiptRes, Complex type name='urn:iso:15118:2:2010:MsgBody,MeteringReceiptResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":AC_EVSEStatus)', derivedBy='EXTENSION'. */ + struct dinMeteringReceiptResType MeteringReceiptRes ; + /* element: "urn:iso:15118:2:2010:MsgBody":SessionStopReq, Complex type name='urn:iso:15118:2:2010:MsgBody,SessionStopType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct dinSessionStopType SessionStopReq ; + /* element: "urn:iso:15118:2:2010:MsgBody":SessionStopRes, Complex type name='urn:iso:15118:2:2010:MsgBody,SessionStopResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */ + struct dinSessionStopResType SessionStopRes ; + /* element: "urn:iso:15118:2:2010:MsgBody":CertificateUpdateReq, Complex type name='urn:iso:15118:2:2010:MsgBody,CertificateUpdateReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2010:MsgBody":ContractID,"urn:iso:15118:2:2010:MsgBody":ListOfRootCertificateIDs,"urn:iso:15118:2:2010:MsgBody":DHParams)', derivedBy='EXTENSION'. */ + struct dinCertificateUpdateReqType CertificateUpdateReq ; + /* element: "urn:iso:15118:2:2010:MsgBody":CertificateUpdateRes, Complex type name='urn:iso:15118:2:2010:MsgBody,CertificateUpdateResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2010:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2010:MsgBody":DHParams,"urn:iso:15118:2:2010:MsgBody":ContractID,"urn:iso:15118:2:2010:MsgBody":RetryCounter)', derivedBy='EXTENSION'. */ + struct dinCertificateUpdateResType CertificateUpdateRes ; + /* element: "urn:iso:15118:2:2010:MsgBody":CertificateInstallationReq, Complex type name='urn:iso:15118:2:2010:MsgBody,CertificateInstallationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":OEMProvisioningCert,"urn:iso:15118:2:2010:MsgBody":ListOfRootCertificateIDs,"urn:iso:15118:2:2010:MsgBody":DHParams)', derivedBy='EXTENSION'. */ + struct dinCertificateInstallationReqType CertificateInstallationReq ; + /* element: "urn:iso:15118:2:2010:MsgBody":CertificateInstallationRes, Complex type name='urn:iso:15118:2:2010:MsgBody,CertificateInstallationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2010:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2010:MsgBody":DHParams,"urn:iso:15118:2:2010:MsgBody":ContractID)', derivedBy='EXTENSION'. */ + struct dinCertificateInstallationResType CertificateInstallationRes ; + /* element: "urn:iso:15118:2:2010:MsgBody":CableCheckReq, Complex type name='urn:iso:15118:2:2010:MsgBody,CableCheckReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */ + struct dinCableCheckReqType CableCheckReq ; + /* element: "urn:iso:15118:2:2010:MsgBody":CableCheckRes, Complex type name='urn:iso:15118:2:2010:MsgBody,CableCheckResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */ + struct dinCableCheckResType CableCheckRes ; + /* element: "urn:iso:15118:2:2010:MsgBody":PreChargeReq, Complex type name='urn:iso:15118:2:2010:MsgBody,PreChargeReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":DC_EVStatus,"urn:iso:15118:2:2010:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2010:MsgBody":EVTargetCurrent)', derivedBy='EXTENSION'. */ + struct dinPreChargeReqType PreChargeReq ; + /* element: "urn:iso:15118:2:2010:MsgBody":PreChargeRes, Complex type name='urn:iso:15118:2:2010:MsgBody,PreChargeResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */ + struct dinPreChargeResType PreChargeRes ; + /* element: "urn:iso:15118:2:2010:MsgBody":CurrentDemandReq, Complex type name='urn:iso:15118:2:2010:MsgBody,CurrentDemandReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":DC_EVStatus,"urn:iso:15118:2:2010:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2010:MsgBody":EVMaximumVoltageLimit{0-1},"urn:iso:15118:2:2010:MsgBody":EVMaximumCurrentLimit{0-1},"urn:iso:15118:2:2010:MsgBody":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2010:MsgBody":BulkChargingComplete{0-1},"urn:iso:15118:2:2010:MsgBody":ChargingComplete,"urn:iso:15118:2:2010:MsgBody":RemainingTimeToFullSoC{0-1},"urn:iso:15118:2:2010:MsgBody":RemainingTimeToBulkSoC{0-1},"urn:iso:15118:2:2010:MsgBody":EVTargetVoltage)', derivedBy='EXTENSION'. */ + struct dinCurrentDemandReqType CurrentDemandReq ; + /* element: "urn:iso:15118:2:2010:MsgBody":CurrentDemandRes, Complex type name='urn:iso:15118:2:2010:MsgBody,CurrentDemandResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2010:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2010:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2010:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2010:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2010:MsgBody":EVSEMaximumVoltageLimit{0-1},"urn:iso:15118:2:2010:MsgBody":EVSEMaximumCurrentLimit{0-1},"urn:iso:15118:2:2010:MsgBody":EVSEMaximumPowerLimit{0-1})', derivedBy='EXTENSION'. */ + struct dinCurrentDemandResType CurrentDemandRes ; + /* element: "urn:iso:15118:2:2010:MsgBody":WeldingDetectionReq, Complex type name='urn:iso:15118:2:2010:MsgBody,WeldingDetectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */ + struct dinWeldingDetectionReqType WeldingDetectionReq ; + /* element: "urn:iso:15118:2:2010:MsgBody":WeldingDetectionRes, Complex type name='urn:iso:15118:2:2010:MsgBody,WeldingDetectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */ + struct dinWeldingDetectionResType WeldingDetectionRes ; +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + }; +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + unsigned int BodyElement_isUsed:1; + unsigned int SessionSetupReq_isUsed:1; + unsigned int SessionSetupRes_isUsed:1; + unsigned int ServiceDiscoveryReq_isUsed:1; + unsigned int ServiceDiscoveryRes_isUsed:1; + unsigned int ServiceDetailReq_isUsed:1; + unsigned int ServiceDetailRes_isUsed:1; + unsigned int ServicePaymentSelectionReq_isUsed:1; + unsigned int ServicePaymentSelectionRes_isUsed:1; + unsigned int PaymentDetailsReq_isUsed:1; + unsigned int PaymentDetailsRes_isUsed:1; + unsigned int ContractAuthenticationReq_isUsed:1; + unsigned int ContractAuthenticationRes_isUsed:1; + unsigned int ChargeParameterDiscoveryReq_isUsed:1; + unsigned int ChargeParameterDiscoveryRes_isUsed:1; + unsigned int PowerDeliveryReq_isUsed:1; + unsigned int PowerDeliveryRes_isUsed:1; + unsigned int ChargingStatusReq_isUsed:1; + unsigned int ChargingStatusRes_isUsed:1; + unsigned int MeteringReceiptReq_isUsed:1; + unsigned int MeteringReceiptRes_isUsed:1; + unsigned int SessionStopReq_isUsed:1; + unsigned int SessionStopRes_isUsed:1; + unsigned int CertificateUpdateReq_isUsed:1; + unsigned int CertificateUpdateRes_isUsed:1; + unsigned int CertificateInstallationReq_isUsed:1; + unsigned int CertificateInstallationRes_isUsed:1; + unsigned int CableCheckReq_isUsed:1; + unsigned int CableCheckRes_isUsed:1; + unsigned int PreChargeReq_isUsed:1; + unsigned int PreChargeRes_isUsed:1; + unsigned int CurrentDemandReq_isUsed:1; + unsigned int CurrentDemandRes_isUsed:1; + unsigned int WeldingDetectionReq_isUsed:1; + unsigned int WeldingDetectionRes_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2010:MsgDef,#AnonType_V2G_Message', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDef":Header,"urn:iso:15118:2:2010:MsgDef":Body)', derivedBy='RESTRICTION'. */ +struct dinAnonType_V2G_Message { + /* element: "urn:iso:15118:2:2010:MsgDef":Header, Complex type name='urn:iso:15118:2:2010:MsgHeader,MessageHeaderType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgHeader":SessionID,"urn:iso:15118:2:2010:MsgHeader":Notification{0-1},"http://www.w3.org/2000/09/xmldsig#":Signature{0-1})', derivedBy='RESTRICTION'. */ + struct dinMessageHeaderType Header ; + /* element: "urn:iso:15118:2:2010:MsgDef":Body, Complex type name='urn:iso:15118:2:2010:MsgDef,BodyType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDef":BodyElement{0-1})', derivedBy='RESTRICTION'. */ + struct dinBodyType Body ; +}; + + + +#define dinEXIDocument_MgmtData_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinEXIDocument_KeyName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinEXIDocument_DigestValue_BYTES_SIZE 350 +#define dinEXIFragment_Certificate_BYTES_SIZE 1200 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,certificateType is 1200 */ +#define dinEXIFragment_stringValue_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinEXIFragment_OEMProvisioningCert_BYTES_SIZE 1200 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,certificateType is 1200 */ +#define dinEXIFragment_Exponent_BYTES_SIZE 350 +#define dinEXIFragment_SessionID_BYTES_SIZE 8 /* XML schema facet length for urn:iso:15118:2:2010:MsgDataTypes,sessionIDType is 8 */ +#define dinEXIFragment_PgenCounter_BYTES_SIZE 350 +#define dinEXIFragment_EVCCID_BYTES_SIZE 8 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,evccIDType is 8 */ +#define dinEXIFragment_RootCertificateID_CHARACTERS_SIZE 40 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,rootCertificateIDType is 40 */ +#define dinEXIFragment_PGPKeyPacket_BYTES_SIZE 350 +#define dinEXIFragment_Seed_BYTES_SIZE 350 +#define dinEXIFragment_XPath_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinEXIFragment_ContractID_CHARACTERS_SIZE 24 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,contractIDType is 24 */ +#define dinEXIFragment_MgmtData_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinEXIFragment_P_BYTES_SIZE 350 +#define dinEXIFragment_Q_BYTES_SIZE 350 +#define dinEXIFragment_X509SubjectName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinEXIFragment_G_BYTES_SIZE 350 +#define dinEXIFragment_J_BYTES_SIZE 350 +#define dinEXIFragment_X509CRL_BYTES_SIZE 350 +#define dinEXIFragment_Y_BYTES_SIZE 350 +#define dinEXIFragment_DigestValue_BYTES_SIZE 350 +#define dinEXIFragment_ContractSignatureEncryptedPrivateKey_BYTES_SIZE 128 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,privateKeyType is 128 */ +#define dinEXIFragment_SPKISexp_BYTES_SIZE 350 +#define dinEXIFragment_DHParams_BYTES_SIZE 256 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,dHParamsType is 256 */ +#define dinEXIFragment_PGPKeyID_BYTES_SIZE 350 +#define dinEXIFragment_X509Certificate_BYTES_SIZE 350 +#define dinEXIFragment_ServiceName_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,serviceNameType is 32 */ +#define dinEXIFragment_EVSEID_BYTES_SIZE 32 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,evseIDType is 32 */ +#define dinEXIFragment_ServiceScope_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,serviceScopeType is 32 */ +#define dinEXIFragment_GenChallenge_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinEXIFragment_SalesTariffDescription_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,tariffDescriptionType is 32 */ +#define dinEXIFragment_FaultMsg_CHARACTERS_SIZE 64 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,faultMsgType is 64 */ +#define dinEXIFragment_KeyName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinEXIFragment_SigMeterReading_BYTES_SIZE 32 /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,sigMeterReadingType is 32 */ +#define dinEXIFragment_X509SKI_BYTES_SIZE 350 +#define dinEXIFragment_X509IssuerName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define dinEXIFragment_MeterID_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2010:MsgDataTypes,meterIDType is 32 */ +#define dinEXIFragment_Modulus_BYTES_SIZE 350 + + +/* Global elements of EXI Document */ +struct dinEXIDocument { +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + union { +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + struct dinBodyBaseType BodyElement ; + struct dinAnonType_V2G_Message V2G_Message ; + struct dinSignaturePropertyType SignatureProperty ; + struct dinDSAKeyValueType DSAKeyValue ; + struct dinSignaturePropertiesType SignatureProperties ; + struct dinKeyValueType KeyValue ; + struct dinTransformsType Transforms ; + struct dinDigestMethodType DigestMethod ; + struct dinSignatureType Signature ; + struct dinRetrievalMethodType RetrievalMethod ; + struct dinManifestType Manifest ; + struct dinReferenceType Reference ; + struct dinCanonicalizationMethodType CanonicalizationMethod ; + struct dinRSAKeyValueType RSAKeyValue ; + struct dinTransformType Transform ; + struct dinPGPDataType PGPData ; + struct { + exi_string_character_t characters[dinEXIDocument_MgmtData_CHARACTERS_SIZE]; + uint16_t charactersLen; + } MgmtData ; + struct dinSignatureMethodType SignatureMethod ; + struct dinKeyInfoType KeyInfo ; + struct dinSPKIDataType SPKIData ; + struct dinX509DataType X509Data ; + struct dinSignatureValueType SignatureValue ; + struct { + exi_string_character_t characters[dinEXIDocument_KeyName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } KeyName ; + struct { + uint8_t bytes[dinEXIDocument_DigestValue_BYTES_SIZE]; + uint16_t bytesLen; + } DigestValue ; + struct dinSignedInfoType SignedInfo ; + struct dinObjectType Object ; + struct dinDC_EVSEStatusType DC_EVSEStatus ; + struct dinRelativeTimeIntervalType RelativeTimeInterval ; + struct dinSalesTariffEntryType SalesTariffEntry ; + struct dinDC_EVPowerDeliveryParameterType DC_EVPowerDeliveryParameter ; + struct dinSASchedulesType SASchedules ; + struct dinAC_EVChargeParameterType AC_EVChargeParameter ; + struct dinSAScheduleListType SAScheduleList ; + struct dinDC_EVStatusType DC_EVStatus ; + struct dinServiceChargeType ServiceCharge ; + struct dinEVStatusType EVStatus ; + struct dinDC_EVChargeParameterType DC_EVChargeParameter ; + struct dinDC_EVSEChargeParameterType DC_EVSEChargeParameter ; + struct dinEVSEStatusType EVSEStatus ; + struct dinIntervalType TimeInterval ; + struct dinEVPowerDeliveryParameterType EVPowerDeliveryParameter ; + struct dinEVSEChargeParameterType EVSEChargeParameter ; + struct dinAC_EVSEStatusType AC_EVSEStatus ; + struct dinEntryType Entry ; + struct dinAC_EVSEChargeParameterType AC_EVSEChargeParameter ; + struct dinPMaxScheduleEntryType PMaxScheduleEntry ; + struct dinEVChargeParameterType EVChargeParameter ; + struct dinServiceDiscoveryReqType ServiceDiscoveryReq ; + struct dinServiceDiscoveryResType ServiceDiscoveryRes ; + struct dinMeteringReceiptReqType MeteringReceiptReq ; + struct dinPaymentDetailsReqType PaymentDetailsReq ; + struct dinMeteringReceiptResType MeteringReceiptRes ; + struct dinPaymentDetailsResType PaymentDetailsRes ; + struct dinSessionSetupReqType SessionSetupReq ; + struct dinSessionSetupResType SessionSetupRes ; + struct dinCableCheckReqType CableCheckReq ; + struct dinCableCheckResType CableCheckRes ; + struct dinContractAuthenticationReqType ContractAuthenticationReq ; + struct dinCertificateInstallationReqType CertificateInstallationReq ; + struct dinContractAuthenticationResType ContractAuthenticationRes ; + struct dinCertificateInstallationResType CertificateInstallationRes ; + struct dinWeldingDetectionReqType WeldingDetectionReq ; + struct dinWeldingDetectionResType WeldingDetectionRes ; + struct dinCertificateUpdateReqType CertificateUpdateReq ; + struct dinCertificateUpdateResType CertificateUpdateRes ; + struct dinPowerDeliveryReqType PowerDeliveryReq ; + struct dinPowerDeliveryResType PowerDeliveryRes ; + struct dinChargingStatusReqType ChargingStatusReq ; + struct dinChargingStatusResType ChargingStatusRes ; + struct dinCurrentDemandReqType CurrentDemandReq ; + struct dinPreChargeReqType PreChargeReq ; + struct dinCurrentDemandResType CurrentDemandRes ; + struct dinPreChargeResType PreChargeRes ; + struct dinServicePaymentSelectionReqType ServicePaymentSelectionReq ; + struct dinSessionStopType SessionStopReq ; + struct dinServicePaymentSelectionResType ServicePaymentSelectionRes ; + struct dinSessionStopResType SessionStopRes ; + struct dinChargeParameterDiscoveryReqType ChargeParameterDiscoveryReq ; + struct dinChargeParameterDiscoveryResType ChargeParameterDiscoveryRes ; + struct dinServiceDetailReqType ServiceDetailReq ; + struct dinServiceDetailResType ServiceDetailRes ; +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + }; +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + unsigned int BodyElement_isUsed:1; + unsigned int V2G_Message_isUsed:1; + unsigned int SignatureProperty_isUsed:1; + unsigned int DSAKeyValue_isUsed:1; + unsigned int SignatureProperties_isUsed:1; + unsigned int KeyValue_isUsed:1; + unsigned int Transforms_isUsed:1; + unsigned int DigestMethod_isUsed:1; + unsigned int Signature_isUsed:1; + unsigned int RetrievalMethod_isUsed:1; + unsigned int Manifest_isUsed:1; + unsigned int Reference_isUsed:1; + unsigned int CanonicalizationMethod_isUsed:1; + unsigned int RSAKeyValue_isUsed:1; + unsigned int Transform_isUsed:1; + unsigned int PGPData_isUsed:1; + unsigned int MgmtData_isUsed:1; + unsigned int SignatureMethod_isUsed:1; + unsigned int KeyInfo_isUsed:1; + unsigned int SPKIData_isUsed:1; + unsigned int X509Data_isUsed:1; + unsigned int SignatureValue_isUsed:1; + unsigned int KeyName_isUsed:1; + unsigned int DigestValue_isUsed:1; + unsigned int SignedInfo_isUsed:1; + unsigned int Object_isUsed:1; + unsigned int DC_EVSEStatus_isUsed:1; + unsigned int RelativeTimeInterval_isUsed:1; + unsigned int SalesTariffEntry_isUsed:1; + unsigned int DC_EVPowerDeliveryParameter_isUsed:1; + unsigned int SASchedules_isUsed:1; + unsigned int AC_EVChargeParameter_isUsed:1; + unsigned int SAScheduleList_isUsed:1; + unsigned int DC_EVStatus_isUsed:1; + unsigned int ServiceCharge_isUsed:1; + unsigned int EVStatus_isUsed:1; + unsigned int DC_EVChargeParameter_isUsed:1; + unsigned int DC_EVSEChargeParameter_isUsed:1; + unsigned int EVSEStatus_isUsed:1; + unsigned int TimeInterval_isUsed:1; + unsigned int EVPowerDeliveryParameter_isUsed:1; + unsigned int EVSEChargeParameter_isUsed:1; + unsigned int AC_EVSEStatus_isUsed:1; + unsigned int Entry_isUsed:1; + unsigned int AC_EVSEChargeParameter_isUsed:1; + unsigned int PMaxScheduleEntry_isUsed:1; + unsigned int EVChargeParameter_isUsed:1; + unsigned int ServiceDiscoveryReq_isUsed:1; + unsigned int ServiceDiscoveryRes_isUsed:1; + unsigned int MeteringReceiptReq_isUsed:1; + unsigned int PaymentDetailsReq_isUsed:1; + unsigned int MeteringReceiptRes_isUsed:1; + unsigned int PaymentDetailsRes_isUsed:1; + unsigned int SessionSetupReq_isUsed:1; + unsigned int SessionSetupRes_isUsed:1; + unsigned int CableCheckReq_isUsed:1; + unsigned int CableCheckRes_isUsed:1; + unsigned int ContractAuthenticationReq_isUsed:1; + unsigned int CertificateInstallationReq_isUsed:1; + unsigned int ContractAuthenticationRes_isUsed:1; + unsigned int CertificateInstallationRes_isUsed:1; + unsigned int WeldingDetectionReq_isUsed:1; + unsigned int WeldingDetectionRes_isUsed:1; + unsigned int CertificateUpdateReq_isUsed:1; + unsigned int CertificateUpdateRes_isUsed:1; + unsigned int PowerDeliveryReq_isUsed:1; + unsigned int PowerDeliveryRes_isUsed:1; + unsigned int ChargingStatusReq_isUsed:1; + unsigned int ChargingStatusRes_isUsed:1; + unsigned int CurrentDemandReq_isUsed:1; + unsigned int PreChargeReq_isUsed:1; + unsigned int CurrentDemandRes_isUsed:1; + unsigned int PreChargeRes_isUsed:1; + unsigned int ServicePaymentSelectionReq_isUsed:1; + unsigned int SessionStopReq_isUsed:1; + unsigned int ServicePaymentSelectionRes_isUsed:1; + unsigned int SessionStopRes_isUsed:1; + unsigned int ChargeParameterDiscoveryReq_isUsed:1; + unsigned int ChargeParameterDiscoveryRes_isUsed:1; + unsigned int ServiceDetailReq_isUsed:1; + unsigned int ServiceDetailRes_isUsed:1; + + + int _warning_; +}; + + +#if DEPLOY_DIN_CODEC_FRAGMENT == SUPPORT_YES +/* Possible elements of EXI Fragment */ +struct dinEXIFragment { +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + union { +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + dinunitSymbolType Unit ; + struct dinPhysicalValueType EVSEMaximumCurrentLimit ; + struct dinEVPowerDeliveryParameterType EVPowerDeliveryParameter ; + int16_t ChargingProfileEntryMaxPower ; + int64_t TMeter ; + int EVSEPowerLimitAchieved ; + uint32_t duration ; + struct dinPhysicalValueType EVMaximumCurrentLimit ; + struct dinParameterType Parameter ; + dinEVSEProcessingType EVSEProcessing ; + struct dinAC_EVChargeParameterType AC_EVChargeParameter ; + struct dinPMaxScheduleEntryType PMaxScheduleEntry ; + struct dinPhysicalValueType EVSEMaximumVoltageLimit ; + struct dinSelectedServiceType SelectedService ; + struct { + uint8_t bytes[dinEXIFragment_Certificate_BYTES_SIZE]; + uint16_t bytesLen; + } Certificate ; + struct dinPhysicalValueType EVSEMaximumPowerLimit ; + int EVReady ; + int64_t X509SerialNumber ; + struct dinRetrievalMethodType RetrievalMethod ; + int16_t RetryCounter ; + struct dinDC_EVSEStatusType DC_EVSEStatus ; + struct dinMeteringReceiptReqType MeteringReceiptReq ; + int ReadyToChargeState ; + int8_t Multiplier ; + uint8_t EPriceLevel ; + struct { + exi_string_character_t characters[dinEXIFragment_stringValue_CHARACTERS_SIZE]; + uint16_t charactersLen; + } stringValue ; + struct dinServiceDiscoveryReqType ServiceDiscoveryReq ; + struct dinTransformsType Transforms ; + struct dinMeteringReceiptResType MeteringReceiptRes ; + struct dinPreChargeReqType PreChargeReq ; + struct { + uint8_t bytes[dinEXIFragment_OEMProvisioningCert_BYTES_SIZE]; + uint16_t bytesLen; + } OEMProvisioningCert ; + struct dinServiceDiscoveryResType ServiceDiscoveryRes ; + dinresponseCodeType ResponseCode ; + struct dinContractAuthenticationReqType ContractAuthenticationReq ; + struct dinCertificateChainType ContractSignatureCertChain ; + struct dinContractAuthenticationResType ContractAuthenticationRes ; + int64_t HMACOutputLength ; + int BulkChargingComplete ; + struct { + uint8_t bytes[dinEXIFragment_Exponent_BYTES_SIZE]; + uint16_t bytesLen; + } Exponent ; + struct dinDC_EVStatusType DC_EVStatus ; + struct dinSAScheduleTupleType SAScheduleTuple ; + uint32_t DepartureTime ; + struct dinX509IssuerSerialType X509IssuerSerial ; + int16_t SAScheduleTupleID ; + struct dinSPKIDataType SPKIData ; + struct dinRelativeTimeIntervalType RelativeTimeInterval ; + struct dinPhysicalValueType EVEnergyRequest ; + struct dinPreChargeResType PreChargeRes ; + struct { + uint8_t bytes[dinEXIFragment_SessionID_BYTES_SIZE]; + uint16_t bytesLen; + } SessionID ; + struct dinPMaxScheduleType PMaxSchedule ; + struct dinServiceChargeType ServiceCharge ; + struct { + uint8_t bytes[dinEXIFragment_PgenCounter_BYTES_SIZE]; + uint16_t bytesLen; + } PgenCounter ; + struct dinChargingStatusReqType ChargingStatusReq ; + struct dinX509DataType X509Data ; + struct dinSalesTariffEntryType SalesTariffEntry ; + struct dinKeyValueType KeyValue ; + struct dinChargingStatusResType ChargingStatusRes ; + struct dinAnonType_V2G_Message V2G_Message ; + struct dinServicePaymentSelectionReqType ServicePaymentSelectionReq ; + dinisolationLevelType EVSEIsolationStatus ; + struct dinServicePaymentSelectionResType ServicePaymentSelectionRes ; + struct dinPhysicalValueType EVSEPresentVoltage ; + struct dinBodyBaseType BodyElement ; + struct { + uint8_t bytes[dinEXIFragment_EVCCID_BYTES_SIZE]; + uint16_t bytesLen; + } EVCCID ; + struct dinPGPDataType PGPData ; + struct { + exi_string_character_t characters[dinEXIFragment_RootCertificateID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } RootCertificateID ; + dinfaultCodeType FaultCode ; + struct dinCableCheckReqType CableCheckReq ; + int EVSEVoltageLimitAchieved ; + int EVRESSConditioning ; + struct dinMeterInfoType MeterInfo ; + struct dinCableCheckResType CableCheckRes ; + uint32_t ChargingProfileEntryStart ; + struct dinSignaturePropertyType SignatureProperty ; + struct dinPhysicalValueType EVMaxCurrent ; + struct { + uint8_t bytes[dinEXIFragment_PGPKeyPacket_BYTES_SIZE]; + uint16_t bytesLen; + } PGPKeyPacket ; + struct { + uint8_t bytes[dinEXIFragment_Seed_BYTES_SIZE]; + uint16_t bytesLen; + } Seed ; + struct dinRSAKeyValueType RSAKeyValue ; + dincostKindType costKind ; + struct dinPhysicalValueType EAmount ; + struct dinPhysicalValueType EVSEPresentCurrent ; + struct dinPowerDeliveryResType PowerDeliveryRes ; + uint8_t NumEPriceLevels ; + struct dinSessionStopResType SessionStopRes ; + struct dinPowerDeliveryReqType PowerDeliveryReq ; + struct dinSessionStopType SessionStopReq ; + struct { + exi_string_character_t characters[dinEXIFragment_XPath_CHARACTERS_SIZE]; + uint16_t charactersLen; + } XPath ; + int8_t BulkSOC ; + int16_t PMax ; + int16_t ParameterSetID ; + struct { + exi_string_character_t characters[dinEXIFragment_ContractID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ContractID ; + struct dinSignatureType Signature ; + struct dinPhysicalValueType EVMaxVoltage ; + int ReceiptRequired ; + int ChargingComplete ; + struct dinChargingProfileType ChargingProfile ; + struct dinPaymentOptionsType PaymentOptions ; + struct dinSessionSetupResType SessionSetupRes ; + struct dinServiceDetailResType ServiceDetailRes ; + struct dinDC_EVPowerDeliveryParameterType DC_EVPowerDeliveryParameter ; + struct dinPaymentDetailsResType PaymentDetailsRes ; + struct dinPaymentDetailsReqType PaymentDetailsReq ; + struct { + exi_string_character_t characters[dinEXIFragment_MgmtData_CHARACTERS_SIZE]; + uint16_t charactersLen; + } MgmtData ; + int16_t Value ; + dinEVSENotificationType EVSENotification ; + struct dinPhysicalValueType EVTargetCurrent ; + struct dinPhysicalValueType RemainingTimeToBulkSoC ; + struct dinSessionSetupReqType SessionSetupReq ; + int EVSECurrentLimitAchieved ; + struct dinServiceDetailReqType ServiceDetailReq ; + int8_t byteValue ; + struct dinPhysicalValueType EVMaximumPowerLimit ; + int PowerSwitchClosed ; + struct dinManifestType Manifest ; + struct { + uint8_t bytes[dinEXIFragment_P_BYTES_SIZE]; + uint16_t bytesLen; + } P ; + struct dinSAScheduleListType SAScheduleList ; + struct { + uint8_t bytes[dinEXIFragment_Q_BYTES_SIZE]; + uint16_t bytesLen; + } Q ; + struct { + exi_string_character_t characters[dinEXIFragment_X509SubjectName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } X509SubjectName ; + struct { + uint8_t bytes[dinEXIFragment_G_BYTES_SIZE]; + uint16_t bytesLen; + } G ; + struct { + uint8_t bytes[dinEXIFragment_J_BYTES_SIZE]; + uint16_t bytesLen; + } J ; + struct dinCertificateInstallationResType CertificateInstallationRes ; + struct dinCertificateInstallationReqType CertificateInstallationReq ; + struct dinSalesTariffType SalesTariff ; + struct dinMessageHeaderType Header ; + struct dinPhysicalValueType EVSEMinimumCurrentLimit ; + struct { + uint8_t bytes[dinEXIFragment_X509CRL_BYTES_SIZE]; + uint16_t bytesLen; + } X509CRL ; + struct { + uint8_t bytes[dinEXIFragment_Y_BYTES_SIZE]; + uint16_t bytesLen; + } Y ; + struct { + uint8_t bytes[dinEXIFragment_DigestValue_BYTES_SIZE]; + uint16_t bytesLen; + } DigestValue ; + struct dinDC_EVChargeParameterType DC_EVChargeParameter ; + struct { + uint8_t bytes[dinEXIFragment_ContractSignatureEncryptedPrivateKey_BYTES_SIZE]; + uint16_t bytesLen; + } ContractSignatureEncryptedPrivateKey ; + struct dinDigestMethodType DigestMethod ; + struct { + uint8_t bytes[dinEXIFragment_SPKISexp_BYTES_SIZE]; + uint16_t bytesLen; + } SPKISexp ; + struct dinServiceChargeType ChargeService ; + struct dinPhysicalValueType EVSEEnergyToBeDelivered ; + struct dinSignaturePropertiesType SignatureProperties ; + struct dinPhysicalValueType EVSEMaxCurrent ; + struct dinEVSEStatusType EVSEStatus ; + struct dinServiceType Service ; + struct { + uint8_t bytes[dinEXIFragment_DHParams_BYTES_SIZE]; + uint16_t bytesLen; + } DHParams ; + struct { + uint8_t bytes[dinEXIFragment_PGPKeyID_BYTES_SIZE]; + uint16_t bytesLen; + } PGPKeyID ; + struct dinDSAKeyValueType DSAKeyValue ; + dinEVSESupportedEnergyTransferType EnergyTransferType ; + struct dinWeldingDetectionResType WeldingDetectionRes ; + int FreeService ; + struct dinSelectedServiceListType SelectedServiceList ; + struct dinWeldingDetectionReqType WeldingDetectionReq ; + struct dinPhysicalValueType EVTargetVoltage ; + struct dinCanonicalizationMethodType CanonicalizationMethod ; + struct { + uint8_t bytes[dinEXIFragment_X509Certificate_BYTES_SIZE]; + uint16_t bytesLen; + } X509Certificate ; + struct dinCertificateUpdateResType CertificateUpdateRes ; + struct dinCertificateUpdateReqType CertificateUpdateReq ; + struct dinPhysicalValueType EVSEMaxVoltage ; + struct dinSignedInfoType SignedInfo ; + struct dinAC_EVSEChargeParameterType AC_EVSEChargeParameter ; + struct dinPhysicalValueType EVEnergyCapacity ; + uint16_t ServiceID ; + struct dinPhysicalValueType EVSECurrentRegulationTolerance ; + struct dinServiceParameterListType ServiceParameterList ; + struct dinListOfRootCertificateIDsType ListOfRootCertificateIDs ; + struct dinProfileEntryType ProfileEntry ; + struct dinPhysicalValueType EVSEMinimumVoltageLimit ; + struct dinCurrentDemandResType CurrentDemandRes ; + int8_t EVRESSSOC ; + struct dinPhysicalValueType MeterReading ; + struct dinCurrentDemandReqType CurrentDemandReq ; + struct dinPhysicalValueType physicalValue ; + struct dinIntervalType TimeInterval ; + struct dinAC_EVSEStatusType AC_EVSEStatus ; + struct dinPhysicalValueType EVMaximumVoltageLimit ; + struct dinSignatureValueType SignatureValue ; + int64_t DateTimeNow ; + struct dinServiceTagType ServiceTag ; + int32_t intValue ; + dinpaymentOptionType SelectedPaymentOption ; + struct { + exi_string_character_t characters[dinEXIFragment_ServiceName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ServiceName ; + int EVCabinConditioning ; + struct { + uint8_t bytes[dinEXIFragment_EVSEID_BYTES_SIZE]; + uint16_t bytesLen; + } EVSEID ; + struct { + exi_string_character_t characters[dinEXIFragment_ServiceScope_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ServiceScope ; + int16_t MeterStatus ; + dinEVRequestedEnergyTransferType EVRequestedEnergyTransferType ; + dinserviceCategoryType ServiceCategory ; + struct { + exi_string_character_t characters[dinEXIFragment_GenChallenge_CHARACTERS_SIZE]; + uint16_t charactersLen; + } GenChallenge ; + struct { + exi_string_character_t characters[dinEXIFragment_SalesTariffDescription_CHARACTERS_SIZE]; + uint16_t charactersLen; + } SalesTariffDescription ; + uint32_t NotificationMaxDelay ; + int boolValue ; + dinDC_EVSEStatusCodeType EVSEStatusCode ; + struct { + exi_string_character_t characters[dinEXIFragment_FaultMsg_CHARACTERS_SIZE]; + uint16_t charactersLen; + } FaultMsg ; + struct { + exi_string_character_t characters[dinEXIFragment_KeyName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } KeyName ; + struct dinParameterSetType ParameterSet ; + struct { + uint8_t bytes[dinEXIFragment_SigMeterReading_BYTES_SIZE]; + uint16_t bytesLen; + } SigMeterReading ; + struct dinEVSEChargeParameterType EVSEChargeParameter ; + struct dinBodyType Body ; + struct dinSASchedulesType SASchedules ; + struct dinKeyInfoType KeyInfo ; + int16_t PMaxScheduleID ; + struct dinPhysicalValueType RemainingTimeToFullSoC ; + struct dinEVStatusType EVStatus ; + struct dinSubCertificatesType SubCertificates ; + dinpaymentOptionType PaymentOption ; + struct { + uint8_t bytes[dinEXIFragment_X509SKI_BYTES_SIZE]; + uint16_t bytesLen; + } X509SKI ; + struct dinServiceTagListType ServiceList ; + struct dinCostType Cost ; + struct dinSignatureMethodType SignatureMethod ; + struct dinPhysicalValueType EVSEMinCurrent ; + struct dinConsumptionCostType ConsumptionCost ; + struct dinPhysicalValueType EVSEPeakCurrentRipple ; + dinDC_EVErrorCodeType EVErrorCode ; + struct dinEVChargeParameterType EVChargeParameter ; + uint32_t start ; + struct { + exi_string_character_t characters[dinEXIFragment_X509IssuerName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } X509IssuerName ; + struct dinReferenceType Reference ; + struct dinPhysicalValueType EVMinCurrent ; + int8_t FullSOC ; + uint32_t amount ; + int16_t shortValue ; + struct dinDC_EVSEChargeParameterType DC_EVSEChargeParameter ; + struct dinEntryType Entry ; + int16_t SalesTariffID ; + struct { + exi_string_character_t characters[dinEXIFragment_MeterID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } MeterID ; + struct dinChargeParameterDiscoveryReqType ChargeParameterDiscoveryReq ; + int8_t amountMultiplier ; + struct dinChargeParameterDiscoveryResType ChargeParameterDiscoveryRes ; + struct dinTransformType Transform ; + struct dinObjectType Object ; + int RCD ; + struct dinNotificationType Notification ; + uint32_t startValue ; + struct { + uint8_t bytes[dinEXIFragment_Modulus_BYTES_SIZE]; + uint16_t bytesLen; + } Modulus ; +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + }; +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + unsigned int Unit_isUsed:1; + unsigned int EVSEMaximumCurrentLimit_isUsed:1; + unsigned int EVPowerDeliveryParameter_isUsed:1; + unsigned int ChargingProfileEntryMaxPower_isUsed:1; + unsigned int TMeter_isUsed:1; + unsigned int EVSEPowerLimitAchieved_isUsed:1; + unsigned int duration_isUsed:1; + unsigned int EVMaximumCurrentLimit_isUsed:1; + unsigned int Parameter_isUsed:1; + unsigned int EVSEProcessing_isUsed:1; + unsigned int AC_EVChargeParameter_isUsed:1; + unsigned int PMaxScheduleEntry_isUsed:1; + unsigned int EVSEMaximumVoltageLimit_isUsed:1; + unsigned int SelectedService_isUsed:1; + unsigned int Certificate_isUsed:1; + unsigned int EVSEMaximumPowerLimit_isUsed:1; + unsigned int EVReady_isUsed:1; + unsigned int X509SerialNumber_isUsed:1; + unsigned int RetrievalMethod_isUsed:1; + unsigned int RetryCounter_isUsed:1; + unsigned int DC_EVSEStatus_isUsed:1; + unsigned int MeteringReceiptReq_isUsed:1; + unsigned int ReadyToChargeState_isUsed:1; + unsigned int Multiplier_isUsed:1; + unsigned int EPriceLevel_isUsed:1; + unsigned int stringValue_isUsed:1; + unsigned int ServiceDiscoveryReq_isUsed:1; + unsigned int Transforms_isUsed:1; + unsigned int MeteringReceiptRes_isUsed:1; + unsigned int PreChargeReq_isUsed:1; + unsigned int OEMProvisioningCert_isUsed:1; + unsigned int ServiceDiscoveryRes_isUsed:1; + unsigned int ResponseCode_isUsed:1; + unsigned int ContractAuthenticationReq_isUsed:1; + unsigned int ContractSignatureCertChain_isUsed:1; + unsigned int ContractAuthenticationRes_isUsed:1; + unsigned int HMACOutputLength_isUsed:1; + unsigned int BulkChargingComplete_isUsed:1; + unsigned int Exponent_isUsed:1; + unsigned int DC_EVStatus_isUsed:1; + unsigned int SAScheduleTuple_isUsed:1; + unsigned int DepartureTime_isUsed:1; + unsigned int X509IssuerSerial_isUsed:1; + unsigned int SAScheduleTupleID_isUsed:1; + unsigned int SPKIData_isUsed:1; + unsigned int RelativeTimeInterval_isUsed:1; + unsigned int EVEnergyRequest_isUsed:1; + unsigned int PreChargeRes_isUsed:1; + unsigned int SessionID_isUsed:1; + unsigned int PMaxSchedule_isUsed:1; + unsigned int ServiceCharge_isUsed:1; + unsigned int PgenCounter_isUsed:1; + unsigned int ChargingStatusReq_isUsed:1; + unsigned int X509Data_isUsed:1; + unsigned int SalesTariffEntry_isUsed:1; + unsigned int KeyValue_isUsed:1; + unsigned int ChargingStatusRes_isUsed:1; + unsigned int V2G_Message_isUsed:1; + unsigned int ServicePaymentSelectionReq_isUsed:1; + unsigned int EVSEIsolationStatus_isUsed:1; + unsigned int ServicePaymentSelectionRes_isUsed:1; + unsigned int EVSEPresentVoltage_isUsed:1; + unsigned int BodyElement_isUsed:1; + unsigned int EVCCID_isUsed:1; + unsigned int PGPData_isUsed:1; + unsigned int RootCertificateID_isUsed:1; + unsigned int FaultCode_isUsed:1; + unsigned int CableCheckReq_isUsed:1; + unsigned int EVSEVoltageLimitAchieved_isUsed:1; + unsigned int EVRESSConditioning_isUsed:1; + unsigned int MeterInfo_isUsed:1; + unsigned int CableCheckRes_isUsed:1; + unsigned int ChargingProfileEntryStart_isUsed:1; + unsigned int SignatureProperty_isUsed:1; + unsigned int EVMaxCurrent_isUsed:1; + unsigned int PGPKeyPacket_isUsed:1; + unsigned int Seed_isUsed:1; + unsigned int RSAKeyValue_isUsed:1; + unsigned int costKind_isUsed:1; + unsigned int EAmount_isUsed:1; + unsigned int EVSEPresentCurrent_isUsed:1; + unsigned int PowerDeliveryRes_isUsed:1; + unsigned int NumEPriceLevels_isUsed:1; + unsigned int SessionStopRes_isUsed:1; + unsigned int PowerDeliveryReq_isUsed:1; + unsigned int SessionStopReq_isUsed:1; + unsigned int XPath_isUsed:1; + unsigned int BulkSOC_isUsed:1; + unsigned int PMax_isUsed:1; + unsigned int ParameterSetID_isUsed:1; + unsigned int ContractID_isUsed:1; + unsigned int Signature_isUsed:1; + unsigned int EVMaxVoltage_isUsed:1; + unsigned int ReceiptRequired_isUsed:1; + unsigned int ChargingComplete_isUsed:1; + unsigned int ChargingProfile_isUsed:1; + unsigned int PaymentOptions_isUsed:1; + unsigned int SessionSetupRes_isUsed:1; + unsigned int ServiceDetailRes_isUsed:1; + unsigned int DC_EVPowerDeliveryParameter_isUsed:1; + unsigned int PaymentDetailsRes_isUsed:1; + unsigned int PaymentDetailsReq_isUsed:1; + unsigned int MgmtData_isUsed:1; + unsigned int Value_isUsed:1; + unsigned int EVSENotification_isUsed:1; + unsigned int EVTargetCurrent_isUsed:1; + unsigned int RemainingTimeToBulkSoC_isUsed:1; + unsigned int SessionSetupReq_isUsed:1; + unsigned int EVSECurrentLimitAchieved_isUsed:1; + unsigned int ServiceDetailReq_isUsed:1; + unsigned int byteValue_isUsed:1; + unsigned int EVMaximumPowerLimit_isUsed:1; + unsigned int PowerSwitchClosed_isUsed:1; + unsigned int Manifest_isUsed:1; + unsigned int P_isUsed:1; + unsigned int SAScheduleList_isUsed:1; + unsigned int Q_isUsed:1; + unsigned int X509SubjectName_isUsed:1; + unsigned int G_isUsed:1; + unsigned int J_isUsed:1; + unsigned int CertificateInstallationRes_isUsed:1; + unsigned int CertificateInstallationReq_isUsed:1; + unsigned int SalesTariff_isUsed:1; + unsigned int Header_isUsed:1; + unsigned int EVSEMinimumCurrentLimit_isUsed:1; + unsigned int X509CRL_isUsed:1; + unsigned int Y_isUsed:1; + unsigned int DigestValue_isUsed:1; + unsigned int DC_EVChargeParameter_isUsed:1; + unsigned int ContractSignatureEncryptedPrivateKey_isUsed:1; + unsigned int DigestMethod_isUsed:1; + unsigned int SPKISexp_isUsed:1; + unsigned int ChargeService_isUsed:1; + unsigned int EVSEEnergyToBeDelivered_isUsed:1; + unsigned int SignatureProperties_isUsed:1; + unsigned int EVSEMaxCurrent_isUsed:1; + unsigned int EVSEStatus_isUsed:1; + unsigned int Service_isUsed:1; + unsigned int DHParams_isUsed:1; + unsigned int PGPKeyID_isUsed:1; + unsigned int DSAKeyValue_isUsed:1; + unsigned int EnergyTransferType_isUsed:1; + unsigned int WeldingDetectionRes_isUsed:1; + unsigned int FreeService_isUsed:1; + unsigned int SelectedServiceList_isUsed:1; + unsigned int WeldingDetectionReq_isUsed:1; + unsigned int EVTargetVoltage_isUsed:1; + unsigned int CanonicalizationMethod_isUsed:1; + unsigned int X509Certificate_isUsed:1; + unsigned int CertificateUpdateRes_isUsed:1; + unsigned int CertificateUpdateReq_isUsed:1; + unsigned int EVSEMaxVoltage_isUsed:1; + unsigned int SignedInfo_isUsed:1; + unsigned int AC_EVSEChargeParameter_isUsed:1; + unsigned int EVEnergyCapacity_isUsed:1; + unsigned int ServiceID_isUsed:1; + unsigned int EVSECurrentRegulationTolerance_isUsed:1; + unsigned int ServiceParameterList_isUsed:1; + unsigned int ListOfRootCertificateIDs_isUsed:1; + unsigned int ProfileEntry_isUsed:1; + unsigned int EVSEMinimumVoltageLimit_isUsed:1; + unsigned int CurrentDemandRes_isUsed:1; + unsigned int EVRESSSOC_isUsed:1; + unsigned int MeterReading_isUsed:1; + unsigned int CurrentDemandReq_isUsed:1; + unsigned int physicalValue_isUsed:1; + unsigned int TimeInterval_isUsed:1; + unsigned int AC_EVSEStatus_isUsed:1; + unsigned int EVMaximumVoltageLimit_isUsed:1; + unsigned int SignatureValue_isUsed:1; + unsigned int DateTimeNow_isUsed:1; + unsigned int ServiceTag_isUsed:1; + unsigned int intValue_isUsed:1; + unsigned int SelectedPaymentOption_isUsed:1; + unsigned int ServiceName_isUsed:1; + unsigned int EVCabinConditioning_isUsed:1; + unsigned int EVSEID_isUsed:1; + unsigned int ServiceScope_isUsed:1; + unsigned int MeterStatus_isUsed:1; + unsigned int EVRequestedEnergyTransferType_isUsed:1; + unsigned int ServiceCategory_isUsed:1; + unsigned int GenChallenge_isUsed:1; + unsigned int SalesTariffDescription_isUsed:1; + unsigned int NotificationMaxDelay_isUsed:1; + unsigned int boolValue_isUsed:1; + unsigned int EVSEStatusCode_isUsed:1; + unsigned int FaultMsg_isUsed:1; + unsigned int KeyName_isUsed:1; + unsigned int ParameterSet_isUsed:1; + unsigned int SigMeterReading_isUsed:1; + unsigned int EVSEChargeParameter_isUsed:1; + unsigned int Body_isUsed:1; + unsigned int SASchedules_isUsed:1; + unsigned int KeyInfo_isUsed:1; + unsigned int PMaxScheduleID_isUsed:1; + unsigned int RemainingTimeToFullSoC_isUsed:1; + unsigned int EVStatus_isUsed:1; + unsigned int SubCertificates_isUsed:1; + unsigned int PaymentOption_isUsed:1; + unsigned int X509SKI_isUsed:1; + unsigned int ServiceList_isUsed:1; + unsigned int Cost_isUsed:1; + unsigned int SignatureMethod_isUsed:1; + unsigned int EVSEMinCurrent_isUsed:1; + unsigned int ConsumptionCost_isUsed:1; + unsigned int EVSEPeakCurrentRipple_isUsed:1; + unsigned int EVErrorCode_isUsed:1; + unsigned int EVChargeParameter_isUsed:1; + unsigned int start_isUsed:1; + unsigned int X509IssuerName_isUsed:1; + unsigned int Reference_isUsed:1; + unsigned int EVMinCurrent_isUsed:1; + unsigned int FullSOC_isUsed:1; + unsigned int amount_isUsed:1; + unsigned int shortValue_isUsed:1; + unsigned int DC_EVSEChargeParameter_isUsed:1; + unsigned int Entry_isUsed:1; + unsigned int SalesTariffID_isUsed:1; + unsigned int MeterID_isUsed:1; + unsigned int ChargeParameterDiscoveryReq_isUsed:1; + unsigned int amountMultiplier_isUsed:1; + unsigned int ChargeParameterDiscoveryRes_isUsed:1; + unsigned int Transform_isUsed:1; + unsigned int Object_isUsed:1; + unsigned int RCD_isUsed:1; + unsigned int Notification_isUsed:1; + unsigned int startValue_isUsed:1; + unsigned int Modulus_isUsed:1; + + + int _warning_; +}; +#endif /* DEPLOY_DIN_CODEC_FRAGMENT */ + + +/* Initialization methods for structs */ + +void init_dinEXIDocument(struct dinEXIDocument* exiDoc); +#if DEPLOY_DIN_CODEC_FRAGMENT == SUPPORT_YES +void init_dinEXIFragment(struct dinEXIFragment* exiFrag); +#endif /* DEPLOY_DIN_CODEC_FRAGMENT */ +void init_dinMeteringReceiptReqType(struct dinMeteringReceiptReqType* dinMeteringReceiptReqType); +void init_dinBodyType(struct dinBodyType* dinBodyType); +void init_dinSessionSetupReqType(struct dinSessionSetupReqType* dinSessionSetupReqType); +void init_dinPowerDeliveryResType(struct dinPowerDeliveryResType* dinPowerDeliveryResType); +void init_dinServiceDetailResType(struct dinServiceDetailResType* dinServiceDetailResType); +void init_dinWeldingDetectionResType(struct dinWeldingDetectionResType* dinWeldingDetectionResType); +void init_dinContractAuthenticationResType(struct dinContractAuthenticationResType* dinContractAuthenticationResType); +void init_dinCanonicalizationMethodType(struct dinCanonicalizationMethodType* dinCanonicalizationMethodType); +void init_dinSPKIDataType(struct dinSPKIDataType* dinSPKIDataType); +void init_dinListOfRootCertificateIDsType(struct dinListOfRootCertificateIDsType* dinListOfRootCertificateIDsType); +void init_dinSelectedServiceListType(struct dinSelectedServiceListType* dinSelectedServiceListType); +void init_dinCurrentDemandResType(struct dinCurrentDemandResType* dinCurrentDemandResType); +void init_dinTransformType(struct dinTransformType* dinTransformType); +void init_dinAC_EVChargeParameterType(struct dinAC_EVChargeParameterType* dinAC_EVChargeParameterType); +void init_dinX509DataType(struct dinX509DataType* dinX509DataType); +void init_dinChargingStatusResType(struct dinChargingStatusResType* dinChargingStatusResType); +void init_dinWeldingDetectionReqType(struct dinWeldingDetectionReqType* dinWeldingDetectionReqType); +void init_dinSignaturePropertiesType(struct dinSignaturePropertiesType* dinSignaturePropertiesType); +void init_dinContractAuthenticationReqType(struct dinContractAuthenticationReqType* dinContractAuthenticationReqType); +void init_dinDC_EVPowerDeliveryParameterType(struct dinDC_EVPowerDeliveryParameterType* dinDC_EVPowerDeliveryParameterType); +void init_dinEVSEChargeParameterType(struct dinEVSEChargeParameterType* dinEVSEChargeParameterType); +void init_dinCableCheckReqType(struct dinCableCheckReqType* dinCableCheckReqType); +void init_dinDC_EVChargeParameterType(struct dinDC_EVChargeParameterType* dinDC_EVChargeParameterType); +void init_dinSAScheduleListType(struct dinSAScheduleListType* dinSAScheduleListType); +void init_dinPMaxScheduleType(struct dinPMaxScheduleType* dinPMaxScheduleType); +void init_dinServicePaymentSelectionReqType(struct dinServicePaymentSelectionReqType* dinServicePaymentSelectionReqType); +void init_dinRelativeTimeIntervalType(struct dinRelativeTimeIntervalType* dinRelativeTimeIntervalType); +void init_dinEVStatusType(struct dinEVStatusType* dinEVStatusType); +void init_dinPreChargeResType(struct dinPreChargeResType* dinPreChargeResType); +void init_dinDC_EVSEChargeParameterType(struct dinDC_EVSEChargeParameterType* dinDC_EVSEChargeParameterType); +void init_dinPaymentDetailsResType(struct dinPaymentDetailsResType* dinPaymentDetailsResType); +void init_dinDSAKeyValueType(struct dinDSAKeyValueType* dinDSAKeyValueType); +void init_dinSASchedulesType(struct dinSASchedulesType* dinSASchedulesType); +void init_dinCertificateUpdateResType(struct dinCertificateUpdateResType* dinCertificateUpdateResType); +void init_dinEVChargeParameterType(struct dinEVChargeParameterType* dinEVChargeParameterType); +void init_dinMessageHeaderType(struct dinMessageHeaderType* dinMessageHeaderType); +void init_dinBodyBaseType(struct dinBodyBaseType* dinBodyBaseType); +void init_dinKeyValueType(struct dinKeyValueType* dinKeyValueType); +void init_dinIntervalType(struct dinIntervalType* dinIntervalType); +void init_dinChargeParameterDiscoveryResType(struct dinChargeParameterDiscoveryResType* dinChargeParameterDiscoveryResType); +void init_dinPowerDeliveryReqType(struct dinPowerDeliveryReqType* dinPowerDeliveryReqType); +void init_dinCertificateChainType(struct dinCertificateChainType* dinCertificateChainType); +void init_dinTransformsType(struct dinTransformsType* dinTransformsType); +void init_dinEntryType(struct dinEntryType* dinEntryType); +void init_dinSessionStopType(struct dinSessionStopType* dinSessionStopType); +void init_dinServiceDetailReqType(struct dinServiceDetailReqType* dinServiceDetailReqType); +void init_dinDigestMethodType(struct dinDigestMethodType* dinDigestMethodType); +void init_dinParameterType(struct dinParameterType* dinParameterType); +void init_dinChargingStatusReqType(struct dinChargingStatusReqType* dinChargingStatusReqType); +void init_dinSignatureMethodType(struct dinSignatureMethodType* dinSignatureMethodType); +void init_dinCertificateInstallationReqType(struct dinCertificateInstallationReqType* dinCertificateInstallationReqType); +void init_dinSalesTariffEntryType(struct dinSalesTariffEntryType* dinSalesTariffEntryType); +void init_dinServiceDiscoveryResType(struct dinServiceDiscoveryResType* dinServiceDiscoveryResType); +void init_dinParameterSetType(struct dinParameterSetType* dinParameterSetType); +void init_dinCurrentDemandReqType(struct dinCurrentDemandReqType* dinCurrentDemandReqType); +void init_dinPreChargeReqType(struct dinPreChargeReqType* dinPreChargeReqType); +void init_dinSignatureType(struct dinSignatureType* dinSignatureType); +void init_dinReferenceType(struct dinReferenceType* dinReferenceType); +void init_dinProfileEntryType(struct dinProfileEntryType* dinProfileEntryType); +void init_dinAnonType_V2G_Message(struct dinAnonType_V2G_Message* dinAnonType_V2G_Message); +void init_dinChargeParameterDiscoveryReqType(struct dinChargeParameterDiscoveryReqType* dinChargeParameterDiscoveryReqType); +void init_dinConsumptionCostType(struct dinConsumptionCostType* dinConsumptionCostType); +void init_dinRSAKeyValueType(struct dinRSAKeyValueType* dinRSAKeyValueType); +void init_dinServiceType(struct dinServiceType* dinServiceType); +void init_dinServiceTagListType(struct dinServiceTagListType* dinServiceTagListType); +void init_dinEVSEStatusType(struct dinEVSEStatusType* dinEVSEStatusType); +void init_dinSessionSetupResType(struct dinSessionSetupResType* dinSessionSetupResType); +void init_dinEVPowerDeliveryParameterType(struct dinEVPowerDeliveryParameterType* dinEVPowerDeliveryParameterType); +void init_dinX509IssuerSerialType(struct dinX509IssuerSerialType* dinX509IssuerSerialType); +void init_dinSelectedServiceType(struct dinSelectedServiceType* dinSelectedServiceType); +void init_dinMeteringReceiptResType(struct dinMeteringReceiptResType* dinMeteringReceiptResType); +void init_dinDC_EVStatusType(struct dinDC_EVStatusType* dinDC_EVStatusType); +void init_dinPhysicalValueType(struct dinPhysicalValueType* dinPhysicalValueType); +void init_dinManifestType(struct dinManifestType* dinManifestType); +void init_dinPMaxScheduleEntryType(struct dinPMaxScheduleEntryType* dinPMaxScheduleEntryType); +void init_dinServiceParameterListType(struct dinServiceParameterListType* dinServiceParameterListType); +void init_dinSignatureValueType(struct dinSignatureValueType* dinSignatureValueType); +void init_dinPaymentOptionsType(struct dinPaymentOptionsType* dinPaymentOptionsType); +void init_dinServiceTagType(struct dinServiceTagType* dinServiceTagType); +void init_dinAC_EVSEStatusType(struct dinAC_EVSEStatusType* dinAC_EVSEStatusType); +void init_dinCertificateUpdateReqType(struct dinCertificateUpdateReqType* dinCertificateUpdateReqType); +void init_dinServicePaymentSelectionResType(struct dinServicePaymentSelectionResType* dinServicePaymentSelectionResType); +void init_dinSAScheduleTupleType(struct dinSAScheduleTupleType* dinSAScheduleTupleType); +void init_dinChargingProfileType(struct dinChargingProfileType* dinChargingProfileType); +void init_dinServiceDiscoveryReqType(struct dinServiceDiscoveryReqType* dinServiceDiscoveryReqType); +void init_dinAC_EVSEChargeParameterType(struct dinAC_EVSEChargeParameterType* dinAC_EVSEChargeParameterType); +void init_dinKeyInfoType(struct dinKeyInfoType* dinKeyInfoType); +void init_dinPaymentDetailsReqType(struct dinPaymentDetailsReqType* dinPaymentDetailsReqType); +void init_dinCableCheckResType(struct dinCableCheckResType* dinCableCheckResType); +void init_dinObjectType(struct dinObjectType* dinObjectType); +void init_dinSessionStopResType(struct dinSessionStopResType* dinSessionStopResType); +void init_dinSignedInfoType(struct dinSignedInfoType* dinSignedInfoType); +void init_dinSalesTariffType(struct dinSalesTariffType* dinSalesTariffType); +void init_dinCostType(struct dinCostType* dinCostType); +void init_dinServiceChargeType(struct dinServiceChargeType* dinServiceChargeType); +void init_dinDC_EVSEStatusType(struct dinDC_EVSEStatusType* dinDC_EVSEStatusType); +void init_dinRetrievalMethodType(struct dinRetrievalMethodType* dinRetrievalMethodType); +void init_dinNotificationType(struct dinNotificationType* dinNotificationType); +void init_dinPGPDataType(struct dinPGPDataType* dinPGPDataType); +void init_dinCertificateInstallationResType(struct dinCertificateInstallationResType* dinCertificateInstallationResType); +void init_dinSignaturePropertyType(struct dinSignaturePropertyType* dinSignaturePropertyType); +void init_dinMeterInfoType(struct dinMeterInfoType* dinMeterInfoType); +void init_dinSubCertificatesType(struct dinSubCertificatesType* dinSubCertificatesType); + + +#endif /* DEPLOY_DIN_CODEC */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/din/dinEXIDatatypesDecoder.c b/csharp/vc2022/src/din/dinEXIDatatypesDecoder.c new file mode 100644 index 0000000..3246f19 --- /dev/null +++ b/csharp/vc2022/src/din/dinEXIDatatypesDecoder.c @@ -0,0 +1,17065 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + + +#include "dinEXIDatatypesDecoder.h" + +#include "DecoderChannel.h" +#include "EXIHeaderDecoder.h" + +#include "dinEXIDatatypes.h" +#include "ErrorCodes.h" + +#ifndef EXI_din_DATATYPES_DECODER_C +#define EXI_din_DATATYPES_DECODER_C + +#if DEPLOY_DIN_CODEC == SUPPORT_YES + +/** event-code */ +static uint32_t eventCode; +static int errn; +static uint32_t uint32; + +/* Forward Declarations */ +static int decode_dinMeteringReceiptReqType(bitstream_t* stream, struct dinMeteringReceiptReqType* dinMeteringReceiptReqType); +static int decode_dinBodyType(bitstream_t* stream, struct dinBodyType* dinBodyType); +static int decode_dinSessionSetupReqType(bitstream_t* stream, struct dinSessionSetupReqType* dinSessionSetupReqType); +static int decode_dinPowerDeliveryResType(bitstream_t* stream, struct dinPowerDeliveryResType* dinPowerDeliveryResType); +static int decode_dinServiceDetailResType(bitstream_t* stream, struct dinServiceDetailResType* dinServiceDetailResType); +static int decode_dinWeldingDetectionResType(bitstream_t* stream, struct dinWeldingDetectionResType* dinWeldingDetectionResType); +static int decode_dinContractAuthenticationResType(bitstream_t* stream, struct dinContractAuthenticationResType* dinContractAuthenticationResType); +static int decode_dinCanonicalizationMethodType(bitstream_t* stream, struct dinCanonicalizationMethodType* dinCanonicalizationMethodType); +static int decode_dinSPKIDataType(bitstream_t* stream, struct dinSPKIDataType* dinSPKIDataType); +static int decode_dinListOfRootCertificateIDsType(bitstream_t* stream, struct dinListOfRootCertificateIDsType* dinListOfRootCertificateIDsType); +static int decode_dinSelectedServiceListType(bitstream_t* stream, struct dinSelectedServiceListType* dinSelectedServiceListType); +static int decode_dinCurrentDemandResType(bitstream_t* stream, struct dinCurrentDemandResType* dinCurrentDemandResType); +static int decode_dinTransformType(bitstream_t* stream, struct dinTransformType* dinTransformType); +static int decode_dinAC_EVChargeParameterType(bitstream_t* stream, struct dinAC_EVChargeParameterType* dinAC_EVChargeParameterType); +static int decode_dinX509DataType(bitstream_t* stream, struct dinX509DataType* dinX509DataType); +static int decode_dinChargingStatusResType(bitstream_t* stream, struct dinChargingStatusResType* dinChargingStatusResType); +static int decode_dinWeldingDetectionReqType(bitstream_t* stream, struct dinWeldingDetectionReqType* dinWeldingDetectionReqType); +static int decode_dinSignaturePropertiesType(bitstream_t* stream, struct dinSignaturePropertiesType* dinSignaturePropertiesType); +static int decode_dinContractAuthenticationReqType(bitstream_t* stream, struct dinContractAuthenticationReqType* dinContractAuthenticationReqType); +static int decode_dinDC_EVPowerDeliveryParameterType(bitstream_t* stream, struct dinDC_EVPowerDeliveryParameterType* dinDC_EVPowerDeliveryParameterType); +static int decode_dinEVSEChargeParameterType(bitstream_t* stream, struct dinEVSEChargeParameterType* dinEVSEChargeParameterType); +static int decode_dinCableCheckReqType(bitstream_t* stream, struct dinCableCheckReqType* dinCableCheckReqType); +static int decode_dinDC_EVChargeParameterType(bitstream_t* stream, struct dinDC_EVChargeParameterType* dinDC_EVChargeParameterType); +static int decode_dinSAScheduleListType(bitstream_t* stream, struct dinSAScheduleListType* dinSAScheduleListType); +static int decode_dinPMaxScheduleType(bitstream_t* stream, struct dinPMaxScheduleType* dinPMaxScheduleType); +static int decode_dinServicePaymentSelectionReqType(bitstream_t* stream, struct dinServicePaymentSelectionReqType* dinServicePaymentSelectionReqType); +static int decode_dinRelativeTimeIntervalType(bitstream_t* stream, struct dinRelativeTimeIntervalType* dinRelativeTimeIntervalType); +static int decode_dinEVStatusType(bitstream_t* stream, struct dinEVStatusType* dinEVStatusType); +static int decode_dinPreChargeResType(bitstream_t* stream, struct dinPreChargeResType* dinPreChargeResType); +static int decode_dinDC_EVSEChargeParameterType(bitstream_t* stream, struct dinDC_EVSEChargeParameterType* dinDC_EVSEChargeParameterType); +static int decode_dinPaymentDetailsResType(bitstream_t* stream, struct dinPaymentDetailsResType* dinPaymentDetailsResType); +static int decode_dinDSAKeyValueType(bitstream_t* stream, struct dinDSAKeyValueType* dinDSAKeyValueType); +static int decode_dinSASchedulesType(bitstream_t* stream, struct dinSASchedulesType* dinSASchedulesType); +static int decode_dinCertificateUpdateResType(bitstream_t* stream, struct dinCertificateUpdateResType* dinCertificateUpdateResType); +static int decode_dinEVChargeParameterType(bitstream_t* stream, struct dinEVChargeParameterType* dinEVChargeParameterType); +static int decode_dinMessageHeaderType(bitstream_t* stream, struct dinMessageHeaderType* dinMessageHeaderType); +static int decode_dinBodyBaseType(bitstream_t* stream, struct dinBodyBaseType* dinBodyBaseType); +static int decode_dinKeyValueType(bitstream_t* stream, struct dinKeyValueType* dinKeyValueType); +static int decode_dinIntervalType(bitstream_t* stream, struct dinIntervalType* dinIntervalType); +static int decode_dinChargeParameterDiscoveryResType(bitstream_t* stream, struct dinChargeParameterDiscoveryResType* dinChargeParameterDiscoveryResType); +static int decode_dinPowerDeliveryReqType(bitstream_t* stream, struct dinPowerDeliveryReqType* dinPowerDeliveryReqType); +static int decode_dinCertificateChainType(bitstream_t* stream, struct dinCertificateChainType* dinCertificateChainType); +static int decode_dinTransformsType(bitstream_t* stream, struct dinTransformsType* dinTransformsType); +static int decode_dinEntryType(bitstream_t* stream, struct dinEntryType* dinEntryType); +static int decode_dinSessionStopType(bitstream_t* stream, struct dinSessionStopType* dinSessionStopType); +static int decode_dinServiceDetailReqType(bitstream_t* stream, struct dinServiceDetailReqType* dinServiceDetailReqType); +static int decode_dinDigestMethodType(bitstream_t* stream, struct dinDigestMethodType* dinDigestMethodType); +static int decode_dinParameterType(bitstream_t* stream, struct dinParameterType* dinParameterType); +static int decode_dinChargingStatusReqType(bitstream_t* stream, struct dinChargingStatusReqType* dinChargingStatusReqType); +static int decode_dinSignatureMethodType(bitstream_t* stream, struct dinSignatureMethodType* dinSignatureMethodType); +static int decode_dinCertificateInstallationReqType(bitstream_t* stream, struct dinCertificateInstallationReqType* dinCertificateInstallationReqType); +static int decode_dinSalesTariffEntryType(bitstream_t* stream, struct dinSalesTariffEntryType* dinSalesTariffEntryType); +static int decode_dinServiceDiscoveryResType(bitstream_t* stream, struct dinServiceDiscoveryResType* dinServiceDiscoveryResType); +static int decode_dinParameterSetType(bitstream_t* stream, struct dinParameterSetType* dinParameterSetType); +static int decode_dinCurrentDemandReqType(bitstream_t* stream, struct dinCurrentDemandReqType* dinCurrentDemandReqType); +static int decode_dinPreChargeReqType(bitstream_t* stream, struct dinPreChargeReqType* dinPreChargeReqType); +static int decode_dinSignatureType(bitstream_t* stream, struct dinSignatureType* dinSignatureType); +static int decode_dinReferenceType(bitstream_t* stream, struct dinReferenceType* dinReferenceType); +static int decode_dinProfileEntryType(bitstream_t* stream, struct dinProfileEntryType* dinProfileEntryType); +static int decode_dinAnonType_V2G_Message(bitstream_t* stream, struct dinAnonType_V2G_Message* dinAnonType_V2G_Message); +static int decode_dinChargeParameterDiscoveryReqType(bitstream_t* stream, struct dinChargeParameterDiscoveryReqType* dinChargeParameterDiscoveryReqType); +static int decode_dinConsumptionCostType(bitstream_t* stream, struct dinConsumptionCostType* dinConsumptionCostType); +static int decode_dinRSAKeyValueType(bitstream_t* stream, struct dinRSAKeyValueType* dinRSAKeyValueType); +static int decode_dinServiceType(bitstream_t* stream, struct dinServiceType* dinServiceType); +static int decode_dinServiceTagListType(bitstream_t* stream, struct dinServiceTagListType* dinServiceTagListType); +static int decode_dinEVSEStatusType(bitstream_t* stream, struct dinEVSEStatusType* dinEVSEStatusType); +static int decode_dinSessionSetupResType(bitstream_t* stream, struct dinSessionSetupResType* dinSessionSetupResType); +static int decode_dinEVPowerDeliveryParameterType(bitstream_t* stream, struct dinEVPowerDeliveryParameterType* dinEVPowerDeliveryParameterType); +static int decode_dinX509IssuerSerialType(bitstream_t* stream, struct dinX509IssuerSerialType* dinX509IssuerSerialType); +static int decode_dinSelectedServiceType(bitstream_t* stream, struct dinSelectedServiceType* dinSelectedServiceType); +static int decode_dinMeteringReceiptResType(bitstream_t* stream, struct dinMeteringReceiptResType* dinMeteringReceiptResType); +static int decode_dinDC_EVStatusType(bitstream_t* stream, struct dinDC_EVStatusType* dinDC_EVStatusType); +static int decode_dinPhysicalValueType(bitstream_t* stream, struct dinPhysicalValueType* dinPhysicalValueType); +static int decode_dinManifestType(bitstream_t* stream, struct dinManifestType* dinManifestType); +static int decode_dinPMaxScheduleEntryType(bitstream_t* stream, struct dinPMaxScheduleEntryType* dinPMaxScheduleEntryType); +static int decode_dinServiceParameterListType(bitstream_t* stream, struct dinServiceParameterListType* dinServiceParameterListType); +static int decode_dinSignatureValueType(bitstream_t* stream, struct dinSignatureValueType* dinSignatureValueType); +static int decode_dinPaymentOptionsType(bitstream_t* stream, struct dinPaymentOptionsType* dinPaymentOptionsType); +static int decode_dinServiceTagType(bitstream_t* stream, struct dinServiceTagType* dinServiceTagType); +static int decode_dinAC_EVSEStatusType(bitstream_t* stream, struct dinAC_EVSEStatusType* dinAC_EVSEStatusType); +static int decode_dinCertificateUpdateReqType(bitstream_t* stream, struct dinCertificateUpdateReqType* dinCertificateUpdateReqType); +static int decode_dinServicePaymentSelectionResType(bitstream_t* stream, struct dinServicePaymentSelectionResType* dinServicePaymentSelectionResType); +static int decode_dinSAScheduleTupleType(bitstream_t* stream, struct dinSAScheduleTupleType* dinSAScheduleTupleType); +static int decode_dinChargingProfileType(bitstream_t* stream, struct dinChargingProfileType* dinChargingProfileType); +static int decode_dinServiceDiscoveryReqType(bitstream_t* stream, struct dinServiceDiscoveryReqType* dinServiceDiscoveryReqType); +static int decode_dinAC_EVSEChargeParameterType(bitstream_t* stream, struct dinAC_EVSEChargeParameterType* dinAC_EVSEChargeParameterType); +static int decode_dinKeyInfoType(bitstream_t* stream, struct dinKeyInfoType* dinKeyInfoType); +static int decode_dinPaymentDetailsReqType(bitstream_t* stream, struct dinPaymentDetailsReqType* dinPaymentDetailsReqType); +static int decode_dinCableCheckResType(bitstream_t* stream, struct dinCableCheckResType* dinCableCheckResType); +static int decode_dinObjectType(bitstream_t* stream, struct dinObjectType* dinObjectType); +static int decode_dinSessionStopResType(bitstream_t* stream, struct dinSessionStopResType* dinSessionStopResType); +static int decode_dinSignedInfoType(bitstream_t* stream, struct dinSignedInfoType* dinSignedInfoType); +static int decode_dinSalesTariffType(bitstream_t* stream, struct dinSalesTariffType* dinSalesTariffType); +static int decode_dinCostType(bitstream_t* stream, struct dinCostType* dinCostType); +static int decode_dinServiceChargeType(bitstream_t* stream, struct dinServiceChargeType* dinServiceChargeType); +static int decode_dinDC_EVSEStatusType(bitstream_t* stream, struct dinDC_EVSEStatusType* dinDC_EVSEStatusType); +static int decode_dinRetrievalMethodType(bitstream_t* stream, struct dinRetrievalMethodType* dinRetrievalMethodType); +static int decode_dinNotificationType(bitstream_t* stream, struct dinNotificationType* dinNotificationType); +static int decode_dinPGPDataType(bitstream_t* stream, struct dinPGPDataType* dinPGPDataType); +static int decode_dinCertificateInstallationResType(bitstream_t* stream, struct dinCertificateInstallationResType* dinCertificateInstallationResType); +static int decode_dinSignaturePropertyType(bitstream_t* stream, struct dinSignaturePropertyType* dinSignaturePropertyType); +static int decode_dinMeterInfoType(bitstream_t* stream, struct dinMeterInfoType* dinMeterInfoType); +static int decode_dinSubCertificatesType(bitstream_t* stream, struct dinSubCertificatesType* dinSubCertificatesType); + +/* Deviant data decoding (skip functions) */ + + + /* Complex type name='urn:iso:15118:2:2010:MsgBody,MeteringReceiptReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":SessionID,"urn:iso:15118:2:2010:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2010:MsgBody":MeterInfo)', derivedBy='EXTENSION'. */ +static int decode_dinMeteringReceiptReqType(bitstream_t* stream, struct dinMeteringReceiptReqType* dinMeteringReceiptReqType) { + int grammarID = 0; + int done = 0; + + init_dinMeteringReceiptReqType(dinMeteringReceiptReqType); + + while(!done) { + switch(grammarID) { + case 0: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinMeteringReceiptReqType->Id.charactersLen); + if (errn == 0) { + if (dinMeteringReceiptReqType->Id.charactersLen >= 2) { + dinMeteringReceiptReqType->Id.charactersLen = (uint16_t)(dinMeteringReceiptReqType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinMeteringReceiptReqType->Id.charactersLen, dinMeteringReceiptReqType->Id.characters, dinMeteringReceiptReqType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinMeteringReceiptReqType->Id_isUsed = 1u; + grammarID = 1; + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinMeteringReceiptReqType->SessionID.bytesLen); + if (errn == 0) { + errn = (dinMeteringReceiptReqType->SessionID.bytesLen) <= dinMeteringReceiptReqType_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinMeteringReceiptReqType->SessionID.bytesLen, dinMeteringReceiptReqType->SessionID.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinMeteringReceiptReqType->SessionID.bytesLen); + if (errn == 0) { + errn = (dinMeteringReceiptReqType->SessionID.bytesLen) <= dinMeteringReceiptReqType_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinMeteringReceiptReqType->SessionID.bytesLen, dinMeteringReceiptReqType->SessionID.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &dinMeteringReceiptReqType->SAScheduleTupleID); + dinMeteringReceiptReqType->SAScheduleTupleID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_dinMeterInfoType(stream, &dinMeteringReceiptReqType->MeterInfo); + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinMeterInfoType(stream, &dinMeteringReceiptReqType->MeterInfo); + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDef,BodyType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDef":BodyElement{0-1})', derivedBy='RESTRICTION'. */ +static int decode_dinBodyType(bitstream_t* stream, struct dinBodyType* dinBodyType) { + int grammarID = 6; + int done = 0; + + init_dinBodyType(dinBodyType); + + while(!done) { + switch(grammarID) { + case 6: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 6, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinBodyBaseType(stream, &dinBodyType->BodyElement); + dinBodyType->BodyElement_isUsed = 1u; + grammarID = 4; + break; + case 1: + errn = decode_dinCableCheckReqType(stream, &dinBodyType->CableCheckReq); + dinBodyType->CableCheckReq_isUsed = 1u; + grammarID = 4; + break; + case 2: + errn = decode_dinCableCheckResType(stream, &dinBodyType->CableCheckRes); + dinBodyType->CableCheckRes_isUsed = 1u; + grammarID = 4; + break; + case 3: + errn = decode_dinCertificateInstallationReqType(stream, &dinBodyType->CertificateInstallationReq); + dinBodyType->CertificateInstallationReq_isUsed = 1u; + grammarID = 4; + break; + case 4: + errn = decode_dinCertificateInstallationResType(stream, &dinBodyType->CertificateInstallationRes); + dinBodyType->CertificateInstallationRes_isUsed = 1u; + grammarID = 4; + break; + case 5: + errn = decode_dinCertificateUpdateReqType(stream, &dinBodyType->CertificateUpdateReq); + dinBodyType->CertificateUpdateReq_isUsed = 1u; + grammarID = 4; + break; + case 6: + errn = decode_dinCertificateUpdateResType(stream, &dinBodyType->CertificateUpdateRes); + dinBodyType->CertificateUpdateRes_isUsed = 1u; + grammarID = 4; + break; + case 7: + errn = decode_dinChargeParameterDiscoveryReqType(stream, &dinBodyType->ChargeParameterDiscoveryReq); + dinBodyType->ChargeParameterDiscoveryReq_isUsed = 1u; + grammarID = 4; + break; + case 8: + errn = decode_dinChargeParameterDiscoveryResType(stream, &dinBodyType->ChargeParameterDiscoveryRes); + dinBodyType->ChargeParameterDiscoveryRes_isUsed = 1u; + grammarID = 4; + break; + case 9: + errn = decode_dinChargingStatusReqType(stream, &dinBodyType->ChargingStatusReq); + dinBodyType->ChargingStatusReq_isUsed = 1u; + grammarID = 4; + break; + case 10: + errn = decode_dinChargingStatusResType(stream, &dinBodyType->ChargingStatusRes); + dinBodyType->ChargingStatusRes_isUsed = 1u; + grammarID = 4; + break; + case 11: + errn = decode_dinContractAuthenticationReqType(stream, &dinBodyType->ContractAuthenticationReq); + dinBodyType->ContractAuthenticationReq_isUsed = 1u; + grammarID = 4; + break; + case 12: + errn = decode_dinContractAuthenticationResType(stream, &dinBodyType->ContractAuthenticationRes); + dinBodyType->ContractAuthenticationRes_isUsed = 1u; + grammarID = 4; + break; + case 13: + errn = decode_dinCurrentDemandReqType(stream, &dinBodyType->CurrentDemandReq); + dinBodyType->CurrentDemandReq_isUsed = 1u; + grammarID = 4; + break; + case 14: + errn = decode_dinCurrentDemandResType(stream, &dinBodyType->CurrentDemandRes); + dinBodyType->CurrentDemandRes_isUsed = 1u; + grammarID = 4; + break; + case 15: + errn = decode_dinMeteringReceiptReqType(stream, &dinBodyType->MeteringReceiptReq); + dinBodyType->MeteringReceiptReq_isUsed = 1u; + grammarID = 4; + break; + case 16: + errn = decode_dinMeteringReceiptResType(stream, &dinBodyType->MeteringReceiptRes); + dinBodyType->MeteringReceiptRes_isUsed = 1u; + grammarID = 4; + break; + case 17: + errn = decode_dinPaymentDetailsReqType(stream, &dinBodyType->PaymentDetailsReq); + dinBodyType->PaymentDetailsReq_isUsed = 1u; + grammarID = 4; + break; + case 18: + errn = decode_dinPaymentDetailsResType(stream, &dinBodyType->PaymentDetailsRes); + dinBodyType->PaymentDetailsRes_isUsed = 1u; + grammarID = 4; + break; + case 19: + errn = decode_dinPowerDeliveryReqType(stream, &dinBodyType->PowerDeliveryReq); + dinBodyType->PowerDeliveryReq_isUsed = 1u; + grammarID = 4; + break; + case 20: + errn = decode_dinPowerDeliveryResType(stream, &dinBodyType->PowerDeliveryRes); + dinBodyType->PowerDeliveryRes_isUsed = 1u; + grammarID = 4; + break; + case 21: + errn = decode_dinPreChargeReqType(stream, &dinBodyType->PreChargeReq); + dinBodyType->PreChargeReq_isUsed = 1u; + grammarID = 4; + break; + case 22: + errn = decode_dinPreChargeResType(stream, &dinBodyType->PreChargeRes); + dinBodyType->PreChargeRes_isUsed = 1u; + grammarID = 4; + break; + case 23: + errn = decode_dinServiceDetailReqType(stream, &dinBodyType->ServiceDetailReq); + dinBodyType->ServiceDetailReq_isUsed = 1u; + grammarID = 4; + break; + case 24: + errn = decode_dinServiceDetailResType(stream, &dinBodyType->ServiceDetailRes); + dinBodyType->ServiceDetailRes_isUsed = 1u; + grammarID = 4; + break; + case 25: + errn = decode_dinServiceDiscoveryReqType(stream, &dinBodyType->ServiceDiscoveryReq); + dinBodyType->ServiceDiscoveryReq_isUsed = 1u; + grammarID = 4; + break; + case 26: + errn = decode_dinServiceDiscoveryResType(stream, &dinBodyType->ServiceDiscoveryRes); + dinBodyType->ServiceDiscoveryRes_isUsed = 1u; + grammarID = 4; + break; + case 27: + errn = decode_dinServicePaymentSelectionReqType(stream, &dinBodyType->ServicePaymentSelectionReq); + dinBodyType->ServicePaymentSelectionReq_isUsed = 1u; + grammarID = 4; + break; + case 28: + errn = decode_dinServicePaymentSelectionResType(stream, &dinBodyType->ServicePaymentSelectionRes); + dinBodyType->ServicePaymentSelectionRes_isUsed = 1u; + grammarID = 4; + break; + case 29: + errn = decode_dinSessionSetupReqType(stream, &dinBodyType->SessionSetupReq); + dinBodyType->SessionSetupReq_isUsed = 1u; + grammarID = 4; + break; + case 30: + errn = decode_dinSessionSetupResType(stream, &dinBodyType->SessionSetupRes); + dinBodyType->SessionSetupRes_isUsed = 1u; + grammarID = 4; + break; + case 31: + errn = decode_dinSessionStopType(stream, &dinBodyType->SessionStopReq); + dinBodyType->SessionStopReq_isUsed = 1u; + grammarID = 4; + break; + case 32: + errn = decode_dinSessionStopResType(stream, &dinBodyType->SessionStopRes); + dinBodyType->SessionStopRes_isUsed = 1u; + grammarID = 4; + break; + case 33: + errn = decode_dinWeldingDetectionReqType(stream, &dinBodyType->WeldingDetectionReq); + dinBodyType->WeldingDetectionReq_isUsed = 1u; + grammarID = 4; + break; + case 34: + errn = decode_dinWeldingDetectionResType(stream, &dinBodyType->WeldingDetectionRes); + dinBodyType->WeldingDetectionRes_isUsed = 1u; + grammarID = 4; + break; + case 35: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,SessionSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":EVCCID)', derivedBy='EXTENSION'. */ +static int decode_dinSessionSetupReqType(bitstream_t* stream, struct dinSessionSetupReqType* dinSessionSetupReqType) { + int grammarID = 7; + int done = 0; + + init_dinSessionSetupReqType(dinSessionSetupReqType); + + while(!done) { + switch(grammarID) { + case 7: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVCCID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinSessionSetupReqType->EVCCID.bytesLen); + if (errn == 0) { + errn = (dinSessionSetupReqType->EVCCID.bytesLen) <= dinSessionSetupReqType_EVCCID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinSessionSetupReqType->EVCCID.bytesLen, dinSessionSetupReqType->EVCCID.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVCCID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,PowerDeliveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */ +static int decode_dinPowerDeliveryResType(bitstream_t* stream, struct dinPowerDeliveryResType* dinPowerDeliveryResType) { + int grammarID = 8; + int done = 0; + + init_dinPowerDeliveryResType(dinPowerDeliveryResType); + + while(!done) { + switch(grammarID) { + case 8: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + dinPowerDeliveryResType->ResponseCode = (dinresponseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 9; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 9: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinAC_EVSEStatusType(stream, &dinPowerDeliveryResType->AC_EVSEStatus); + dinPowerDeliveryResType->AC_EVSEStatus_isUsed = 1u; + grammarID = 4; + break; + case 1: + errn = decode_dinDC_EVSEStatusType(stream, &dinPowerDeliveryResType->DC_EVSEStatus); + dinPowerDeliveryResType->DC_EVSEStatus_isUsed = 1u; + grammarID = 4; + break; + case 2: + errn = decode_dinEVSEStatusType(stream, &dinPowerDeliveryResType->EVSEStatus); + dinPowerDeliveryResType->EVSEStatus_isUsed = 1u; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ServiceDetailResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":ServiceID,"urn:iso:15118:2:2010:MsgBody":ServiceParameterList{0-1})', derivedBy='EXTENSION'. */ +static int decode_dinServiceDetailResType(bitstream_t* stream, struct dinServiceDetailResType* dinServiceDetailResType) { + int grammarID = 10; + int done = 0; + + init_dinServiceDetailResType(dinServiceDetailResType); + + while(!done) { + switch(grammarID) { + case 10: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + dinServiceDetailResType->ResponseCode = (dinresponseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 11; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 11: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinServiceDetailResType->ServiceID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 12; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 12: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceParameterList), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinServiceParameterListType(stream, &dinServiceDetailResType->ServiceParameterList); + dinServiceDetailResType->ServiceParameterList_isUsed = 1u; + grammarID = 4; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,WeldingDetectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */ +static int decode_dinWeldingDetectionResType(bitstream_t* stream, struct dinWeldingDetectionResType* dinWeldingDetectionResType) { + int grammarID = 13; + int done = 0; + + init_dinWeldingDetectionResType(dinWeldingDetectionResType); + + while(!done) { + switch(grammarID) { + case 13: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + dinWeldingDetectionResType->ResponseCode = (dinresponseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 14; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 14: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinDC_EVSEStatusType(stream, &dinWeldingDetectionResType->DC_EVSEStatus); + grammarID = 15; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 15: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinWeldingDetectionResType->EVSEPresentVoltage); + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ContractAuthenticationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */ +static int decode_dinContractAuthenticationResType(bitstream_t* stream, struct dinContractAuthenticationResType* dinContractAuthenticationResType) { + int grammarID = 16; + int done = 0; + + init_dinContractAuthenticationResType(dinContractAuthenticationResType); + + while(!done) { + switch(grammarID) { + case 16: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + dinContractAuthenticationResType->ResponseCode = (dinresponseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 17; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 17: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + dinContractAuthenticationResType->EVSEProcessing = (dinEVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinCanonicalizationMethodType(bitstream_t* stream, struct dinCanonicalizationMethodType* dinCanonicalizationMethodType) { + int grammarID = 18; + int done = 0; + + init_dinCanonicalizationMethodType(dinCanonicalizationMethodType); + + while(!done) { + switch(grammarID) { + case 18: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinCanonicalizationMethodType->Algorithm.charactersLen); + if (errn == 0) { + if (dinCanonicalizationMethodType->Algorithm.charactersLen >= 2) { + dinCanonicalizationMethodType->Algorithm.charactersLen = (uint16_t)(dinCanonicalizationMethodType->Algorithm.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinCanonicalizationMethodType->Algorithm.charactersLen, dinCanonicalizationMethodType->Algorithm.characters, dinCanonicalizationMethodType_Algorithm_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 19; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 19: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 20; + break; + case 1: + done = 1; + grammarID = 5; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &dinCanonicalizationMethodType->ANY.charactersLen); + if (errn == 0) { + if (dinCanonicalizationMethodType->ANY.charactersLen >= 2) { + dinCanonicalizationMethodType->ANY.charactersLen = (uint16_t)(dinCanonicalizationMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinCanonicalizationMethodType->ANY.charactersLen, dinCanonicalizationMethodType->ANY.characters, dinCanonicalizationMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinCanonicalizationMethodType->ANY_isUsed = 1u; + grammarID = 20; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 20: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 20; + break; + case 1: + done = 1; + grammarID = 5; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &dinCanonicalizationMethodType->ANY.charactersLen); + if (errn == 0) { + if (dinCanonicalizationMethodType->ANY.charactersLen >= 2) { + dinCanonicalizationMethodType->ANY.charactersLen = (uint16_t)(dinCanonicalizationMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinCanonicalizationMethodType->ANY.charactersLen, dinCanonicalizationMethodType->ANY.characters, dinCanonicalizationMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinCanonicalizationMethodType->ANY_isUsed = 1u; + grammarID = 20; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_dinSPKIDataType(bitstream_t* stream, struct dinSPKIDataType* dinSPKIDataType) { + int grammarID = 21; + int done = 0; + + init_dinSPKIDataType(dinSPKIDataType); + + while(!done) { + switch(grammarID) { + case 21: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinSPKIDataType->SPKISexp.arrayLen < dinSPKIDataType_SPKISexp_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinSPKIDataType->SPKISexp.array[dinSPKIDataType->SPKISexp.arrayLen].bytesLen); + if (errn == 0) { + errn = (dinSPKIDataType->SPKISexp.array[dinSPKIDataType->SPKISexp.arrayLen].bytesLen) <= dinSPKIDataType_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinSPKIDataType->SPKISexp.array[dinSPKIDataType->SPKISexp.arrayLen].bytesLen, dinSPKIDataType->SPKISexp.array[dinSPKIDataType->SPKISexp.arrayLen].bytes); + } + dinSPKIDataType->SPKISexp.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 22; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 22: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinSPKIDataType->SPKISexp.arrayLen < dinSPKIDataType_SPKISexp_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinSPKIDataType->SPKISexp.array[dinSPKIDataType->SPKISexp.arrayLen].bytesLen); + if (errn == 0) { + errn = (dinSPKIDataType->SPKISexp.array[dinSPKIDataType->SPKISexp.arrayLen].bytesLen) <= dinSPKIDataType_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinSPKIDataType->SPKISexp.array[dinSPKIDataType->SPKISexp.arrayLen].bytesLen, dinSPKIDataType->SPKISexp.array[dinSPKIDataType->SPKISexp.arrayLen].bytes); + } + dinSPKIDataType->SPKISexp.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 22; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 23; + break; + case 2: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 23: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinSPKIDataType->SPKISexp.arrayLen < dinSPKIDataType_SPKISexp_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinSPKIDataType->SPKISexp.array[dinSPKIDataType->SPKISexp.arrayLen].bytesLen); + if (errn == 0) { + errn = (dinSPKIDataType->SPKISexp.array[dinSPKIDataType->SPKISexp.arrayLen].bytesLen) <= dinSPKIDataType_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinSPKIDataType->SPKISexp.array[dinSPKIDataType->SPKISexp.arrayLen].bytesLen, dinSPKIDataType->SPKISexp.array[dinSPKIDataType->SPKISexp.arrayLen].bytes); + } + dinSPKIDataType->SPKISexp.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 22; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":RootCertificateID{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinListOfRootCertificateIDsType(bitstream_t* stream, struct dinListOfRootCertificateIDsType* dinListOfRootCertificateIDsType) { + int grammarID = 24; + int done = 0; + + init_dinListOfRootCertificateIDsType(dinListOfRootCertificateIDsType); + + while(!done) { + switch(grammarID) { + case 24: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinListOfRootCertificateIDsType->RootCertificateID.arrayLen < dinListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinListOfRootCertificateIDsType->RootCertificateID.array[dinListOfRootCertificateIDsType->RootCertificateID.arrayLen].charactersLen); + if (errn == 0) { + if (dinListOfRootCertificateIDsType->RootCertificateID.array[dinListOfRootCertificateIDsType->RootCertificateID.arrayLen].charactersLen >= 2) { + dinListOfRootCertificateIDsType->RootCertificateID.array[dinListOfRootCertificateIDsType->RootCertificateID.arrayLen].charactersLen = (uint16_t)(dinListOfRootCertificateIDsType->RootCertificateID.array[dinListOfRootCertificateIDsType->RootCertificateID.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinListOfRootCertificateIDsType->RootCertificateID.array[dinListOfRootCertificateIDsType->RootCertificateID.arrayLen].charactersLen, dinListOfRootCertificateIDsType->RootCertificateID.array[dinListOfRootCertificateIDsType->RootCertificateID.arrayLen].characters, dinListOfRootCertificateIDsType_RootCertificateID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinListOfRootCertificateIDsType->RootCertificateID.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 25; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 25: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinListOfRootCertificateIDsType->RootCertificateID.arrayLen < dinListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinListOfRootCertificateIDsType->RootCertificateID.array[dinListOfRootCertificateIDsType->RootCertificateID.arrayLen].charactersLen); + if (errn == 0) { + if (dinListOfRootCertificateIDsType->RootCertificateID.array[dinListOfRootCertificateIDsType->RootCertificateID.arrayLen].charactersLen >= 2) { + dinListOfRootCertificateIDsType->RootCertificateID.array[dinListOfRootCertificateIDsType->RootCertificateID.arrayLen].charactersLen = (uint16_t)(dinListOfRootCertificateIDsType->RootCertificateID.array[dinListOfRootCertificateIDsType->RootCertificateID.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinListOfRootCertificateIDsType->RootCertificateID.array[dinListOfRootCertificateIDsType->RootCertificateID.arrayLen].charactersLen, dinListOfRootCertificateIDsType->RootCertificateID.array[dinListOfRootCertificateIDsType->RootCertificateID.arrayLen].characters, dinListOfRootCertificateIDsType_RootCertificateID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinListOfRootCertificateIDsType->RootCertificateID.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 25; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SelectedServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SelectedService{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinSelectedServiceListType(bitstream_t* stream, struct dinSelectedServiceListType* dinSelectedServiceListType) { + int grammarID = 26; + int done = 0; + + init_dinSelectedServiceListType(dinSelectedServiceListType); + + while(!done) { + switch(grammarID) { + case 26: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinSelectedServiceListType->SelectedService.arrayLen < dinSelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_dinSelectedServiceType(stream, &dinSelectedServiceListType->SelectedService.array[dinSelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 27; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 27: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinSelectedServiceListType->SelectedService.arrayLen < dinSelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_dinSelectedServiceType(stream, &dinSelectedServiceListType->SelectedService.array[dinSelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 27; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CurrentDemandResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2010:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2010:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2010:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2010:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2010:MsgBody":EVSEMaximumVoltageLimit{0-1},"urn:iso:15118:2:2010:MsgBody":EVSEMaximumCurrentLimit{0-1},"urn:iso:15118:2:2010:MsgBody":EVSEMaximumPowerLimit{0-1})', derivedBy='EXTENSION'. */ +static int decode_dinCurrentDemandResType(bitstream_t* stream, struct dinCurrentDemandResType* dinCurrentDemandResType) { + int grammarID = 28; + int done = 0; + + init_dinCurrentDemandResType(dinCurrentDemandResType); + + while(!done) { + switch(grammarID) { + case 28: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + dinCurrentDemandResType->ResponseCode = (dinresponseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 29; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 29: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinDC_EVSEStatusType(stream, &dinCurrentDemandResType->DC_EVSEStatus); + grammarID = 30; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 30: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandResType->EVSEPresentVoltage); + grammarID = 31; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 31: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandResType->EVSEPresentCurrent); + grammarID = 32; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 32: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSECurrentLimitAchieved)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinCurrentDemandResType->EVSECurrentLimitAchieved); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSECurrentLimitAchieved) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 33; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 33: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltageLimitAchieved)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinCurrentDemandResType->EVSEVoltageLimitAchieved); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltageLimitAchieved) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 34; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 34: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPowerLimitAchieved)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinCurrentDemandResType->EVSEPowerLimitAchieved); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPowerLimitAchieved) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 35; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 35: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandResType->EVSEMaximumVoltageLimit); + dinCurrentDemandResType->EVSEMaximumVoltageLimit_isUsed = 1u; + grammarID = 36; + break; + case 1: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandResType->EVSEMaximumCurrentLimit); + dinCurrentDemandResType->EVSEMaximumCurrentLimit_isUsed = 1u; + grammarID = 37; + break; + case 2: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandResType->EVSEMaximumPowerLimit); + dinCurrentDemandResType->EVSEMaximumPowerLimit_isUsed = 1u; + grammarID = 4; + break; + case 3: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 36: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandResType->EVSEMaximumCurrentLimit); + dinCurrentDemandResType->EVSEMaximumCurrentLimit_isUsed = 1u; + grammarID = 37; + break; + case 1: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandResType->EVSEMaximumPowerLimit); + dinCurrentDemandResType->EVSEMaximumPowerLimit_isUsed = 1u; + grammarID = 4; + break; + case 2: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 37: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandResType->EVSEMaximumPowerLimit); + dinCurrentDemandResType->EVSEMaximumPowerLimit_isUsed = 1u; + grammarID = 4; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_dinTransformType(bitstream_t* stream, struct dinTransformType* dinTransformType) { + int grammarID = 38; + int done = 0; + + init_dinTransformType(dinTransformType); + + while(!done) { + switch(grammarID) { + case 38: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinTransformType->Algorithm.charactersLen); + if (errn == 0) { + if (dinTransformType->Algorithm.charactersLen >= 2) { + dinTransformType->Algorithm.charactersLen = (uint16_t)(dinTransformType->Algorithm.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinTransformType->Algorithm.charactersLen, dinTransformType->Algorithm.characters, dinTransformType_Algorithm_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 39; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 39: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinTransformType->XPath.arrayLen < dinTransformType_XPath_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinTransformType->XPath.array[dinTransformType->XPath.arrayLen].charactersLen); + if (errn == 0) { + if (dinTransformType->XPath.array[dinTransformType->XPath.arrayLen].charactersLen >= 2) { + dinTransformType->XPath.array[dinTransformType->XPath.arrayLen].charactersLen = (uint16_t)(dinTransformType->XPath.array[dinTransformType->XPath.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinTransformType->XPath.array[dinTransformType->XPath.arrayLen].charactersLen, dinTransformType->XPath.array[dinTransformType->XPath.arrayLen].characters, dinTransformType_XPath_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinTransformType->XPath.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 40; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 40; + break; + case 2: + done = 1; + grammarID = 5; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &dinTransformType->ANY.charactersLen); + if (errn == 0) { + if (dinTransformType->ANY.charactersLen >= 2) { + dinTransformType->ANY.charactersLen = (uint16_t)(dinTransformType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinTransformType->ANY.charactersLen, dinTransformType->ANY.characters, dinTransformType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinTransformType->ANY_isUsed = 1u; + grammarID = 40; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 40: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinTransformType->XPath.arrayLen < dinTransformType_XPath_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinTransformType->XPath.array[dinTransformType->XPath.arrayLen].charactersLen); + if (errn == 0) { + if (dinTransformType->XPath.array[dinTransformType->XPath.arrayLen].charactersLen >= 2) { + dinTransformType->XPath.array[dinTransformType->XPath.arrayLen].charactersLen = (uint16_t)(dinTransformType->XPath.array[dinTransformType->XPath.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinTransformType->XPath.array[dinTransformType->XPath.arrayLen].charactersLen, dinTransformType->XPath.array[dinTransformType->XPath.arrayLen].characters, dinTransformType_XPath_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinTransformType->XPath.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 40; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 40; + break; + case 2: + done = 1; + grammarID = 5; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &dinTransformType->ANY.charactersLen); + if (errn == 0) { + if (dinTransformType->ANY.charactersLen >= 2) { + dinTransformType->ANY.charactersLen = (uint16_t)(dinTransformType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinTransformType->ANY.charactersLen, dinTransformType->ANY.characters, dinTransformType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinTransformType->ANY_isUsed = 1u; + grammarID = 40; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,AC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":DepartureTime,"urn:iso:15118:2:2010:MsgDataTypes":EAmount,"urn:iso:15118:2:2010:MsgDataTypes":EVMaxVoltage,"urn:iso:15118:2:2010:MsgDataTypes":EVMaxCurrent,"urn:iso:15118:2:2010:MsgDataTypes":EVMinCurrent)', derivedBy='EXTENSION'. */ +static int decode_dinAC_EVChargeParameterType(bitstream_t* stream, struct dinAC_EVChargeParameterType* dinAC_EVChargeParameterType) { + int grammarID = 41; + int done = 0; + + init_dinAC_EVChargeParameterType(dinAC_EVChargeParameterType); + + while(!done) { + switch(grammarID) { + case 41: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &dinAC_EVChargeParameterType->DepartureTime); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 42; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 42: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EAmount)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinAC_EVChargeParameterType->EAmount); + grammarID = 43; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 43: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinAC_EVChargeParameterType->EVMaxVoltage); + grammarID = 44; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 44: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinAC_EVChargeParameterType->EVMaxCurrent); + grammarID = 45; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 45: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMinCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinAC_EVChargeParameterType->EVMinCurrent); + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_dinX509DataType(bitstream_t* stream, struct dinX509DataType* dinX509DataType) { + int grammarID = 46; + int done = 0; + + init_dinX509DataType(dinX509DataType); + + while(!done) { + switch(grammarID) { + case 46: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinX509DataType->X509IssuerSerial.arrayLen < dinX509DataType_X509IssuerSerial_ARRAY_SIZE) { + errn = decode_dinX509IssuerSerialType(stream, &dinX509DataType->X509IssuerSerial.array[dinX509DataType->X509IssuerSerial.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 47; + break; + case 1: + if (dinX509DataType->X509SKI.arrayLen < dinX509DataType_X509SKI_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinX509DataType->X509SKI.array[dinX509DataType->X509SKI.arrayLen].bytesLen); + if (errn == 0) { + errn = (dinX509DataType->X509SKI.array[dinX509DataType->X509SKI.arrayLen].bytesLen) <= dinX509DataType_X509SKI_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinX509DataType->X509SKI.array[dinX509DataType->X509SKI.arrayLen].bytesLen, dinX509DataType->X509SKI.array[dinX509DataType->X509SKI.arrayLen].bytes); + } + dinX509DataType->X509SKI.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 47; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + if (dinX509DataType->X509SubjectName.arrayLen < dinX509DataType_X509SubjectName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinX509DataType->X509SubjectName.array[dinX509DataType->X509SubjectName.arrayLen].charactersLen); + if (errn == 0) { + if (dinX509DataType->X509SubjectName.array[dinX509DataType->X509SubjectName.arrayLen].charactersLen >= 2) { + dinX509DataType->X509SubjectName.array[dinX509DataType->X509SubjectName.arrayLen].charactersLen = (uint16_t)(dinX509DataType->X509SubjectName.array[dinX509DataType->X509SubjectName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinX509DataType->X509SubjectName.array[dinX509DataType->X509SubjectName.arrayLen].charactersLen, dinX509DataType->X509SubjectName.array[dinX509DataType->X509SubjectName.arrayLen].characters, dinX509DataType_X509SubjectName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinX509DataType->X509SubjectName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 47; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + if (dinX509DataType->X509Certificate.arrayLen < dinX509DataType_X509Certificate_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinX509DataType->X509Certificate.array[dinX509DataType->X509Certificate.arrayLen].bytesLen); + if (errn == 0) { + errn = (dinX509DataType->X509Certificate.array[dinX509DataType->X509Certificate.arrayLen].bytesLen) <= dinX509DataType_X509Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinX509DataType->X509Certificate.array[dinX509DataType->X509Certificate.arrayLen].bytesLen, dinX509DataType->X509Certificate.array[dinX509DataType->X509Certificate.arrayLen].bytes); + } + dinX509DataType->X509Certificate.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 47; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + if (dinX509DataType->X509CRL.arrayLen < dinX509DataType_X509CRL_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinX509DataType->X509CRL.array[dinX509DataType->X509CRL.arrayLen].bytesLen); + if (errn == 0) { + errn = (dinX509DataType->X509CRL.array[dinX509DataType->X509CRL.arrayLen].bytesLen) <= dinX509DataType_X509CRL_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinX509DataType->X509CRL.array[dinX509DataType->X509CRL.arrayLen].bytesLen, dinX509DataType->X509CRL.array[dinX509DataType->X509CRL.arrayLen].bytes); + } + dinX509DataType->X509CRL.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 47; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 47; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 47: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinX509DataType->X509IssuerSerial.arrayLen < dinX509DataType_X509IssuerSerial_ARRAY_SIZE) { + errn = decode_dinX509IssuerSerialType(stream, &dinX509DataType->X509IssuerSerial.array[dinX509DataType->X509IssuerSerial.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 47; + break; + case 1: + if (dinX509DataType->X509SKI.arrayLen < dinX509DataType_X509SKI_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinX509DataType->X509SKI.array[dinX509DataType->X509SKI.arrayLen].bytesLen); + if (errn == 0) { + errn = (dinX509DataType->X509SKI.array[dinX509DataType->X509SKI.arrayLen].bytesLen) <= dinX509DataType_X509SKI_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinX509DataType->X509SKI.array[dinX509DataType->X509SKI.arrayLen].bytesLen, dinX509DataType->X509SKI.array[dinX509DataType->X509SKI.arrayLen].bytes); + } + dinX509DataType->X509SKI.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 47; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + if (dinX509DataType->X509SubjectName.arrayLen < dinX509DataType_X509SubjectName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinX509DataType->X509SubjectName.array[dinX509DataType->X509SubjectName.arrayLen].charactersLen); + if (errn == 0) { + if (dinX509DataType->X509SubjectName.array[dinX509DataType->X509SubjectName.arrayLen].charactersLen >= 2) { + dinX509DataType->X509SubjectName.array[dinX509DataType->X509SubjectName.arrayLen].charactersLen = (uint16_t)(dinX509DataType->X509SubjectName.array[dinX509DataType->X509SubjectName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinX509DataType->X509SubjectName.array[dinX509DataType->X509SubjectName.arrayLen].charactersLen, dinX509DataType->X509SubjectName.array[dinX509DataType->X509SubjectName.arrayLen].characters, dinX509DataType_X509SubjectName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinX509DataType->X509SubjectName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 47; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + if (dinX509DataType->X509Certificate.arrayLen < dinX509DataType_X509Certificate_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinX509DataType->X509Certificate.array[dinX509DataType->X509Certificate.arrayLen].bytesLen); + if (errn == 0) { + errn = (dinX509DataType->X509Certificate.array[dinX509DataType->X509Certificate.arrayLen].bytesLen) <= dinX509DataType_X509Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinX509DataType->X509Certificate.array[dinX509DataType->X509Certificate.arrayLen].bytesLen, dinX509DataType->X509Certificate.array[dinX509DataType->X509Certificate.arrayLen].bytes); + } + dinX509DataType->X509Certificate.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 47; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + if (dinX509DataType->X509CRL.arrayLen < dinX509DataType_X509CRL_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinX509DataType->X509CRL.array[dinX509DataType->X509CRL.arrayLen].bytesLen); + if (errn == 0) { + errn = (dinX509DataType->X509CRL.array[dinX509DataType->X509CRL.arrayLen].bytesLen) <= dinX509DataType_X509CRL_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinX509DataType->X509CRL.array[dinX509DataType->X509CRL.arrayLen].bytesLen, dinX509DataType->X509CRL.array[dinX509DataType->X509CRL.arrayLen].bytes); + } + dinX509DataType->X509CRL.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 47; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 47; + break; + case 6: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ChargingStatusResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":EVSEID,"urn:iso:15118:2:2010:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2010:MsgBody":EVSEMaxCurrent{0-1},"urn:iso:15118:2:2010:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2010:MsgBody":ReceiptRequired,"urn:iso:15118:2:2010:MsgBody":AC_EVSEStatus)', derivedBy='EXTENSION'. */ +static int decode_dinChargingStatusResType(bitstream_t* stream, struct dinChargingStatusResType* dinChargingStatusResType) { + int grammarID = 48; + int done = 0; + + init_dinChargingStatusResType(dinChargingStatusResType); + + while(!done) { + switch(grammarID) { + case 48: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + dinChargingStatusResType->ResponseCode = (dinresponseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 49; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 49: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinChargingStatusResType->EVSEID.bytesLen); + if (errn == 0) { + errn = (dinChargingStatusResType->EVSEID.bytesLen) <= dinChargingStatusResType_EVSEID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinChargingStatusResType->EVSEID.bytesLen, dinChargingStatusResType->EVSEID.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 50; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 50: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &dinChargingStatusResType->SAScheduleTupleID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 51; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 51: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinChargingStatusResType->EVSEMaxCurrent); + dinChargingStatusResType->EVSEMaxCurrent_isUsed = 1u; + grammarID = 52; + break; + case 1: + errn = decode_dinMeterInfoType(stream, &dinChargingStatusResType->MeterInfo); + dinChargingStatusResType->MeterInfo_isUsed = 1u; + grammarID = 53; + break; + case 2: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinChargingStatusResType->ReceiptRequired); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 54; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 52: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinMeterInfoType(stream, &dinChargingStatusResType->MeterInfo); + dinChargingStatusResType->MeterInfo_isUsed = 1u; + grammarID = 53; + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinChargingStatusResType->ReceiptRequired); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 54; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 53: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinChargingStatusResType->ReceiptRequired); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 54; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 54: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinAC_EVSEStatusType(stream, &dinChargingStatusResType->AC_EVSEStatus); + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,WeldingDetectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */ +static int decode_dinWeldingDetectionReqType(bitstream_t* stream, struct dinWeldingDetectionReqType* dinWeldingDetectionReqType) { + int grammarID = 55; + int done = 0; + + init_dinWeldingDetectionReqType(dinWeldingDetectionReqType); + + while(!done) { + switch(grammarID) { + case 55: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinDC_EVStatusType(stream, &dinWeldingDetectionReqType->DC_EVStatus); + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertiesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignatureProperty{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinSignaturePropertiesType(bitstream_t* stream, struct dinSignaturePropertiesType* dinSignaturePropertiesType) { + int grammarID = 56; + int done = 0; + + init_dinSignaturePropertiesType(dinSignaturePropertiesType); + + while(!done) { + switch(grammarID) { + case 56: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinSignaturePropertiesType->Id.charactersLen); + if (errn == 0) { + if (dinSignaturePropertiesType->Id.charactersLen >= 2) { + dinSignaturePropertiesType->Id.charactersLen = (uint16_t)(dinSignaturePropertiesType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinSignaturePropertiesType->Id.charactersLen, dinSignaturePropertiesType->Id.characters, dinSignaturePropertiesType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinSignaturePropertiesType->Id_isUsed = 1u; + grammarID = 57; + break; + case 1: + if (dinSignaturePropertiesType->SignatureProperty.arrayLen < dinSignaturePropertiesType_SignatureProperty_ARRAY_SIZE) { + errn = decode_dinSignaturePropertyType(stream, &dinSignaturePropertiesType->SignatureProperty.array[dinSignaturePropertiesType->SignatureProperty.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 58; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 57: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinSignaturePropertiesType->SignatureProperty.arrayLen < dinSignaturePropertiesType_SignatureProperty_ARRAY_SIZE) { + errn = decode_dinSignaturePropertyType(stream, &dinSignaturePropertiesType->SignatureProperty.array[dinSignaturePropertiesType->SignatureProperty.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 58; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 58: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinSignaturePropertiesType->SignatureProperty.arrayLen < dinSignaturePropertiesType_SignatureProperty_ARRAY_SIZE) { + errn = decode_dinSignaturePropertyType(stream, &dinSignaturePropertiesType->SignatureProperty.array[dinSignaturePropertiesType->SignatureProperty.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 58; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ContractAuthenticationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":GenChallenge{0-1})', derivedBy='EXTENSION'. */ +static int decode_dinContractAuthenticationReqType(bitstream_t* stream, struct dinContractAuthenticationReqType* dinContractAuthenticationReqType) { + int grammarID = 59; + int done = 0; + + init_dinContractAuthenticationReqType(dinContractAuthenticationReqType); + + while(!done) { + switch(grammarID) { + case 59: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinContractAuthenticationReqType->Id.charactersLen); + if (errn == 0) { + if (dinContractAuthenticationReqType->Id.charactersLen >= 2) { + dinContractAuthenticationReqType->Id.charactersLen = (uint16_t)(dinContractAuthenticationReqType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinContractAuthenticationReqType->Id.charactersLen, dinContractAuthenticationReqType->Id.characters, dinContractAuthenticationReqType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinContractAuthenticationReqType->Id_isUsed = 1u; + grammarID = 60; + break; + case 1: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinContractAuthenticationReqType->GenChallenge.charactersLen); + if (errn == 0) { + if (dinContractAuthenticationReqType->GenChallenge.charactersLen >= 2) { + dinContractAuthenticationReqType->GenChallenge.charactersLen = (uint16_t)(dinContractAuthenticationReqType->GenChallenge.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinContractAuthenticationReqType->GenChallenge.charactersLen, dinContractAuthenticationReqType->GenChallenge.characters, dinContractAuthenticationReqType_GenChallenge_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinContractAuthenticationReqType->GenChallenge_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 60: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinContractAuthenticationReqType->GenChallenge.charactersLen); + if (errn == 0) { + if (dinContractAuthenticationReqType->GenChallenge.charactersLen >= 2) { + dinContractAuthenticationReqType->GenChallenge.charactersLen = (uint16_t)(dinContractAuthenticationReqType->GenChallenge.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinContractAuthenticationReqType->GenChallenge.charactersLen, dinContractAuthenticationReqType->GenChallenge.characters, dinContractAuthenticationReqType_GenChallenge_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinContractAuthenticationReqType->GenChallenge_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVPowerDeliveryParameterType', base type name='EVPowerDeliveryParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2010:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2010:MsgDataTypes":ChargingComplete)', derivedBy='EXTENSION'. */ +static int decode_dinDC_EVPowerDeliveryParameterType(bitstream_t* stream, struct dinDC_EVPowerDeliveryParameterType* dinDC_EVPowerDeliveryParameterType) { + int grammarID = 61; + int done = 0; + + init_dinDC_EVPowerDeliveryParameterType(dinDC_EVPowerDeliveryParameterType); + + while(!done) { + switch(grammarID) { + case 61: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinDC_EVStatusType(stream, &dinDC_EVPowerDeliveryParameterType->DC_EVStatus); + grammarID = 62; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 62: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinDC_EVPowerDeliveryParameterType->BulkChargingComplete); + dinDC_EVPowerDeliveryParameterType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 63; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinDC_EVPowerDeliveryParameterType->ChargingComplete); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 63: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinDC_EVPowerDeliveryParameterType->ChargingComplete); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVSEChargeParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_dinEVSEChargeParameterType(bitstream_t* stream, struct dinEVSEChargeParameterType* dinEVSEChargeParameterType) { + int grammarID = 64; + int done = 0; + + init_dinEVSEChargeParameterType(dinEVSEChargeParameterType); + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CableCheckReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */ +static int decode_dinCableCheckReqType(bitstream_t* stream, struct dinCableCheckReqType* dinCableCheckReqType) { + int grammarID = 55; + int done = 0; + + init_dinCableCheckReqType(dinCableCheckReqType); + + while(!done) { + switch(grammarID) { + case 55: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinDC_EVStatusType(stream, &dinCableCheckReqType->DC_EVStatus); + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2010:MsgDataTypes":EVMaximumCurrentLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVMaximumVoltageLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVEnergyCapacity{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVEnergyRequest{0-1},"urn:iso:15118:2:2010:MsgDataTypes":FullSOC{0-1},"urn:iso:15118:2:2010:MsgDataTypes":BulkSOC{0-1})', derivedBy='EXTENSION'. */ +static int decode_dinDC_EVChargeParameterType(bitstream_t* stream, struct dinDC_EVChargeParameterType* dinDC_EVChargeParameterType) { + int grammarID = 65; + int done = 0; + + init_dinDC_EVChargeParameterType(dinDC_EVChargeParameterType); + + while(!done) { + switch(grammarID) { + case 65: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinDC_EVStatusType(stream, &dinDC_EVChargeParameterType->DC_EVStatus); + grammarID = 66; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 66: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumCurrentLimit)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinDC_EVChargeParameterType->EVMaximumCurrentLimit); + grammarID = 67; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 67: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinDC_EVChargeParameterType->EVMaximumPowerLimit); + dinDC_EVChargeParameterType->EVMaximumPowerLimit_isUsed = 1u; + grammarID = 68; + break; + case 1: + errn = decode_dinPhysicalValueType(stream, &dinDC_EVChargeParameterType->EVMaximumVoltageLimit); + grammarID = 69; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 68: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinDC_EVChargeParameterType->EVMaximumVoltageLimit); + grammarID = 69; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 69: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinDC_EVChargeParameterType->EVEnergyCapacity); + dinDC_EVChargeParameterType->EVEnergyCapacity_isUsed = 1u; + grammarID = 70; + break; + case 1: + errn = decode_dinPhysicalValueType(stream, &dinDC_EVChargeParameterType->EVEnergyRequest); + dinDC_EVChargeParameterType->EVEnergyRequest_isUsed = 1u; + grammarID = 71; + break; + case 2: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + dinDC_EVChargeParameterType->FullSOC = (int8_t)(uint32 + 0); + dinDC_EVChargeParameterType->FullSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 72; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + dinDC_EVChargeParameterType->BulkSOC = (int8_t)(uint32 + 0); + dinDC_EVChargeParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 70: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinDC_EVChargeParameterType->EVEnergyRequest); + dinDC_EVChargeParameterType->EVEnergyRequest_isUsed = 1u; + grammarID = 71; + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + dinDC_EVChargeParameterType->FullSOC = (int8_t)(uint32 + 0); + dinDC_EVChargeParameterType->FullSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 72; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + dinDC_EVChargeParameterType->BulkSOC = (int8_t)(uint32 + 0); + dinDC_EVChargeParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 71: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + dinDC_EVChargeParameterType->FullSOC = (int8_t)(uint32 + 0); + dinDC_EVChargeParameterType->FullSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 72; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + dinDC_EVChargeParameterType->BulkSOC = (int8_t)(uint32 + 0); + dinDC_EVChargeParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 72: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + dinDC_EVChargeParameterType->BulkSOC = (int8_t)(uint32 + 0); + dinDC_EVChargeParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SAScheduleListType', base type name='SASchedulesType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SAScheduleTuple{1-UNBOUNDED})', derivedBy='EXTENSION'. */ +static int decode_dinSAScheduleListType(bitstream_t* stream, struct dinSAScheduleListType* dinSAScheduleListType) { + int grammarID = 73; + int done = 0; + + init_dinSAScheduleListType(dinSAScheduleListType); + + while(!done) { + switch(grammarID) { + case 73: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinSAScheduleListType->SAScheduleTuple.arrayLen < dinSAScheduleListType_SAScheduleTuple_ARRAY_SIZE) { + errn = decode_dinSAScheduleTupleType(stream, &dinSAScheduleListType->SAScheduleTuple.array[dinSAScheduleListType->SAScheduleTuple.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 74; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 74: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinSAScheduleListType->SAScheduleTuple.arrayLen < dinSAScheduleListType_SAScheduleTuple_ARRAY_SIZE) { + errn = decode_dinSAScheduleTupleType(stream, &dinSAScheduleListType->SAScheduleTuple.array[dinSAScheduleListType->SAScheduleTuple.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 74; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PMaxScheduleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":PMaxScheduleID,"urn:iso:15118:2:2010:MsgDataTypes":PMaxScheduleEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinPMaxScheduleType(bitstream_t* stream, struct dinPMaxScheduleType* dinPMaxScheduleType) { + int grammarID = 75; + int done = 0; + + init_dinPMaxScheduleType(dinPMaxScheduleType); + + while(!done) { + switch(grammarID) { + case 75: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &dinPMaxScheduleType->PMaxScheduleID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 76; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 76: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinPMaxScheduleType->PMaxScheduleEntry.arrayLen < dinPMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE) { + errn = decode_dinPMaxScheduleEntryType(stream, &dinPMaxScheduleType->PMaxScheduleEntry.array[dinPMaxScheduleType->PMaxScheduleEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 77; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 77: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinPMaxScheduleType->PMaxScheduleEntry.arrayLen < dinPMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE) { + errn = decode_dinPMaxScheduleEntryType(stream, &dinPMaxScheduleType->PMaxScheduleEntry.array[dinPMaxScheduleType->PMaxScheduleEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 77; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ServicePaymentSelectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":SelectedPaymentOption,"urn:iso:15118:2:2010:MsgBody":SelectedServiceList)', derivedBy='EXTENSION'. */ +static int decode_dinServicePaymentSelectionReqType(bitstream_t* stream, struct dinServicePaymentSelectionReqType* dinServicePaymentSelectionReqType) { + int grammarID = 78; + int done = 0; + + init_dinServicePaymentSelectionReqType(dinServicePaymentSelectionReqType); + + while(!done) { + switch(grammarID) { + case 78: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + dinServicePaymentSelectionReqType->SelectedPaymentOption = (dinpaymentOptionType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 79; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 79: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedServiceList)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinSelectedServiceListType(stream, &dinServicePaymentSelectionReqType->SelectedServiceList); + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":start,"urn:iso:15118:2:2010:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */ +static int decode_dinRelativeTimeIntervalType(bitstream_t* stream, struct dinRelativeTimeIntervalType* dinRelativeTimeIntervalType) { + int grammarID = 80; + int done = 0; + + init_dinRelativeTimeIntervalType(dinRelativeTimeIntervalType); + + while(!done) { + switch(grammarID) { + case 80: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}start)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &dinRelativeTimeIntervalType->start); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}start) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 81; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 81: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}duration), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &dinRelativeTimeIntervalType->duration); + dinRelativeTimeIntervalType->duration_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}duration) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVStatusType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_dinEVStatusType(bitstream_t* stream, struct dinEVStatusType* dinEVStatusType) { + int grammarID = 64; + int done = 0; + + init_dinEVStatusType(dinEVStatusType); + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,PreChargeResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */ +static int decode_dinPreChargeResType(bitstream_t* stream, struct dinPreChargeResType* dinPreChargeResType) { + int grammarID = 13; + int done = 0; + + init_dinPreChargeResType(dinPreChargeResType); + + while(!done) { + switch(grammarID) { + case 13: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + dinPreChargeResType->ResponseCode = (dinresponseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 14; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 14: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinDC_EVSEStatusType(stream, &dinPreChargeResType->DC_EVSEStatus); + grammarID = 15; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 15: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinPreChargeResType->EVSEPresentVoltage); + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaximumCurrentLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaximumPowerLimit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaximumVoltageLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMinimumCurrentLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMinimumVoltageLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2010:MsgDataTypes":EVSEEnergyToBeDelivered{0-1})', derivedBy='EXTENSION'. */ +static int decode_dinDC_EVSEChargeParameterType(bitstream_t* stream, struct dinDC_EVSEChargeParameterType* dinDC_EVSEChargeParameterType) { + int grammarID = 82; + int done = 0; + + init_dinDC_EVSEChargeParameterType(dinDC_EVSEChargeParameterType); + + while(!done) { + switch(grammarID) { + case 82: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinDC_EVSEStatusType(stream, &dinDC_EVSEChargeParameterType->DC_EVSEStatus); + grammarID = 83; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 83: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumCurrentLimit)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSEMaximumCurrentLimit); + grammarID = 84; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 84: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSEMaximumPowerLimit); + dinDC_EVSEChargeParameterType->EVSEMaximumPowerLimit_isUsed = 1u; + grammarID = 85; + break; + case 1: + errn = decode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSEMaximumVoltageLimit); + grammarID = 86; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 85: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSEMaximumVoltageLimit); + grammarID = 86; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 86: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumCurrentLimit)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSEMinimumCurrentLimit); + grammarID = 87; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 87: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumVoltageLimit)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSEMinimumVoltageLimit); + grammarID = 88; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 88: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSECurrentRegulationTolerance); + dinDC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed = 1u; + grammarID = 89; + break; + case 1: + errn = decode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSEPeakCurrentRipple); + grammarID = 90; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 89: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSEPeakCurrentRipple); + grammarID = 90; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 90: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSEEnergyToBeDelivered); + dinDC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed = 1u; + grammarID = 4; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,PaymentDetailsResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":GenChallenge,"urn:iso:15118:2:2010:MsgBody":DateTimeNow)', derivedBy='EXTENSION'. */ +static int decode_dinPaymentDetailsResType(bitstream_t* stream, struct dinPaymentDetailsResType* dinPaymentDetailsResType) { + int grammarID = 91; + int done = 0; + + init_dinPaymentDetailsResType(dinPaymentDetailsResType); + + while(!done) { + switch(grammarID) { + case 91: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + dinPaymentDetailsResType->ResponseCode = (dinresponseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 92; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 92: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinPaymentDetailsResType->GenChallenge.charactersLen); + if (errn == 0) { + if (dinPaymentDetailsResType->GenChallenge.charactersLen >= 2) { + dinPaymentDetailsResType->GenChallenge.charactersLen = (uint16_t)(dinPaymentDetailsResType->GenChallenge.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinPaymentDetailsResType->GenChallenge.charactersLen, dinPaymentDetailsResType->GenChallenge.characters, dinPaymentDetailsResType_GenChallenge_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 93; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 93: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &dinPaymentDetailsResType->DateTimeNow); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */ +static int decode_dinDSAKeyValueType(bitstream_t* stream, struct dinDSAKeyValueType* dinDSAKeyValueType) { + int grammarID = 94; + int done = 0; + + init_dinDSAKeyValueType(dinDSAKeyValueType); + + while(!done) { + switch(grammarID) { + case 94: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinDSAKeyValueType->P.bytesLen); + if (errn == 0) { + errn = (dinDSAKeyValueType->P.bytesLen) <= dinDSAKeyValueType_P_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinDSAKeyValueType->P.bytesLen, dinDSAKeyValueType->P.bytes); + } + dinDSAKeyValueType->P_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 95; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinDSAKeyValueType->G.bytesLen); + if (errn == 0) { + errn = (dinDSAKeyValueType->G.bytesLen) <= dinDSAKeyValueType_G_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinDSAKeyValueType->G.bytesLen, dinDSAKeyValueType->G.bytes); + } + dinDSAKeyValueType->G_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 96; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinDSAKeyValueType->Y.bytesLen); + if (errn == 0) { + errn = (dinDSAKeyValueType->Y.bytesLen) <= dinDSAKeyValueType_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinDSAKeyValueType->Y.bytesLen, dinDSAKeyValueType->Y.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 97; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 95: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinDSAKeyValueType->Q.bytesLen); + if (errn == 0) { + errn = (dinDSAKeyValueType->Q.bytesLen) <= dinDSAKeyValueType_Q_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinDSAKeyValueType->Q.bytesLen, dinDSAKeyValueType->Q.bytes); + } + dinDSAKeyValueType->Q_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 98; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 98: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinDSAKeyValueType->G.bytesLen); + if (errn == 0) { + errn = (dinDSAKeyValueType->G.bytesLen) <= dinDSAKeyValueType_G_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinDSAKeyValueType->G.bytesLen, dinDSAKeyValueType->G.bytes); + } + dinDSAKeyValueType->G_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 96; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinDSAKeyValueType->Y.bytesLen); + if (errn == 0) { + errn = (dinDSAKeyValueType->Y.bytesLen) <= dinDSAKeyValueType_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinDSAKeyValueType->Y.bytesLen, dinDSAKeyValueType->Y.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 97; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 96: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinDSAKeyValueType->Y.bytesLen); + if (errn == 0) { + errn = (dinDSAKeyValueType->Y.bytesLen) <= dinDSAKeyValueType_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinDSAKeyValueType->Y.bytesLen, dinDSAKeyValueType->Y.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 97; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 97: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinDSAKeyValueType->J.bytesLen); + if (errn == 0) { + errn = (dinDSAKeyValueType->J.bytesLen) <= dinDSAKeyValueType_J_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinDSAKeyValueType->J.bytesLen, dinDSAKeyValueType->J.bytes); + } + dinDSAKeyValueType->J_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 99; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinDSAKeyValueType->Seed.bytesLen); + if (errn == 0) { + errn = (dinDSAKeyValueType->Seed.bytesLen) <= dinDSAKeyValueType_Seed_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinDSAKeyValueType->Seed.bytesLen, dinDSAKeyValueType->Seed.bytes); + } + dinDSAKeyValueType->Seed_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 100; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 99: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinDSAKeyValueType->Seed.bytesLen); + if (errn == 0) { + errn = (dinDSAKeyValueType->Seed.bytesLen) <= dinDSAKeyValueType_Seed_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinDSAKeyValueType->Seed.bytesLen, dinDSAKeyValueType->Seed.bytes); + } + dinDSAKeyValueType->Seed_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 100; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 100: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinDSAKeyValueType->PgenCounter.bytesLen); + if (errn == 0) { + errn = (dinDSAKeyValueType->PgenCounter.bytesLen) <= dinDSAKeyValueType_PgenCounter_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinDSAKeyValueType->PgenCounter.bytesLen, dinDSAKeyValueType->PgenCounter.bytes); + } + dinDSAKeyValueType->PgenCounter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SASchedulesType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_dinSASchedulesType(bitstream_t* stream, struct dinSASchedulesType* dinSASchedulesType) { + int grammarID = 64; + int done = 0; + + init_dinSASchedulesType(dinSASchedulesType); + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CertificateUpdateResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2010:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2010:MsgBody":DHParams,"urn:iso:15118:2:2010:MsgBody":ContractID,"urn:iso:15118:2:2010:MsgBody":RetryCounter)', derivedBy='EXTENSION'. */ +static int decode_dinCertificateUpdateResType(bitstream_t* stream, struct dinCertificateUpdateResType* dinCertificateUpdateResType) { + int grammarID = 101; + int done = 0; + + init_dinCertificateUpdateResType(dinCertificateUpdateResType); + + while(!done) { + switch(grammarID) { + case 101: + /* FirstStartTag[ATTRIBUTE[STRING](Id)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinCertificateUpdateResType->Id.charactersLen); + if (errn == 0) { + if (dinCertificateUpdateResType->Id.charactersLen >= 2) { + dinCertificateUpdateResType->Id.charactersLen = (uint16_t)(dinCertificateUpdateResType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinCertificateUpdateResType->Id.charactersLen, dinCertificateUpdateResType->Id.characters, dinCertificateUpdateResType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 102; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 102: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + dinCertificateUpdateResType->ResponseCode = (dinresponseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 103; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 103: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinCertificateChainType(stream, &dinCertificateUpdateResType->ContractSignatureCertChain); + grammarID = 104; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 104: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinCertificateUpdateResType->ContractSignatureEncryptedPrivateKey.bytesLen); + if (errn == 0) { + errn = (dinCertificateUpdateResType->ContractSignatureEncryptedPrivateKey.bytesLen) <= dinCertificateUpdateResType_ContractSignatureEncryptedPrivateKey_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinCertificateUpdateResType->ContractSignatureEncryptedPrivateKey.bytesLen, dinCertificateUpdateResType->ContractSignatureEncryptedPrivateKey.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 105; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 105: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinCertificateUpdateResType->DHParams.bytesLen); + if (errn == 0) { + errn = (dinCertificateUpdateResType->DHParams.bytesLen) <= dinCertificateUpdateResType_DHParams_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinCertificateUpdateResType->DHParams.bytesLen, dinCertificateUpdateResType->DHParams.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 106; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 106: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinCertificateUpdateResType->ContractID.charactersLen); + if (errn == 0) { + if (dinCertificateUpdateResType->ContractID.charactersLen >= 2) { + dinCertificateUpdateResType->ContractID.charactersLen = (uint16_t)(dinCertificateUpdateResType->ContractID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinCertificateUpdateResType->ContractID.charactersLen, dinCertificateUpdateResType->ContractID.characters, dinCertificateUpdateResType_ContractID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 107; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 107: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RetryCounter)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &dinCertificateUpdateResType->RetryCounter); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RetryCounter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVChargeParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_dinEVChargeParameterType(bitstream_t* stream, struct dinEVChargeParameterType* dinEVChargeParameterType) { + int grammarID = 64; + int done = 0; + + init_dinEVChargeParameterType(dinEVChargeParameterType); + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgHeader,MessageHeaderType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgHeader":SessionID,"urn:iso:15118:2:2010:MsgHeader":Notification{0-1},"http://www.w3.org/2000/09/xmldsig#":Signature{0-1})', derivedBy='RESTRICTION'. */ +static int decode_dinMessageHeaderType(bitstream_t* stream, struct dinMessageHeaderType* dinMessageHeaderType) { + int grammarID = 108; + int done = 0; + + init_dinMessageHeaderType(dinMessageHeaderType); + + while(!done) { + switch(grammarID) { + case 108: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinMessageHeaderType->SessionID.bytesLen); + if (errn == 0) { + errn = (dinMessageHeaderType->SessionID.bytesLen) <= dinMessageHeaderType_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinMessageHeaderType->SessionID.bytesLen, dinMessageHeaderType->SessionID.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 109; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 109: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinNotificationType(stream, &dinMessageHeaderType->Notification); + dinMessageHeaderType->Notification_isUsed = 1u; + grammarID = 110; + break; + case 1: + errn = decode_dinSignatureType(stream, &dinMessageHeaderType->Signature); + dinMessageHeaderType->Signature_isUsed = 1u; + grammarID = 4; + break; + case 2: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 110: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinSignatureType(stream, &dinMessageHeaderType->Signature); + dinMessageHeaderType->Signature_isUsed = 1u; + grammarID = 4; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDef,BodyBaseType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_dinBodyBaseType(bitstream_t* stream, struct dinBodyBaseType* dinBodyBaseType) { + int grammarID = 64; + int done = 0; + + init_dinBodyBaseType(dinBodyBaseType); + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */ +static int decode_dinKeyValueType(bitstream_t* stream, struct dinKeyValueType* dinKeyValueType) { + int grammarID = 111; + int done = 0; + + init_dinKeyValueType(dinKeyValueType); + + while(!done) { + switch(grammarID) { + case 111: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinDSAKeyValueType(stream, &dinKeyValueType->DSAKeyValue); + dinKeyValueType->DSAKeyValue_isUsed = 1u; + grammarID = 112; + break; + case 1: + errn = decode_dinRSAKeyValueType(stream, &dinKeyValueType->RSAKeyValue); + dinKeyValueType->RSAKeyValue_isUsed = 1u; + grammarID = 112; + break; + case 2: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 112; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &dinKeyValueType->ANY.charactersLen); + if (errn == 0) { + if (dinKeyValueType->ANY.charactersLen >= 2) { + dinKeyValueType->ANY.charactersLen = (uint16_t)(dinKeyValueType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinKeyValueType->ANY.charactersLen, dinKeyValueType->ANY.characters, dinKeyValueType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinKeyValueType->ANY_isUsed = 1u; + grammarID = 113; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 112: + /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &dinKeyValueType->ANY.charactersLen); + if (errn == 0) { + if (dinKeyValueType->ANY.charactersLen >= 2) { + dinKeyValueType->ANY.charactersLen = (uint16_t)(dinKeyValueType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinKeyValueType->ANY.charactersLen, dinKeyValueType->ANY.characters, dinKeyValueType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinKeyValueType->ANY_isUsed = 1u; + grammarID = 112; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 113: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinDSAKeyValueType(stream, &dinKeyValueType->DSAKeyValue); + dinKeyValueType->DSAKeyValue_isUsed = 1u; + grammarID = 112; + break; + case 1: + errn = decode_dinRSAKeyValueType(stream, &dinKeyValueType->RSAKeyValue); + dinKeyValueType->RSAKeyValue_isUsed = 1u; + grammarID = 112; + break; + case 2: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 112; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &dinKeyValueType->ANY.charactersLen); + if (errn == 0) { + if (dinKeyValueType->ANY.charactersLen >= 2) { + dinKeyValueType->ANY.charactersLen = (uint16_t)(dinKeyValueType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinKeyValueType->ANY.charactersLen, dinKeyValueType->ANY.characters, dinKeyValueType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinKeyValueType->ANY_isUsed = 1u; + grammarID = 113; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_dinIntervalType(bitstream_t* stream, struct dinIntervalType* dinIntervalType) { + int grammarID = 64; + int done = 0; + + init_dinIntervalType(dinIntervalType); + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ChargeParameterDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":EVSEProcessing,"urn:iso:15118:2:2010:MsgDataTypes":SASchedules,"urn:iso:15118:2:2010:MsgDataTypes":EVSEChargeParameter)', derivedBy='EXTENSION'. */ +static int decode_dinChargeParameterDiscoveryResType(bitstream_t* stream, struct dinChargeParameterDiscoveryResType* dinChargeParameterDiscoveryResType) { + int grammarID = 114; + int done = 0; + + init_dinChargeParameterDiscoveryResType(dinChargeParameterDiscoveryResType); + + while(!done) { + switch(grammarID) { + case 114: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + dinChargeParameterDiscoveryResType->ResponseCode = (dinresponseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 115; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 115: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + dinChargeParameterDiscoveryResType->EVSEProcessing = (dinEVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 116; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 116: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinSAScheduleListType(stream, &dinChargeParameterDiscoveryResType->SAScheduleList); + dinChargeParameterDiscoveryResType->SAScheduleList_isUsed = 1u; + grammarID = 117; + break; + case 1: + errn = decode_dinSASchedulesType(stream, &dinChargeParameterDiscoveryResType->SASchedules); + dinChargeParameterDiscoveryResType->SASchedules_isUsed = 1u; + grammarID = 117; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 117: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinAC_EVSEChargeParameterType(stream, &dinChargeParameterDiscoveryResType->AC_EVSEChargeParameter); + dinChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed = 1u; + grammarID = 4; + break; + case 1: + errn = decode_dinDC_EVSEChargeParameterType(stream, &dinChargeParameterDiscoveryResType->DC_EVSEChargeParameter); + dinChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed = 1u; + grammarID = 4; + break; + case 2: + errn = decode_dinEVSEChargeParameterType(stream, &dinChargeParameterDiscoveryResType->EVSEChargeParameter); + dinChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed = 1u; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,PowerDeliveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ReadyToChargeState,"urn:iso:15118:2:2010:MsgBody":ChargingProfile{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVPowerDeliveryParameter{0-1})', derivedBy='EXTENSION'. */ +static int decode_dinPowerDeliveryReqType(bitstream_t* stream, struct dinPowerDeliveryReqType* dinPowerDeliveryReqType) { + int grammarID = 118; + int done = 0; + + init_dinPowerDeliveryReqType(dinPowerDeliveryReqType); + + while(!done) { + switch(grammarID) { + case 118: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReadyToChargeState)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinPowerDeliveryReqType->ReadyToChargeState); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReadyToChargeState) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 119; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 119: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinChargingProfileType(stream, &dinPowerDeliveryReqType->ChargingProfile); + dinPowerDeliveryReqType->ChargingProfile_isUsed = 1u; + grammarID = 120; + break; + case 1: + errn = decode_dinDC_EVPowerDeliveryParameterType(stream, &dinPowerDeliveryReqType->DC_EVPowerDeliveryParameter); + dinPowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed = 1u; + grammarID = 4; + break; + case 2: + errn = decode_dinEVPowerDeliveryParameterType(stream, &dinPowerDeliveryReqType->EVPowerDeliveryParameter); + dinPowerDeliveryReqType->EVPowerDeliveryParameter_isUsed = 1u; + grammarID = 4; + break; + case 3: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 120: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinDC_EVPowerDeliveryParameterType(stream, &dinPowerDeliveryReqType->DC_EVPowerDeliveryParameter); + dinPowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed = 1u; + grammarID = 4; + break; + case 1: + errn = decode_dinEVPowerDeliveryParameterType(stream, &dinPowerDeliveryReqType->EVPowerDeliveryParameter); + dinPowerDeliveryReqType->EVPowerDeliveryParameter_isUsed = 1u; + grammarID = 4; + break; + case 2: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Certificate,"urn:iso:15118:2:2010:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ +static int decode_dinCertificateChainType(bitstream_t* stream, struct dinCertificateChainType* dinCertificateChainType) { + int grammarID = 121; + int done = 0; + + init_dinCertificateChainType(dinCertificateChainType); + + while(!done) { + switch(grammarID) { + case 121: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinCertificateChainType->Certificate.bytesLen); + if (errn == 0) { + errn = (dinCertificateChainType->Certificate.bytesLen) <= dinCertificateChainType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinCertificateChainType->Certificate.bytesLen, dinCertificateChainType->Certificate.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 122; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 122: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SubCertificates), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinSubCertificatesType(stream, &dinCertificateChainType->SubCertificates); + dinCertificateChainType->SubCertificates_isUsed = 1u; + grammarID = 4; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinTransformsType(bitstream_t* stream, struct dinTransformsType* dinTransformsType) { + int grammarID = 123; + int done = 0; + + init_dinTransformsType(dinTransformsType); + + while(!done) { + switch(grammarID) { + case 123: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinTransformsType->Transform.arrayLen < dinTransformsType_Transform_ARRAY_SIZE) { + errn = decode_dinTransformType(stream, &dinTransformsType->Transform.array[dinTransformsType->Transform.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 124; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 124: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinTransformsType->Transform.arrayLen < dinTransformsType_Transform_ARRAY_SIZE) { + errn = decode_dinTransformType(stream, &dinTransformsType->Transform.array[dinTransformsType->Transform.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 124; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EntryType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":TimeInterval)', derivedBy='RESTRICTION'. */ +static int decode_dinEntryType(bitstream_t* stream, struct dinEntryType* dinEntryType) { + int grammarID = 125; + int done = 0; + + init_dinEntryType(dinEntryType); + + while(!done) { + switch(grammarID) { + case 125: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinRelativeTimeIntervalType(stream, &dinEntryType->RelativeTimeInterval); + dinEntryType->RelativeTimeInterval_isUsed = 1u; + grammarID = 4; + break; + case 1: + errn = decode_dinIntervalType(stream, &dinEntryType->TimeInterval); + dinEntryType->TimeInterval_isUsed = 1u; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,SessionStopType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int decode_dinSessionStopType(bitstream_t* stream, struct dinSessionStopType* dinSessionStopType) { + int grammarID = 64; + int done = 0; + + init_dinSessionStopType(dinSessionStopType); + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ServiceDetailReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ServiceID)', derivedBy='EXTENSION'. */ +static int decode_dinServiceDetailReqType(bitstream_t* stream, struct dinServiceDetailReqType* dinServiceDetailReqType) { + int grammarID = 126; + int done = 0; + + init_dinServiceDetailReqType(dinServiceDetailReqType); + + while(!done) { + switch(grammarID) { + case 126: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinServiceDetailReqType->ServiceID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinDigestMethodType(bitstream_t* stream, struct dinDigestMethodType* dinDigestMethodType) { + int grammarID = 18; + int done = 0; + + init_dinDigestMethodType(dinDigestMethodType); + + while(!done) { + switch(grammarID) { + case 18: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinDigestMethodType->Algorithm.charactersLen); + if (errn == 0) { + if (dinDigestMethodType->Algorithm.charactersLen >= 2) { + dinDigestMethodType->Algorithm.charactersLen = (uint16_t)(dinDigestMethodType->Algorithm.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinDigestMethodType->Algorithm.charactersLen, dinDigestMethodType->Algorithm.characters, dinDigestMethodType_Algorithm_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 19; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 19: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 20; + break; + case 1: + done = 1; + grammarID = 5; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &dinDigestMethodType->ANY.charactersLen); + if (errn == 0) { + if (dinDigestMethodType->ANY.charactersLen >= 2) { + dinDigestMethodType->ANY.charactersLen = (uint16_t)(dinDigestMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinDigestMethodType->ANY.charactersLen, dinDigestMethodType->ANY.characters, dinDigestMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinDigestMethodType->ANY_isUsed = 1u; + grammarID = 20; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 20: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 20; + break; + case 1: + done = 1; + grammarID = 5; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &dinDigestMethodType->ANY.charactersLen); + if (errn == 0) { + if (dinDigestMethodType->ANY.charactersLen >= 2) { + dinDigestMethodType->ANY.charactersLen = (uint16_t)(dinDigestMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinDigestMethodType->ANY.charactersLen, dinDigestMethodType->ANY.characters, dinDigestMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinDigestMethodType->ANY_isUsed = 1u; + grammarID = 20; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ParameterType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":boolValue|"urn:iso:15118:2:2010:MsgDataTypes":byteValue|"urn:iso:15118:2:2010:MsgDataTypes":shortValue|"urn:iso:15118:2:2010:MsgDataTypes":intValue|"urn:iso:15118:2:2010:MsgDataTypes":physicalValue|"urn:iso:15118:2:2010:MsgDataTypes":stringValue)', derivedBy='RESTRICTION'. */ +static int decode_dinParameterType(bitstream_t* stream, struct dinParameterType* dinParameterType) { + int grammarID = 127; + int done = 0; + + init_dinParameterType(dinParameterType); + + while(!done) { + switch(grammarID) { + case 127: + /* FirstStartTag[ATTRIBUTE[STRING](Name)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinParameterType->Name.charactersLen); + if (errn == 0) { + if (dinParameterType->Name.charactersLen >= 2) { + dinParameterType->Name.charactersLen = (uint16_t)(dinParameterType->Name.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinParameterType->Name.charactersLen, dinParameterType->Name.characters, dinParameterType_Name_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 128; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 128: + /* StartTag[ATTRIBUTE[ENUMERATION](ValueType)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeNBitUnsignedInteger(stream, 3, &uint32); + dinParameterType->ValueType = (dinvalueType) uint32; + grammarID = 129; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 129: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}stringValue)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinParameterType->boolValue); + dinParameterType->boolValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}boolValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + dinParameterType->byteValue = (int8_t)(uint32 -128); + dinParameterType->byteValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}byteValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &dinParameterType->shortValue); + dinParameterType->shortValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}shortValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger32(stream, &dinParameterType->intValue); + dinParameterType->intValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}intValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + errn = decode_dinPhysicalValueType(stream, &dinParameterType->physicalValue); + dinParameterType->physicalValue_isUsed = 1u; + grammarID = 4; + break; + case 5: + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinParameterType->stringValue.charactersLen); + if (errn == 0) { + if (dinParameterType->stringValue.charactersLen >= 2) { + dinParameterType->stringValue.charactersLen = (uint16_t)(dinParameterType->stringValue.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinParameterType->stringValue.charactersLen, dinParameterType->stringValue.characters, dinParameterType_stringValue_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinParameterType->stringValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}stringValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ChargingStatusReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int decode_dinChargingStatusReqType(bitstream_t* stream, struct dinChargingStatusReqType* dinChargingStatusReqType) { + int grammarID = 64; + int done = 0; + + init_dinChargingStatusReqType(dinChargingStatusReqType); + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinSignatureMethodType(bitstream_t* stream, struct dinSignatureMethodType* dinSignatureMethodType) { + int grammarID = 130; + int done = 0; + + init_dinSignatureMethodType(dinSignatureMethodType); + + while(!done) { + switch(grammarID) { + case 130: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinSignatureMethodType->Algorithm.charactersLen); + if (errn == 0) { + if (dinSignatureMethodType->Algorithm.charactersLen >= 2) { + dinSignatureMethodType->Algorithm.charactersLen = (uint16_t)(dinSignatureMethodType->Algorithm.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinSignatureMethodType->Algorithm.charactersLen, dinSignatureMethodType->Algorithm.characters, dinSignatureMethodType_Algorithm_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 131; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 131: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &dinSignatureMethodType->HMACOutputLength); + dinSignatureMethodType->HMACOutputLength_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 20; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 20; + break; + case 2: + done = 1; + grammarID = 5; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &dinSignatureMethodType->ANY.charactersLen); + if (errn == 0) { + if (dinSignatureMethodType->ANY.charactersLen >= 2) { + dinSignatureMethodType->ANY.charactersLen = (uint16_t)(dinSignatureMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinSignatureMethodType->ANY.charactersLen, dinSignatureMethodType->ANY.characters, dinSignatureMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinSignatureMethodType->ANY_isUsed = 1u; + grammarID = 132; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 20: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 20; + break; + case 1: + done = 1; + grammarID = 5; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &dinSignatureMethodType->ANY.charactersLen); + if (errn == 0) { + if (dinSignatureMethodType->ANY.charactersLen >= 2) { + dinSignatureMethodType->ANY.charactersLen = (uint16_t)(dinSignatureMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinSignatureMethodType->ANY.charactersLen, dinSignatureMethodType->ANY.characters, dinSignatureMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinSignatureMethodType->ANY_isUsed = 1u; + grammarID = 20; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 132: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &dinSignatureMethodType->HMACOutputLength); + dinSignatureMethodType->HMACOutputLength_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 20; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 20; + break; + case 2: + done = 1; + grammarID = 5; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &dinSignatureMethodType->ANY.charactersLen); + if (errn == 0) { + if (dinSignatureMethodType->ANY.charactersLen >= 2) { + dinSignatureMethodType->ANY.charactersLen = (uint16_t)(dinSignatureMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinSignatureMethodType->ANY.charactersLen, dinSignatureMethodType->ANY.characters, dinSignatureMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinSignatureMethodType->ANY_isUsed = 1u; + grammarID = 132; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CertificateInstallationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":OEMProvisioningCert,"urn:iso:15118:2:2010:MsgBody":ListOfRootCertificateIDs,"urn:iso:15118:2:2010:MsgBody":DHParams)', derivedBy='EXTENSION'. */ +static int decode_dinCertificateInstallationReqType(bitstream_t* stream, struct dinCertificateInstallationReqType* dinCertificateInstallationReqType) { + int grammarID = 133; + int done = 0; + + init_dinCertificateInstallationReqType(dinCertificateInstallationReqType); + + while(!done) { + switch(grammarID) { + case 133: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinCertificateInstallationReqType->Id.charactersLen); + if (errn == 0) { + if (dinCertificateInstallationReqType->Id.charactersLen >= 2) { + dinCertificateInstallationReqType->Id.charactersLen = (uint16_t)(dinCertificateInstallationReqType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinCertificateInstallationReqType->Id.charactersLen, dinCertificateInstallationReqType->Id.characters, dinCertificateInstallationReqType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinCertificateInstallationReqType->Id_isUsed = 1u; + grammarID = 134; + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinCertificateInstallationReqType->OEMProvisioningCert.bytesLen); + if (errn == 0) { + errn = (dinCertificateInstallationReqType->OEMProvisioningCert.bytesLen) <= dinCertificateInstallationReqType_OEMProvisioningCert_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinCertificateInstallationReqType->OEMProvisioningCert.bytesLen, dinCertificateInstallationReqType->OEMProvisioningCert.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 135; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 134: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinCertificateInstallationReqType->OEMProvisioningCert.bytesLen); + if (errn == 0) { + errn = (dinCertificateInstallationReqType->OEMProvisioningCert.bytesLen) <= dinCertificateInstallationReqType_OEMProvisioningCert_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinCertificateInstallationReqType->OEMProvisioningCert.bytesLen, dinCertificateInstallationReqType->OEMProvisioningCert.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 135; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 135: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinListOfRootCertificateIDsType(stream, &dinCertificateInstallationReqType->ListOfRootCertificateIDs); + grammarID = 136; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 136: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinCertificateInstallationReqType->DHParams.bytesLen); + if (errn == 0) { + errn = (dinCertificateInstallationReqType->DHParams.bytesLen) <= dinCertificateInstallationReqType_DHParams_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinCertificateInstallationReqType->DHParams.bytesLen, dinCertificateInstallationReqType->DHParams.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SalesTariffEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2010:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2010:MsgDataTypes":EPriceLevel,"urn:iso:15118:2:2010:MsgDataTypes":ConsumptionCost{0-UNBOUNDED}))', derivedBy='EXTENSION'. */ +static int decode_dinSalesTariffEntryType(bitstream_t* stream, struct dinSalesTariffEntryType* dinSalesTariffEntryType) { + int grammarID = 137; + int done = 0; + + init_dinSalesTariffEntryType(dinSalesTariffEntryType); + + while(!done) { + switch(grammarID) { + case 137: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinRelativeTimeIntervalType(stream, &dinSalesTariffEntryType->RelativeTimeInterval); + dinSalesTariffEntryType->RelativeTimeInterval_isUsed = 1u; + grammarID = 138; + break; + case 1: + errn = decode_dinIntervalType(stream, &dinSalesTariffEntryType->TimeInterval); + dinSalesTariffEntryType->TimeInterval_isUsed = 1u; + grammarID = 138; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 138: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPriceLevel)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + dinSalesTariffEntryType->EPriceLevel = (uint8_t)(uint32 + 0); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPriceLevel) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 139; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 139: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinSalesTariffEntryType->ConsumptionCost.arrayLen < dinSalesTariffEntryType_ConsumptionCost_ARRAY_SIZE) { + errn = decode_dinConsumptionCostType(stream, &dinSalesTariffEntryType->ConsumptionCost.array[dinSalesTariffEntryType->ConsumptionCost.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 139; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ServiceDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":PaymentOptions,"urn:iso:15118:2:2010:MsgBody":ChargeService,"urn:iso:15118:2:2010:MsgBody":ServiceList{0-1})', derivedBy='EXTENSION'. */ +static int decode_dinServiceDiscoveryResType(bitstream_t* stream, struct dinServiceDiscoveryResType* dinServiceDiscoveryResType) { + int grammarID = 140; + int done = 0; + + init_dinServiceDiscoveryResType(dinServiceDiscoveryResType); + + while(!done) { + switch(grammarID) { + case 140: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + dinServiceDiscoveryResType->ResponseCode = (dinresponseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 141; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 141: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentOptions)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPaymentOptionsType(stream, &dinServiceDiscoveryResType->PaymentOptions); + grammarID = 142; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 142: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeService)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinServiceChargeType(stream, &dinServiceDiscoveryResType->ChargeService); + grammarID = 143; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 143: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinServiceTagListType(stream, &dinServiceDiscoveryResType->ServiceList); + dinServiceDiscoveryResType->ServiceList_isUsed = 1u; + grammarID = 4; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2010:MsgDataTypes":Parameter{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinParameterSetType(bitstream_t* stream, struct dinParameterSetType* dinParameterSetType) { + int grammarID = 144; + int done = 0; + + init_dinParameterSetType(dinParameterSetType); + + while(!done) { + switch(grammarID) { + case 144: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &dinParameterSetType->ParameterSetID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 145; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 145: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinParameterSetType->Parameter.arrayLen < dinParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_dinParameterType(stream, &dinParameterSetType->Parameter.array[dinParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 146; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 146: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinParameterSetType->Parameter.arrayLen < dinParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_dinParameterType(stream, &dinParameterSetType->Parameter.array[dinParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 146; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CurrentDemandReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":DC_EVStatus,"urn:iso:15118:2:2010:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2010:MsgBody":EVMaximumVoltageLimit{0-1},"urn:iso:15118:2:2010:MsgBody":EVMaximumCurrentLimit{0-1},"urn:iso:15118:2:2010:MsgBody":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2010:MsgBody":BulkChargingComplete{0-1},"urn:iso:15118:2:2010:MsgBody":ChargingComplete,"urn:iso:15118:2:2010:MsgBody":RemainingTimeToFullSoC{0-1},"urn:iso:15118:2:2010:MsgBody":RemainingTimeToBulkSoC{0-1},"urn:iso:15118:2:2010:MsgBody":EVTargetVoltage)', derivedBy='EXTENSION'. */ +static int decode_dinCurrentDemandReqType(bitstream_t* stream, struct dinCurrentDemandReqType* dinCurrentDemandReqType) { + int grammarID = 147; + int done = 0; + + init_dinCurrentDemandReqType(dinCurrentDemandReqType); + + while(!done) { + switch(grammarID) { + case 147: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinDC_EVStatusType(stream, &dinCurrentDemandReqType->DC_EVStatus); + grammarID = 148; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 148: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVTargetCurrent); + grammarID = 149; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 149: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVMaximumVoltageLimit); + dinCurrentDemandReqType->EVMaximumVoltageLimit_isUsed = 1u; + grammarID = 150; + break; + case 1: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVMaximumCurrentLimit); + dinCurrentDemandReqType->EVMaximumCurrentLimit_isUsed = 1u; + grammarID = 151; + break; + case 2: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVMaximumPowerLimit); + dinCurrentDemandReqType->EVMaximumPowerLimit_isUsed = 1u; + grammarID = 152; + break; + case 3: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinCurrentDemandReqType->BulkChargingComplete); + dinCurrentDemandReqType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 153; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinCurrentDemandReqType->ChargingComplete); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 154; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 150: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVMaximumCurrentLimit); + dinCurrentDemandReqType->EVMaximumCurrentLimit_isUsed = 1u; + grammarID = 151; + break; + case 1: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVMaximumPowerLimit); + dinCurrentDemandReqType->EVMaximumPowerLimit_isUsed = 1u; + grammarID = 152; + break; + case 2: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinCurrentDemandReqType->BulkChargingComplete); + dinCurrentDemandReqType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 153; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinCurrentDemandReqType->ChargingComplete); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 154; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 151: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVMaximumPowerLimit); + dinCurrentDemandReqType->EVMaximumPowerLimit_isUsed = 1u; + grammarID = 152; + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinCurrentDemandReqType->BulkChargingComplete); + dinCurrentDemandReqType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 153; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinCurrentDemandReqType->ChargingComplete); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 154; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 152: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinCurrentDemandReqType->BulkChargingComplete); + dinCurrentDemandReqType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 153; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinCurrentDemandReqType->ChargingComplete); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 154; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 153: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinCurrentDemandReqType->ChargingComplete); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 154; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 154: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->RemainingTimeToFullSoC); + dinCurrentDemandReqType->RemainingTimeToFullSoC_isUsed = 1u; + grammarID = 155; + break; + case 1: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->RemainingTimeToBulkSoC); + dinCurrentDemandReqType->RemainingTimeToBulkSoC_isUsed = 1u; + grammarID = 156; + break; + case 2: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVTargetVoltage); + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 155: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->RemainingTimeToBulkSoC); + dinCurrentDemandReqType->RemainingTimeToBulkSoC_isUsed = 1u; + grammarID = 156; + break; + case 1: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVTargetVoltage); + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 156: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVTargetVoltage); + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,PreChargeReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":DC_EVStatus,"urn:iso:15118:2:2010:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2010:MsgBody":EVTargetCurrent)', derivedBy='EXTENSION'. */ +static int decode_dinPreChargeReqType(bitstream_t* stream, struct dinPreChargeReqType* dinPreChargeReqType) { + int grammarID = 157; + int done = 0; + + init_dinPreChargeReqType(dinPreChargeReqType); + + while(!done) { + switch(grammarID) { + case 157: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinDC_EVStatusType(stream, &dinPreChargeReqType->DC_EVStatus); + grammarID = 158; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 158: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinPreChargeReqType->EVTargetVoltage); + grammarID = 159; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 159: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinPreChargeReqType->EVTargetCurrent); + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinSignatureType(bitstream_t* stream, struct dinSignatureType* dinSignatureType) { + int grammarID = 160; + int done = 0; + + init_dinSignatureType(dinSignatureType); + + while(!done) { + switch(grammarID) { + case 160: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinSignatureType->Id.charactersLen); + if (errn == 0) { + if (dinSignatureType->Id.charactersLen >= 2) { + dinSignatureType->Id.charactersLen = (uint16_t)(dinSignatureType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinSignatureType->Id.charactersLen, dinSignatureType->Id.characters, dinSignatureType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinSignatureType->Id_isUsed = 1u; + grammarID = 161; + break; + case 1: + errn = decode_dinSignedInfoType(stream, &dinSignatureType->SignedInfo); + grammarID = 162; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 161: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinSignedInfoType(stream, &dinSignatureType->SignedInfo); + grammarID = 162; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 162: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinSignatureValueType(stream, &dinSignatureType->SignatureValue); + grammarID = 163; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 163: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinKeyInfoType(stream, &dinSignatureType->KeyInfo); + dinSignatureType->KeyInfo_isUsed = 1u; + grammarID = 164; + break; + case 1: + if (dinSignatureType->Object.arrayLen < dinSignatureType_Object_ARRAY_SIZE) { + errn = decode_dinObjectType(stream, &dinSignatureType->Object.array[dinSignatureType->Object.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 164; + break; + case 2: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 164: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinSignatureType->Object.arrayLen < dinSignatureType_Object_ARRAY_SIZE) { + errn = decode_dinObjectType(stream, &dinSignatureType->Object.array[dinSignatureType->Object.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 164; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ +static int decode_dinReferenceType(bitstream_t* stream, struct dinReferenceType* dinReferenceType) { + int grammarID = 165; + int done = 0; + + init_dinReferenceType(dinReferenceType); + + while(!done) { + switch(grammarID) { + case 165: + /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinReferenceType->Id.charactersLen); + if (errn == 0) { + if (dinReferenceType->Id.charactersLen >= 2) { + dinReferenceType->Id.charactersLen = (uint16_t)(dinReferenceType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinReferenceType->Id.charactersLen, dinReferenceType->Id.characters, dinReferenceType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinReferenceType->Id_isUsed = 1u; + grammarID = 166; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &dinReferenceType->Type.charactersLen); + if (errn == 0) { + if (dinReferenceType->Type.charactersLen >= 2) { + dinReferenceType->Type.charactersLen = (uint16_t)(dinReferenceType->Type.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinReferenceType->Type.charactersLen, dinReferenceType->Type.characters, dinReferenceType_Type_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinReferenceType->Type_isUsed = 1u; + grammarID = 167; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &dinReferenceType->URI.charactersLen); + if (errn == 0) { + if (dinReferenceType->URI.charactersLen >= 2) { + dinReferenceType->URI.charactersLen = (uint16_t)(dinReferenceType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinReferenceType->URI.charactersLen, dinReferenceType->URI.characters, dinReferenceType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinReferenceType->URI_isUsed = 1u; + grammarID = 168; + break; + case 3: + errn = decode_dinTransformsType(stream, &dinReferenceType->Transforms); + dinReferenceType->Transforms_isUsed = 1u; + grammarID = 169; + break; + case 4: + errn = decode_dinDigestMethodType(stream, &dinReferenceType->DigestMethod); + grammarID = 170; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 166: + /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinReferenceType->Type.charactersLen); + if (errn == 0) { + if (dinReferenceType->Type.charactersLen >= 2) { + dinReferenceType->Type.charactersLen = (uint16_t)(dinReferenceType->Type.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinReferenceType->Type.charactersLen, dinReferenceType->Type.characters, dinReferenceType_Type_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinReferenceType->Type_isUsed = 1u; + grammarID = 167; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &dinReferenceType->URI.charactersLen); + if (errn == 0) { + if (dinReferenceType->URI.charactersLen >= 2) { + dinReferenceType->URI.charactersLen = (uint16_t)(dinReferenceType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinReferenceType->URI.charactersLen, dinReferenceType->URI.characters, dinReferenceType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinReferenceType->URI_isUsed = 1u; + grammarID = 168; + break; + case 2: + errn = decode_dinTransformsType(stream, &dinReferenceType->Transforms); + dinReferenceType->Transforms_isUsed = 1u; + grammarID = 169; + break; + case 3: + errn = decode_dinDigestMethodType(stream, &dinReferenceType->DigestMethod); + grammarID = 170; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 167: + /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinReferenceType->URI.charactersLen); + if (errn == 0) { + if (dinReferenceType->URI.charactersLen >= 2) { + dinReferenceType->URI.charactersLen = (uint16_t)(dinReferenceType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinReferenceType->URI.charactersLen, dinReferenceType->URI.characters, dinReferenceType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinReferenceType->URI_isUsed = 1u; + grammarID = 168; + break; + case 1: + errn = decode_dinTransformsType(stream, &dinReferenceType->Transforms); + dinReferenceType->Transforms_isUsed = 1u; + grammarID = 169; + break; + case 2: + errn = decode_dinDigestMethodType(stream, &dinReferenceType->DigestMethod); + grammarID = 170; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 168: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinTransformsType(stream, &dinReferenceType->Transforms); + dinReferenceType->Transforms_isUsed = 1u; + grammarID = 169; + break; + case 1: + errn = decode_dinDigestMethodType(stream, &dinReferenceType->DigestMethod); + grammarID = 170; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 169: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinDigestMethodType(stream, &dinReferenceType->DigestMethod); + grammarID = 170; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 170: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinReferenceType->DigestValue.bytesLen); + if (errn == 0) { + errn = (dinReferenceType->DigestValue.bytesLen) <= dinReferenceType_DigestValue_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinReferenceType->DigestValue.bytesLen, dinReferenceType->DigestValue.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ProfileEntryType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ChargingProfileEntryStart,"urn:iso:15118:2:2010:MsgDataTypes":ChargingProfileEntryMaxPower)', derivedBy='RESTRICTION'. */ +static int decode_dinProfileEntryType(bitstream_t* stream, struct dinProfileEntryType* dinProfileEntryType) { + int grammarID = 171; + int done = 0; + + init_dinProfileEntryType(dinProfileEntryType); + + while(!done) { + switch(grammarID) { + case 171: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &dinProfileEntryType->ChargingProfileEntryStart); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 172; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 172: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &dinProfileEntryType->ChargingProfileEntryMaxPower); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDef,#AnonType_V2G_Message', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDef":Header,"urn:iso:15118:2:2010:MsgDef":Body)', derivedBy='RESTRICTION'. */ +static int decode_dinAnonType_V2G_Message(bitstream_t* stream, struct dinAnonType_V2G_Message* dinAnonType_V2G_Message) { + int grammarID = 173; + int done = 0; + + init_dinAnonType_V2G_Message(dinAnonType_V2G_Message); + + while(!done) { + switch(grammarID) { + case 173: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinMessageHeaderType(stream, &dinAnonType_V2G_Message->Header); + grammarID = 174; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 174: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinBodyType(stream, &dinAnonType_V2G_Message->Body); + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ChargeParameterDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":EVRequestedEnergyTransferType,"urn:iso:15118:2:2010:MsgDataTypes":EVChargeParameter)', derivedBy='EXTENSION'. */ +static int decode_dinChargeParameterDiscoveryReqType(bitstream_t* stream, struct dinChargeParameterDiscoveryReqType* dinChargeParameterDiscoveryReqType) { + int grammarID = 175; + int done = 0; + + init_dinChargeParameterDiscoveryReqType(dinChargeParameterDiscoveryReqType); + + while(!done) { + switch(grammarID) { + case 175: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &uint32); + dinChargeParameterDiscoveryReqType->EVRequestedEnergyTransferType = (dinEVRequestedEnergyTransferType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 176; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 176: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinAC_EVChargeParameterType(stream, &dinChargeParameterDiscoveryReqType->AC_EVChargeParameter); + dinChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed = 1u; + grammarID = 4; + break; + case 1: + errn = decode_dinDC_EVChargeParameterType(stream, &dinChargeParameterDiscoveryReqType->DC_EVChargeParameter); + dinChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed = 1u; + grammarID = 4; + break; + case 2: + errn = decode_dinEVChargeParameterType(stream, &dinChargeParameterDiscoveryReqType->EVChargeParameter); + dinChargeParameterDiscoveryReqType->EVChargeParameter_isUsed = 1u; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ConsumptionCostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":startValue,"urn:iso:15118:2:2010:MsgDataTypes":Cost{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinConsumptionCostType(bitstream_t* stream, struct dinConsumptionCostType* dinConsumptionCostType) { + int grammarID = 177; + int done = 0; + + init_dinConsumptionCostType(dinConsumptionCostType); + + while(!done) { + switch(grammarID) { + case 177: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}startValue)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &dinConsumptionCostType->startValue); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}startValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 178; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 178: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Cost), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinConsumptionCostType->Cost.arrayLen < dinConsumptionCostType_Cost_ARRAY_SIZE) { + errn = decode_dinCostType(stream, &dinConsumptionCostType->Cost.array[dinConsumptionCostType->Cost.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 178; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */ +static int decode_dinRSAKeyValueType(bitstream_t* stream, struct dinRSAKeyValueType* dinRSAKeyValueType) { + int grammarID = 179; + int done = 0; + + init_dinRSAKeyValueType(dinRSAKeyValueType); + + while(!done) { + switch(grammarID) { + case 179: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinRSAKeyValueType->Modulus.bytesLen); + if (errn == 0) { + errn = (dinRSAKeyValueType->Modulus.bytesLen) <= dinRSAKeyValueType_Modulus_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinRSAKeyValueType->Modulus.bytesLen, dinRSAKeyValueType->Modulus.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 180; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 180: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinRSAKeyValueType->Exponent.bytesLen); + if (errn == 0) { + errn = (dinRSAKeyValueType->Exponent.bytesLen) <= dinRSAKeyValueType_Exponent_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinRSAKeyValueType->Exponent.bytesLen, dinRSAKeyValueType->Exponent.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ServiceTag,"urn:iso:15118:2:2010:MsgDataTypes":FreeService)', derivedBy='RESTRICTION'. */ +static int decode_dinServiceType(bitstream_t* stream, struct dinServiceType* dinServiceType) { + int grammarID = 181; + int done = 0; + + init_dinServiceType(dinServiceType); + + while(!done) { + switch(grammarID) { + case 181: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinServiceTagType(stream, &dinServiceType->ServiceTag); + grammarID = 182; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 182: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinServiceType->FreeService); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceTagListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Service{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinServiceTagListType(bitstream_t* stream, struct dinServiceTagListType* dinServiceTagListType) { + int grammarID = 183; + int done = 0; + + init_dinServiceTagListType(dinServiceTagListType); + + while(!done) { + switch(grammarID) { + case 183: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinServiceTagListType->Service.arrayLen < dinServiceTagListType_Service_ARRAY_SIZE) { + errn = decode_dinServiceType(stream, &dinServiceTagListType->Service.array[dinServiceTagListType->Service.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 184; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 184: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinServiceTagListType->Service.arrayLen < dinServiceTagListType_Service_ARRAY_SIZE) { + errn = decode_dinServiceType(stream, &dinServiceTagListType->Service.array[dinServiceTagListType->Service.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 184; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_dinEVSEStatusType(bitstream_t* stream, struct dinEVSEStatusType* dinEVSEStatusType) { + int grammarID = 64; + int done = 0; + + init_dinEVSEStatusType(dinEVSEStatusType); + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,SessionSetupResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":EVSEID,"urn:iso:15118:2:2010:MsgBody":DateTimeNow{0-1})', derivedBy='EXTENSION'. */ +static int decode_dinSessionSetupResType(bitstream_t* stream, struct dinSessionSetupResType* dinSessionSetupResType) { + int grammarID = 185; + int done = 0; + + init_dinSessionSetupResType(dinSessionSetupResType); + + while(!done) { + switch(grammarID) { + case 185: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + dinSessionSetupResType->ResponseCode = (dinresponseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 186; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 186: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinSessionSetupResType->EVSEID.bytesLen); + if (errn == 0) { + errn = (dinSessionSetupResType->EVSEID.bytesLen) <= dinSessionSetupResType_EVSEID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinSessionSetupResType->EVSEID.bytesLen, dinSessionSetupResType->EVSEID.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 187; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 187: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &dinSessionSetupResType->DateTimeNow); + dinSessionSetupResType->DateTimeNow_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVPowerDeliveryParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_dinEVPowerDeliveryParameterType(bitstream_t* stream, struct dinEVPowerDeliveryParameterType* dinEVPowerDeliveryParameterType) { + int grammarID = 64; + int done = 0; + + init_dinEVPowerDeliveryParameterType(dinEVPowerDeliveryParameterType); + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */ +static int decode_dinX509IssuerSerialType(bitstream_t* stream, struct dinX509IssuerSerialType* dinX509IssuerSerialType) { + int grammarID = 188; + int done = 0; + + init_dinX509IssuerSerialType(dinX509IssuerSerialType); + + while(!done) { + switch(grammarID) { + case 188: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinX509IssuerSerialType->X509IssuerName.charactersLen); + if (errn == 0) { + if (dinX509IssuerSerialType->X509IssuerName.charactersLen >= 2) { + dinX509IssuerSerialType->X509IssuerName.charactersLen = (uint16_t)(dinX509IssuerSerialType->X509IssuerName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinX509IssuerSerialType->X509IssuerName.charactersLen, dinX509IssuerSerialType->X509IssuerName.characters, dinX509IssuerSerialType_X509IssuerName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 189; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 189: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &dinX509IssuerSerialType->X509SerialNumber); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SelectedServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ServiceID,"urn:iso:15118:2:2010:MsgDataTypes":ParameterSetID{0-1})', derivedBy='RESTRICTION'. */ +static int decode_dinSelectedServiceType(bitstream_t* stream, struct dinSelectedServiceType* dinSelectedServiceType) { + int grammarID = 190; + int done = 0; + + init_dinSelectedServiceType(dinSelectedServiceType); + + while(!done) { + switch(grammarID) { + case 190: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinSelectedServiceType->ServiceID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 191; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 191: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &dinSelectedServiceType->ParameterSetID); + dinSelectedServiceType->ParameterSetID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,MeteringReceiptResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":AC_EVSEStatus)', derivedBy='EXTENSION'. */ +static int decode_dinMeteringReceiptResType(bitstream_t* stream, struct dinMeteringReceiptResType* dinMeteringReceiptResType) { + int grammarID = 192; + int done = 0; + + init_dinMeteringReceiptResType(dinMeteringReceiptResType); + + while(!done) { + switch(grammarID) { + case 192: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + dinMeteringReceiptResType->ResponseCode = (dinresponseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 54; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 54: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinAC_EVSEStatusType(stream, &dinMeteringReceiptResType->AC_EVSEStatus); + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":EVReady,"urn:iso:15118:2:2010:MsgDataTypes":EVCabinConditioning{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVRESSConditioning{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2010:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */ +static int decode_dinDC_EVStatusType(bitstream_t* stream, struct dinDC_EVStatusType* dinDC_EVStatusType) { + int grammarID = 193; + int done = 0; + + init_dinDC_EVStatusType(dinDC_EVStatusType); + + while(!done) { + switch(grammarID) { + case 193: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVReady)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinDC_EVStatusType->EVReady); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVReady) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 194; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 194: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVCabinConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinDC_EVStatusType->EVCabinConditioning); + dinDC_EVStatusType->EVCabinConditioning_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVCabinConditioning) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 195; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinDC_EVStatusType->EVRESSConditioning); + dinDC_EVStatusType->EVRESSConditioning_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 196; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 4, &uint32); + dinDC_EVStatusType->EVErrorCode = (dinDC_EVErrorCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 197; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 195: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinDC_EVStatusType->EVRESSConditioning); + dinDC_EVStatusType->EVRESSConditioning_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 196; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 4, &uint32); + dinDC_EVStatusType->EVErrorCode = (dinDC_EVErrorCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 197; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 196: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 4, &uint32); + dinDC_EVStatusType->EVErrorCode = (dinDC_EVErrorCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 197; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 197: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSSOC)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + dinDC_EVStatusType->EVRESSSOC = (int8_t)(uint32 + 0); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ +static int decode_dinPhysicalValueType(bitstream_t* stream, struct dinPhysicalValueType* dinPhysicalValueType) { + int grammarID = 198; + int done = 0; + + init_dinPhysicalValueType(dinPhysicalValueType); + + while(!done) { + switch(grammarID) { + case 198: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &(uint32)); + dinPhysicalValueType->Multiplier = (int8_t)(uint32 -3); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 199; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 199: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 4, &uint32); + dinPhysicalValueType->Unit = (dinunitSymbolType) uint32; + dinPhysicalValueType->Unit_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 200; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &dinPhysicalValueType->Value); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 200: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &dinPhysicalValueType->Value); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ManifestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinManifestType(bitstream_t* stream, struct dinManifestType* dinManifestType) { + int grammarID = 201; + int done = 0; + + init_dinManifestType(dinManifestType); + + while(!done) { + switch(grammarID) { + case 201: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinManifestType->Id.charactersLen); + if (errn == 0) { + if (dinManifestType->Id.charactersLen >= 2) { + dinManifestType->Id.charactersLen = (uint16_t)(dinManifestType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinManifestType->Id.charactersLen, dinManifestType->Id.characters, dinManifestType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinManifestType->Id_isUsed = 1u; + grammarID = 202; + break; + case 1: + if (dinManifestType->Reference.arrayLen < dinManifestType_Reference_ARRAY_SIZE) { + errn = decode_dinReferenceType(stream, &dinManifestType->Reference.array[dinManifestType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 203; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 202: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinManifestType->Reference.arrayLen < dinManifestType_Reference_ARRAY_SIZE) { + errn = decode_dinReferenceType(stream, &dinManifestType->Reference.array[dinManifestType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 203; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 203: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinManifestType->Reference.arrayLen < dinManifestType_Reference_ARRAY_SIZE) { + errn = decode_dinReferenceType(stream, &dinManifestType->Reference.array[dinManifestType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 203; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2010:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2010:MsgDataTypes":PMax))', derivedBy='EXTENSION'. */ +static int decode_dinPMaxScheduleEntryType(bitstream_t* stream, struct dinPMaxScheduleEntryType* dinPMaxScheduleEntryType) { + int grammarID = 204; + int done = 0; + + init_dinPMaxScheduleEntryType(dinPMaxScheduleEntryType); + + while(!done) { + switch(grammarID) { + case 204: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinRelativeTimeIntervalType(stream, &dinPMaxScheduleEntryType->RelativeTimeInterval); + dinPMaxScheduleEntryType->RelativeTimeInterval_isUsed = 1u; + grammarID = 205; + break; + case 1: + errn = decode_dinIntervalType(stream, &dinPMaxScheduleEntryType->TimeInterval); + dinPMaxScheduleEntryType->TimeInterval_isUsed = 1u; + grammarID = 205; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 205: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMax)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &dinPMaxScheduleEntryType->PMax); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMax) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceParameterListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ParameterSet{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinServiceParameterListType(bitstream_t* stream, struct dinServiceParameterListType* dinServiceParameterListType) { + int grammarID = 206; + int done = 0; + + init_dinServiceParameterListType(dinServiceParameterListType); + + while(!done) { + switch(grammarID) { + case 206: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinServiceParameterListType->ParameterSet.arrayLen < dinServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_dinParameterSetType(stream, &dinServiceParameterListType->ParameterSet.array[dinServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 207; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 207: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinServiceParameterListType->ParameterSet.arrayLen < dinServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_dinParameterSetType(stream, &dinServiceParameterListType->ParameterSet.array[dinServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 207; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int decode_dinSignatureValueType(bitstream_t* stream, struct dinSignatureValueType* dinSignatureValueType) { + int grammarID = 208; + int done = 0; + + init_dinSignatureValueType(dinSignatureValueType); + + while(!done) { + switch(grammarID) { + case 208: + /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinSignatureValueType->Id.charactersLen); + if (errn == 0) { + if (dinSignatureValueType->Id.charactersLen >= 2) { + dinSignatureValueType->Id.charactersLen = (uint16_t)(dinSignatureValueType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinSignatureValueType->Id.charactersLen, dinSignatureValueType->Id.characters, dinSignatureValueType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinSignatureValueType->Id_isUsed = 1u; + grammarID = 209; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &dinSignatureValueType->CONTENT.bytesLen); + if (errn == 0) { + errn = (dinSignatureValueType->CONTENT.bytesLen) <= dinSignatureValueType_CONTENT_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinSignatureValueType->CONTENT.bytesLen, dinSignatureValueType->CONTENT.bytes); + } + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 209: + /* StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinSignatureValueType->CONTENT.bytesLen); + if (errn == 0) { + errn = (dinSignatureValueType->CONTENT.bytesLen) <= dinSignatureValueType_CONTENT_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinSignatureValueType->CONTENT.bytesLen, dinSignatureValueType->CONTENT.bytes); + } + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PaymentOptionsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":PaymentOption{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinPaymentOptionsType(bitstream_t* stream, struct dinPaymentOptionsType* dinPaymentOptionsType) { + int grammarID = 210; + int done = 0; + + init_dinPaymentOptionsType(dinPaymentOptionsType); + + while(!done) { + switch(grammarID) { + case 210: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinPaymentOptionsType->PaymentOption.arrayLen < dinPaymentOptionsType_PaymentOption_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + dinPaymentOptionsType->PaymentOption.array[dinPaymentOptionsType->PaymentOption.arrayLen] = (dinpaymentOptionType) uint32; + dinPaymentOptionsType->PaymentOption.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 211; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 211: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinPaymentOptionsType->PaymentOption.arrayLen < dinPaymentOptionsType_PaymentOption_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + dinPaymentOptionsType->PaymentOption.array[dinPaymentOptionsType->PaymentOption.arrayLen] = (dinpaymentOptionType) uint32; + dinPaymentOptionsType->PaymentOption.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 211; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceTagType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ServiceID,"urn:iso:15118:2:2010:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2010:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2010:MsgDataTypes":ServiceScope{0-1})', derivedBy='RESTRICTION'. */ +static int decode_dinServiceTagType(bitstream_t* stream, struct dinServiceTagType* dinServiceTagType) { + int grammarID = 212; + int done = 0; + + init_dinServiceTagType(dinServiceTagType); + + while(!done) { + switch(grammarID) { + case 212: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinServiceTagType->ServiceID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 213; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 213: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinServiceTagType->ServiceName.charactersLen); + if (errn == 0) { + if (dinServiceTagType->ServiceName.charactersLen >= 2) { + dinServiceTagType->ServiceName.charactersLen = (uint16_t)(dinServiceTagType->ServiceName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinServiceTagType->ServiceName.charactersLen, dinServiceTagType->ServiceName.characters, dinServiceTagType_ServiceName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinServiceTagType->ServiceName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 214; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + dinServiceTagType->ServiceCategory = (dinserviceCategoryType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 215; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 214: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + dinServiceTagType->ServiceCategory = (dinserviceCategoryType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 215; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 215: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinServiceTagType->ServiceScope.charactersLen); + if (errn == 0) { + if (dinServiceTagType->ServiceScope.charactersLen >= 2) { + dinServiceTagType->ServiceScope.charactersLen = (uint16_t)(dinServiceTagType->ServiceScope.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinServiceTagType->ServiceScope.charactersLen, dinServiceTagType->ServiceScope.characters, dinServiceTagType_ServiceScope_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinServiceTagType->ServiceScope_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":PowerSwitchClosed,"urn:iso:15118:2:2010:MsgDataTypes":RCD,"urn:iso:15118:2:2010:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2010:MsgDataTypes":EVSENotification)', derivedBy='EXTENSION'. */ +static int decode_dinAC_EVSEStatusType(bitstream_t* stream, struct dinAC_EVSEStatusType* dinAC_EVSEStatusType) { + int grammarID = 216; + int done = 0; + + init_dinAC_EVSEStatusType(dinAC_EVSEStatusType); + + while(!done) { + switch(grammarID) { + case 216: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinAC_EVSEStatusType->PowerSwitchClosed); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 217; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 217: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinAC_EVSEStatusType->RCD); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 218; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 218: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &dinAC_EVSEStatusType->NotificationMaxDelay); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 219; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 219: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + dinAC_EVSEStatusType->EVSENotification = (dinEVSENotificationType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CertificateUpdateReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2010:MsgBody":ContractID,"urn:iso:15118:2:2010:MsgBody":ListOfRootCertificateIDs,"urn:iso:15118:2:2010:MsgBody":DHParams)', derivedBy='EXTENSION'. */ +static int decode_dinCertificateUpdateReqType(bitstream_t* stream, struct dinCertificateUpdateReqType* dinCertificateUpdateReqType) { + int grammarID = 220; + int done = 0; + + init_dinCertificateUpdateReqType(dinCertificateUpdateReqType); + + while(!done) { + switch(grammarID) { + case 220: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinCertificateUpdateReqType->Id.charactersLen); + if (errn == 0) { + if (dinCertificateUpdateReqType->Id.charactersLen >= 2) { + dinCertificateUpdateReqType->Id.charactersLen = (uint16_t)(dinCertificateUpdateReqType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinCertificateUpdateReqType->Id.charactersLen, dinCertificateUpdateReqType->Id.characters, dinCertificateUpdateReqType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinCertificateUpdateReqType->Id_isUsed = 1u; + grammarID = 221; + break; + case 1: + errn = decode_dinCertificateChainType(stream, &dinCertificateUpdateReqType->ContractSignatureCertChain); + grammarID = 222; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 221: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinCertificateChainType(stream, &dinCertificateUpdateReqType->ContractSignatureCertChain); + grammarID = 222; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 222: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinCertificateUpdateReqType->ContractID.charactersLen); + if (errn == 0) { + if (dinCertificateUpdateReqType->ContractID.charactersLen >= 2) { + dinCertificateUpdateReqType->ContractID.charactersLen = (uint16_t)(dinCertificateUpdateReqType->ContractID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinCertificateUpdateReqType->ContractID.charactersLen, dinCertificateUpdateReqType->ContractID.characters, dinCertificateUpdateReqType_ContractID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 135; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 135: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinListOfRootCertificateIDsType(stream, &dinCertificateUpdateReqType->ListOfRootCertificateIDs); + grammarID = 136; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 136: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinCertificateUpdateReqType->DHParams.bytesLen); + if (errn == 0) { + errn = (dinCertificateUpdateReqType->DHParams.bytesLen) <= dinCertificateUpdateReqType_DHParams_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinCertificateUpdateReqType->DHParams.bytesLen, dinCertificateUpdateReqType->DHParams.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ServicePaymentSelectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */ +static int decode_dinServicePaymentSelectionResType(bitstream_t* stream, struct dinServicePaymentSelectionResType* dinServicePaymentSelectionResType) { + int grammarID = 223; + int done = 0; + + init_dinServicePaymentSelectionResType(dinServicePaymentSelectionResType); + + while(!done) { + switch(grammarID) { + case 223: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + dinServicePaymentSelectionResType->ResponseCode = (dinresponseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SAScheduleTupleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2010:MsgDataTypes":PMaxSchedule,"urn:iso:15118:2:2010:MsgDataTypes":SalesTariff{0-1})', derivedBy='RESTRICTION'. */ +static int decode_dinSAScheduleTupleType(bitstream_t* stream, struct dinSAScheduleTupleType* dinSAScheduleTupleType) { + int grammarID = 224; + int done = 0; + + init_dinSAScheduleTupleType(dinSAScheduleTupleType); + + while(!done) { + switch(grammarID) { + case 224: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &dinSAScheduleTupleType->SAScheduleTupleID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 225; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 225: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxSchedule)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPMaxScheduleType(stream, &dinSAScheduleTupleType->PMaxSchedule); + grammarID = 226; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 226: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariff), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinSalesTariffType(stream, &dinSAScheduleTupleType->SalesTariff); + dinSAScheduleTupleType->SalesTariff_isUsed = 1u; + grammarID = 4; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ChargingProfileType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2010:MsgDataTypes":ProfileEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinChargingProfileType(bitstream_t* stream, struct dinChargingProfileType* dinChargingProfileType) { + int grammarID = 227; + int done = 0; + + init_dinChargingProfileType(dinChargingProfileType); + + while(!done) { + switch(grammarID) { + case 227: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &dinChargingProfileType->SAScheduleTupleID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 228; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 228: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinChargingProfileType->ProfileEntry.arrayLen < dinChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_dinProfileEntryType(stream, &dinChargingProfileType->ProfileEntry.array[dinChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 229; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 229: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinChargingProfileType->ProfileEntry.arrayLen < dinChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_dinProfileEntryType(stream, &dinChargingProfileType->ProfileEntry.array[dinChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 229; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ServiceDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ServiceScope{0-1},"urn:iso:15118:2:2010:MsgBody":ServiceCategory{0-1})', derivedBy='EXTENSION'. */ +static int decode_dinServiceDiscoveryReqType(bitstream_t* stream, struct dinServiceDiscoveryReqType* dinServiceDiscoveryReqType) { + int grammarID = 230; + int done = 0; + + init_dinServiceDiscoveryReqType(dinServiceDiscoveryReqType); + + while(!done) { + switch(grammarID) { + case 230: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinServiceDiscoveryReqType->ServiceScope.charactersLen); + if (errn == 0) { + if (dinServiceDiscoveryReqType->ServiceScope.charactersLen >= 2) { + dinServiceDiscoveryReqType->ServiceScope.charactersLen = (uint16_t)(dinServiceDiscoveryReqType->ServiceScope.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinServiceDiscoveryReqType->ServiceScope.charactersLen, dinServiceDiscoveryReqType->ServiceScope.characters, dinServiceDiscoveryReqType_ServiceScope_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinServiceDiscoveryReqType->ServiceScope_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 231; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + dinServiceDiscoveryReqType->ServiceCategory = (dinserviceCategoryType) uint32; + dinServiceDiscoveryReqType->ServiceCategory_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 231: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + dinServiceDiscoveryReqType->ServiceCategory = (dinserviceCategoryType) uint32; + dinServiceDiscoveryReqType->ServiceCategory_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,AC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":AC_EVSEStatus,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaxVoltage,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaxCurrent,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMinCurrent)', derivedBy='EXTENSION'. */ +static int decode_dinAC_EVSEChargeParameterType(bitstream_t* stream, struct dinAC_EVSEChargeParameterType* dinAC_EVSEChargeParameterType) { + int grammarID = 232; + int done = 0; + + init_dinAC_EVSEChargeParameterType(dinAC_EVSEChargeParameterType); + + while(!done) { + switch(grammarID) { + case 232: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinAC_EVSEStatusType(stream, &dinAC_EVSEChargeParameterType->AC_EVSEStatus); + grammarID = 233; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 233: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinAC_EVSEChargeParameterType->EVSEMaxVoltage); + grammarID = 234; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 234: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinAC_EVSEChargeParameterType->EVSEMaxCurrent); + grammarID = 235; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 235: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinAC_EVSEChargeParameterType->EVSEMinCurrent); + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_dinKeyInfoType(bitstream_t* stream, struct dinKeyInfoType* dinKeyInfoType) { + int grammarID = 236; + int done = 0; + + init_dinKeyInfoType(dinKeyInfoType); + + while(!done) { + switch(grammarID) { + case 236: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinKeyInfoType->Id.charactersLen); + if (errn == 0) { + if (dinKeyInfoType->Id.charactersLen >= 2) { + dinKeyInfoType->Id.charactersLen = (uint16_t)(dinKeyInfoType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinKeyInfoType->Id.charactersLen, dinKeyInfoType->Id.characters, dinKeyInfoType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinKeyInfoType->Id_isUsed = 1u; + grammarID = 237; + break; + case 1: + if (dinKeyInfoType->KeyName.arrayLen < dinKeyInfoType_KeyName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen); + if (errn == 0) { + if (dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen >= 2) { + dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen, dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].characters, dinKeyInfoType_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinKeyInfoType->KeyName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 238; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + if (dinKeyInfoType->KeyValue.arrayLen < dinKeyInfoType_KeyValue_ARRAY_SIZE) { + errn = decode_dinKeyValueType(stream, &dinKeyInfoType->KeyValue.array[dinKeyInfoType->KeyValue.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 3: + if (dinKeyInfoType->RetrievalMethod.arrayLen < dinKeyInfoType_RetrievalMethod_ARRAY_SIZE) { + errn = decode_dinRetrievalMethodType(stream, &dinKeyInfoType->RetrievalMethod.array[dinKeyInfoType->RetrievalMethod.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 4: + if (dinKeyInfoType->X509Data.arrayLen < dinKeyInfoType_X509Data_ARRAY_SIZE) { + errn = decode_dinX509DataType(stream, &dinKeyInfoType->X509Data.array[dinKeyInfoType->X509Data.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 5: + if (dinKeyInfoType->PGPData.arrayLen < dinKeyInfoType_PGPData_ARRAY_SIZE) { + errn = decode_dinPGPDataType(stream, &dinKeyInfoType->PGPData.array[dinKeyInfoType->PGPData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 6: + if (dinKeyInfoType->SPKIData.arrayLen < dinKeyInfoType_SPKIData_ARRAY_SIZE) { + errn = decode_dinSPKIDataType(stream, &dinKeyInfoType->SPKIData.array[dinKeyInfoType->SPKIData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 7: + if (dinKeyInfoType->MgmtData.arrayLen < dinKeyInfoType_MgmtData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen); + if (errn == 0) { + if (dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen >= 2) { + dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen, dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].characters, dinKeyInfoType_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinKeyInfoType->MgmtData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 238; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 8: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 238; + break; + case 9: + errn = decodeUnsignedInteger16(stream, &dinKeyInfoType->ANY.charactersLen); + if (errn == 0) { + if (dinKeyInfoType->ANY.charactersLen >= 2) { + dinKeyInfoType->ANY.charactersLen = (uint16_t)(dinKeyInfoType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinKeyInfoType->ANY.charactersLen, dinKeyInfoType->ANY.characters, dinKeyInfoType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinKeyInfoType->ANY_isUsed = 1u; + grammarID = 239; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 237: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinKeyInfoType->KeyName.arrayLen < dinKeyInfoType_KeyName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen); + if (errn == 0) { + if (dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen >= 2) { + dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen, dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].characters, dinKeyInfoType_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinKeyInfoType->KeyName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 238; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + if (dinKeyInfoType->KeyValue.arrayLen < dinKeyInfoType_KeyValue_ARRAY_SIZE) { + errn = decode_dinKeyValueType(stream, &dinKeyInfoType->KeyValue.array[dinKeyInfoType->KeyValue.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 2: + if (dinKeyInfoType->RetrievalMethod.arrayLen < dinKeyInfoType_RetrievalMethod_ARRAY_SIZE) { + errn = decode_dinRetrievalMethodType(stream, &dinKeyInfoType->RetrievalMethod.array[dinKeyInfoType->RetrievalMethod.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 3: + if (dinKeyInfoType->X509Data.arrayLen < dinKeyInfoType_X509Data_ARRAY_SIZE) { + errn = decode_dinX509DataType(stream, &dinKeyInfoType->X509Data.array[dinKeyInfoType->X509Data.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 4: + if (dinKeyInfoType->PGPData.arrayLen < dinKeyInfoType_PGPData_ARRAY_SIZE) { + errn = decode_dinPGPDataType(stream, &dinKeyInfoType->PGPData.array[dinKeyInfoType->PGPData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 5: + if (dinKeyInfoType->SPKIData.arrayLen < dinKeyInfoType_SPKIData_ARRAY_SIZE) { + errn = decode_dinSPKIDataType(stream, &dinKeyInfoType->SPKIData.array[dinKeyInfoType->SPKIData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 6: + if (dinKeyInfoType->MgmtData.arrayLen < dinKeyInfoType_MgmtData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen); + if (errn == 0) { + if (dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen >= 2) { + dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen, dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].characters, dinKeyInfoType_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinKeyInfoType->MgmtData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 238; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 7: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 238; + break; + case 8: + errn = decodeUnsignedInteger16(stream, &dinKeyInfoType->ANY.charactersLen); + if (errn == 0) { + if (dinKeyInfoType->ANY.charactersLen >= 2) { + dinKeyInfoType->ANY.charactersLen = (uint16_t)(dinKeyInfoType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinKeyInfoType->ANY.charactersLen, dinKeyInfoType->ANY.characters, dinKeyInfoType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinKeyInfoType->ANY_isUsed = 1u; + grammarID = 239; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 238: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinKeyInfoType->KeyName.arrayLen < dinKeyInfoType_KeyName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen); + if (errn == 0) { + if (dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen >= 2) { + dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen, dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].characters, dinKeyInfoType_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinKeyInfoType->KeyName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 238; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + if (dinKeyInfoType->KeyValue.arrayLen < dinKeyInfoType_KeyValue_ARRAY_SIZE) { + errn = decode_dinKeyValueType(stream, &dinKeyInfoType->KeyValue.array[dinKeyInfoType->KeyValue.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 2: + if (dinKeyInfoType->RetrievalMethod.arrayLen < dinKeyInfoType_RetrievalMethod_ARRAY_SIZE) { + errn = decode_dinRetrievalMethodType(stream, &dinKeyInfoType->RetrievalMethod.array[dinKeyInfoType->RetrievalMethod.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 3: + if (dinKeyInfoType->X509Data.arrayLen < dinKeyInfoType_X509Data_ARRAY_SIZE) { + errn = decode_dinX509DataType(stream, &dinKeyInfoType->X509Data.array[dinKeyInfoType->X509Data.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 4: + if (dinKeyInfoType->PGPData.arrayLen < dinKeyInfoType_PGPData_ARRAY_SIZE) { + errn = decode_dinPGPDataType(stream, &dinKeyInfoType->PGPData.array[dinKeyInfoType->PGPData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 5: + if (dinKeyInfoType->SPKIData.arrayLen < dinKeyInfoType_SPKIData_ARRAY_SIZE) { + errn = decode_dinSPKIDataType(stream, &dinKeyInfoType->SPKIData.array[dinKeyInfoType->SPKIData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 6: + if (dinKeyInfoType->MgmtData.arrayLen < dinKeyInfoType_MgmtData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen); + if (errn == 0) { + if (dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen >= 2) { + dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen, dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].characters, dinKeyInfoType_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinKeyInfoType->MgmtData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 238; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 7: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 238; + break; + case 8: + done = 1; + grammarID = 5; + break; + case 9: + errn = decodeUnsignedInteger16(stream, &dinKeyInfoType->ANY.charactersLen); + if (errn == 0) { + if (dinKeyInfoType->ANY.charactersLen >= 2) { + dinKeyInfoType->ANY.charactersLen = (uint16_t)(dinKeyInfoType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinKeyInfoType->ANY.charactersLen, dinKeyInfoType->ANY.characters, dinKeyInfoType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinKeyInfoType->ANY_isUsed = 1u; + grammarID = 238; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 239: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinKeyInfoType->KeyName.arrayLen < dinKeyInfoType_KeyName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen); + if (errn == 0) { + if (dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen >= 2) { + dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].charactersLen, dinKeyInfoType->KeyName.array[dinKeyInfoType->KeyName.arrayLen].characters, dinKeyInfoType_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinKeyInfoType->KeyName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 238; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + if (dinKeyInfoType->KeyValue.arrayLen < dinKeyInfoType_KeyValue_ARRAY_SIZE) { + errn = decode_dinKeyValueType(stream, &dinKeyInfoType->KeyValue.array[dinKeyInfoType->KeyValue.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 2: + if (dinKeyInfoType->RetrievalMethod.arrayLen < dinKeyInfoType_RetrievalMethod_ARRAY_SIZE) { + errn = decode_dinRetrievalMethodType(stream, &dinKeyInfoType->RetrievalMethod.array[dinKeyInfoType->RetrievalMethod.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 3: + if (dinKeyInfoType->X509Data.arrayLen < dinKeyInfoType_X509Data_ARRAY_SIZE) { + errn = decode_dinX509DataType(stream, &dinKeyInfoType->X509Data.array[dinKeyInfoType->X509Data.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 4: + if (dinKeyInfoType->PGPData.arrayLen < dinKeyInfoType_PGPData_ARRAY_SIZE) { + errn = decode_dinPGPDataType(stream, &dinKeyInfoType->PGPData.array[dinKeyInfoType->PGPData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 5: + if (dinKeyInfoType->SPKIData.arrayLen < dinKeyInfoType_SPKIData_ARRAY_SIZE) { + errn = decode_dinSPKIDataType(stream, &dinKeyInfoType->SPKIData.array[dinKeyInfoType->SPKIData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 6: + if (dinKeyInfoType->MgmtData.arrayLen < dinKeyInfoType_MgmtData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen); + if (errn == 0) { + if (dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen >= 2) { + dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].charactersLen, dinKeyInfoType->MgmtData.array[dinKeyInfoType->MgmtData.arrayLen].characters, dinKeyInfoType_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinKeyInfoType->MgmtData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 238; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 7: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 238; + break; + case 8: + errn = decodeUnsignedInteger16(stream, &dinKeyInfoType->ANY.charactersLen); + if (errn == 0) { + if (dinKeyInfoType->ANY.charactersLen >= 2) { + dinKeyInfoType->ANY.charactersLen = (uint16_t)(dinKeyInfoType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinKeyInfoType->ANY.charactersLen, dinKeyInfoType->ANY.characters, dinKeyInfoType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinKeyInfoType->ANY_isUsed = 1u; + grammarID = 239; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,PaymentDetailsReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ContractID,"urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain)', derivedBy='EXTENSION'. */ +static int decode_dinPaymentDetailsReqType(bitstream_t* stream, struct dinPaymentDetailsReqType* dinPaymentDetailsReqType) { + int grammarID = 240; + int done = 0; + + init_dinPaymentDetailsReqType(dinPaymentDetailsReqType); + + while(!done) { + switch(grammarID) { + case 240: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinPaymentDetailsReqType->ContractID.charactersLen); + if (errn == 0) { + if (dinPaymentDetailsReqType->ContractID.charactersLen >= 2) { + dinPaymentDetailsReqType->ContractID.charactersLen = (uint16_t)(dinPaymentDetailsReqType->ContractID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinPaymentDetailsReqType->ContractID.charactersLen, dinPaymentDetailsReqType->ContractID.characters, dinPaymentDetailsReqType_ContractID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 241; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 241: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinCertificateChainType(stream, &dinPaymentDetailsReqType->ContractSignatureCertChain); + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CableCheckResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */ +static int decode_dinCableCheckResType(bitstream_t* stream, struct dinCableCheckResType* dinCableCheckResType) { + int grammarID = 242; + int done = 0; + + init_dinCableCheckResType(dinCableCheckResType); + + while(!done) { + switch(grammarID) { + case 242: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + dinCableCheckResType->ResponseCode = (dinresponseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 243; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 243: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinDC_EVSEStatusType(stream, &dinCableCheckResType->DC_EVSEStatus); + grammarID = 17; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 17: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + dinCableCheckResType->EVSEProcessing = (dinEVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_dinObjectType(bitstream_t* stream, struct dinObjectType* dinObjectType) { + int grammarID = 244; + int done = 0; + + init_dinObjectType(dinObjectType); + + while(!done) { + switch(grammarID) { + case 244: + /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinObjectType->Encoding.charactersLen); + if (errn == 0) { + if (dinObjectType->Encoding.charactersLen >= 2) { + dinObjectType->Encoding.charactersLen = (uint16_t)(dinObjectType->Encoding.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinObjectType->Encoding.charactersLen, dinObjectType->Encoding.characters, dinObjectType_Encoding_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinObjectType->Encoding_isUsed = 1u; + grammarID = 245; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &dinObjectType->Id.charactersLen); + if (errn == 0) { + if (dinObjectType->Id.charactersLen >= 2) { + dinObjectType->Id.charactersLen = (uint16_t)(dinObjectType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinObjectType->Id.charactersLen, dinObjectType->Id.characters, dinObjectType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinObjectType->Id_isUsed = 1u; + grammarID = 246; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &dinObjectType->MimeType.charactersLen); + if (errn == 0) { + if (dinObjectType->MimeType.charactersLen >= 2) { + dinObjectType->MimeType.charactersLen = (uint16_t)(dinObjectType->MimeType.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinObjectType->MimeType.charactersLen, dinObjectType->MimeType.characters, dinObjectType_MimeType_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinObjectType->MimeType_isUsed = 1u; + grammarID = 19; + break; + case 3: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 20; + break; + case 4: + done = 1; + grammarID = 5; + break; + case 5: + errn = decodeUnsignedInteger16(stream, &dinObjectType->ANY.charactersLen); + if (errn == 0) { + if (dinObjectType->ANY.charactersLen >= 2) { + dinObjectType->ANY.charactersLen = (uint16_t)(dinObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinObjectType->ANY.charactersLen, dinObjectType->ANY.characters, dinObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinObjectType->ANY_isUsed = 1u; + grammarID = 20; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 245: + /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinObjectType->Id.charactersLen); + if (errn == 0) { + if (dinObjectType->Id.charactersLen >= 2) { + dinObjectType->Id.charactersLen = (uint16_t)(dinObjectType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinObjectType->Id.charactersLen, dinObjectType->Id.characters, dinObjectType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinObjectType->Id_isUsed = 1u; + grammarID = 246; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &dinObjectType->MimeType.charactersLen); + if (errn == 0) { + if (dinObjectType->MimeType.charactersLen >= 2) { + dinObjectType->MimeType.charactersLen = (uint16_t)(dinObjectType->MimeType.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinObjectType->MimeType.charactersLen, dinObjectType->MimeType.characters, dinObjectType_MimeType_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinObjectType->MimeType_isUsed = 1u; + grammarID = 19; + break; + case 2: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 20; + break; + case 3: + done = 1; + grammarID = 5; + break; + case 4: + errn = decodeUnsignedInteger16(stream, &dinObjectType->ANY.charactersLen); + if (errn == 0) { + if (dinObjectType->ANY.charactersLen >= 2) { + dinObjectType->ANY.charactersLen = (uint16_t)(dinObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinObjectType->ANY.charactersLen, dinObjectType->ANY.characters, dinObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinObjectType->ANY_isUsed = 1u; + grammarID = 20; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 246: + /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinObjectType->MimeType.charactersLen); + if (errn == 0) { + if (dinObjectType->MimeType.charactersLen >= 2) { + dinObjectType->MimeType.charactersLen = (uint16_t)(dinObjectType->MimeType.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinObjectType->MimeType.charactersLen, dinObjectType->MimeType.characters, dinObjectType_MimeType_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinObjectType->MimeType_isUsed = 1u; + grammarID = 19; + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 20; + break; + case 2: + done = 1; + grammarID = 5; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &dinObjectType->ANY.charactersLen); + if (errn == 0) { + if (dinObjectType->ANY.charactersLen >= 2) { + dinObjectType->ANY.charactersLen = (uint16_t)(dinObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinObjectType->ANY.charactersLen, dinObjectType->ANY.characters, dinObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinObjectType->ANY_isUsed = 1u; + grammarID = 20; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 19: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 20; + break; + case 1: + done = 1; + grammarID = 5; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &dinObjectType->ANY.charactersLen); + if (errn == 0) { + if (dinObjectType->ANY.charactersLen >= 2) { + dinObjectType->ANY.charactersLen = (uint16_t)(dinObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinObjectType->ANY.charactersLen, dinObjectType->ANY.characters, dinObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinObjectType->ANY_isUsed = 1u; + grammarID = 20; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 20: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 20; + break; + case 1: + done = 1; + grammarID = 5; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &dinObjectType->ANY.charactersLen); + if (errn == 0) { + if (dinObjectType->ANY.charactersLen >= 2) { + dinObjectType->ANY.charactersLen = (uint16_t)(dinObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinObjectType->ANY.charactersLen, dinObjectType->ANY.characters, dinObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinObjectType->ANY_isUsed = 1u; + grammarID = 20; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,SessionStopResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */ +static int decode_dinSessionStopResType(bitstream_t* stream, struct dinSessionStopResType* dinSessionStopResType) { + int grammarID = 223; + int done = 0; + + init_dinSessionStopResType(dinSessionStopResType); + + while(!done) { + switch(grammarID) { + case 223: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + dinSessionStopResType->ResponseCode = (dinresponseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinSignedInfoType(bitstream_t* stream, struct dinSignedInfoType* dinSignedInfoType) { + int grammarID = 247; + int done = 0; + + init_dinSignedInfoType(dinSignedInfoType); + + while(!done) { + switch(grammarID) { + case 247: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinSignedInfoType->Id.charactersLen); + if (errn == 0) { + if (dinSignedInfoType->Id.charactersLen >= 2) { + dinSignedInfoType->Id.charactersLen = (uint16_t)(dinSignedInfoType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinSignedInfoType->Id.charactersLen, dinSignedInfoType->Id.characters, dinSignedInfoType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinSignedInfoType->Id_isUsed = 1u; + grammarID = 248; + break; + case 1: + errn = decode_dinCanonicalizationMethodType(stream, &dinSignedInfoType->CanonicalizationMethod); + grammarID = 249; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 248: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinCanonicalizationMethodType(stream, &dinSignedInfoType->CanonicalizationMethod); + grammarID = 249; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 249: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinSignatureMethodType(stream, &dinSignedInfoType->SignatureMethod); + grammarID = 250; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 250: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinSignedInfoType->Reference.arrayLen < dinSignedInfoType_Reference_ARRAY_SIZE) { + errn = decode_dinReferenceType(stream, &dinSignedInfoType->Reference.array[dinSignedInfoType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 203; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 203: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinSignedInfoType->Reference.arrayLen < dinSignedInfoType_Reference_ARRAY_SIZE) { + errn = decode_dinReferenceType(stream, &dinSignedInfoType->Reference.array[dinSignedInfoType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 203; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SalesTariffType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SalesTariffID,"urn:iso:15118:2:2010:MsgDataTypes":SalesTariffDescription{0-1},"urn:iso:15118:2:2010:MsgDataTypes":NumEPriceLevels,"urn:iso:15118:2:2010:MsgDataTypes":SalesTariffEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinSalesTariffType(bitstream_t* stream, struct dinSalesTariffType* dinSalesTariffType) { + int grammarID = 251; + int done = 0; + + init_dinSalesTariffType(dinSalesTariffType); + + while(!done) { + switch(grammarID) { + case 251: + /* FirstStartTag[ATTRIBUTE[STRING](Id)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinSalesTariffType->Id.charactersLen); + if (errn == 0) { + if (dinSalesTariffType->Id.charactersLen >= 2) { + dinSalesTariffType->Id.charactersLen = (uint16_t)(dinSalesTariffType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinSalesTariffType->Id.charactersLen, dinSalesTariffType->Id.characters, dinSalesTariffType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 252; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 252: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &dinSalesTariffType->SalesTariffID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 253; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 253: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinSalesTariffType->SalesTariffDescription.charactersLen); + if (errn == 0) { + if (dinSalesTariffType->SalesTariffDescription.charactersLen >= 2) { + dinSalesTariffType->SalesTariffDescription.charactersLen = (uint16_t)(dinSalesTariffType->SalesTariffDescription.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinSalesTariffType->SalesTariffDescription.charactersLen, dinSalesTariffType->SalesTariffDescription.characters, dinSalesTariffType_SalesTariffDescription_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinSalesTariffType->SalesTariffDescription_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffDescription) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 254; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + dinSalesTariffType->NumEPriceLevels = (uint8_t)(uint32 + 0); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 255; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 254: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + dinSalesTariffType->NumEPriceLevels = (uint8_t)(uint32 + 0); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 255; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 255: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinSalesTariffType->SalesTariffEntry.arrayLen < dinSalesTariffType_SalesTariffEntry_ARRAY_SIZE) { + errn = decode_dinSalesTariffEntryType(stream, &dinSalesTariffType->SalesTariffEntry.array[dinSalesTariffType->SalesTariffEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 256; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 256: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinSalesTariffType->SalesTariffEntry.arrayLen < dinSalesTariffType_SalesTariffEntry_ARRAY_SIZE) { + errn = decode_dinSalesTariffEntryType(stream, &dinSalesTariffType->SalesTariffEntry.array[dinSalesTariffType->SalesTariffEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 256; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,CostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":costKind,"urn:iso:15118:2:2010:MsgDataTypes":amount,"urn:iso:15118:2:2010:MsgDataTypes":amountMultiplier{0-1})', derivedBy='RESTRICTION'. */ +static int decode_dinCostType(bitstream_t* stream, struct dinCostType* dinCostType) { + int grammarID = 257; + int done = 0; + + init_dinCostType(dinCostType); + + while(!done) { + switch(grammarID) { + case 257: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}costKind)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + dinCostType->costKind = (dincostKindType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}costKind) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 258; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 258: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amount)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &dinCostType->amount); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amount) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 259; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 259: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amountMultiplier), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &(uint32)); + dinCostType->amountMultiplier = (int8_t)(uint32 -3); + dinCostType->amountMultiplier_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amountMultiplier) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceChargeType', base type name='ServiceType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2010:MsgDataTypes":ServiceTag,"urn:iso:15118:2:2010:MsgDataTypes":FreeService),("urn:iso:15118:2:2010:MsgDataTypes":EnergyTransferType))', derivedBy='EXTENSION'. */ +static int decode_dinServiceChargeType(bitstream_t* stream, struct dinServiceChargeType* dinServiceChargeType) { + int grammarID = 260; + int done = 0; + + init_dinServiceChargeType(dinServiceChargeType); + + while(!done) { + switch(grammarID) { + case 260: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinServiceTagType(stream, &dinServiceChargeType->ServiceTag); + grammarID = 261; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 261: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &dinServiceChargeType->FreeService); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 262; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 262: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 4, &uint32); + dinServiceChargeType->EnergyTransferType = (dinEVSESupportedEnergyTransferType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVSEStatusCode,"urn:iso:15118:2:2010:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2010:MsgDataTypes":EVSENotification)', derivedBy='EXTENSION'. */ +static int decode_dinDC_EVSEStatusType(bitstream_t* stream, struct dinDC_EVSEStatusType* dinDC_EVSEStatusType) { + int grammarID = 263; + int done = 0; + + init_dinDC_EVSEStatusType(dinDC_EVSEStatusType); + + while(!done) { + switch(grammarID) { + case 263: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + dinDC_EVSEStatusType->EVSEIsolationStatus = (dinisolationLevelType) uint32; + dinDC_EVSEStatusType->EVSEIsolationStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 264; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 4, &uint32); + dinDC_EVSEStatusType->EVSEStatusCode = (dinDC_EVSEStatusCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 218; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 264: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 4, &uint32); + dinDC_EVSEStatusType->EVSEStatusCode = (dinDC_EVSEStatusCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 218; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 218: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &dinDC_EVSEStatusType->NotificationMaxDelay); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 219; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 219: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + dinDC_EVSEStatusType->EVSENotification = (dinEVSENotificationType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */ +static int decode_dinRetrievalMethodType(bitstream_t* stream, struct dinRetrievalMethodType* dinRetrievalMethodType) { + int grammarID = 265; + int done = 0; + + init_dinRetrievalMethodType(dinRetrievalMethodType); + + while(!done) { + switch(grammarID) { + case 265: + /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinRetrievalMethodType->Type.charactersLen); + if (errn == 0) { + if (dinRetrievalMethodType->Type.charactersLen >= 2) { + dinRetrievalMethodType->Type.charactersLen = (uint16_t)(dinRetrievalMethodType->Type.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinRetrievalMethodType->Type.charactersLen, dinRetrievalMethodType->Type.characters, dinRetrievalMethodType_Type_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinRetrievalMethodType->Type_isUsed = 1u; + grammarID = 266; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &dinRetrievalMethodType->URI.charactersLen); + if (errn == 0) { + if (dinRetrievalMethodType->URI.charactersLen >= 2) { + dinRetrievalMethodType->URI.charactersLen = (uint16_t)(dinRetrievalMethodType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinRetrievalMethodType->URI.charactersLen, dinRetrievalMethodType->URI.characters, dinRetrievalMethodType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinRetrievalMethodType->URI_isUsed = 1u; + grammarID = 267; + break; + case 2: + errn = decode_dinTransformsType(stream, &dinRetrievalMethodType->Transforms); + dinRetrievalMethodType->Transforms_isUsed = 1u; + grammarID = 4; + break; + case 3: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 266: + /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinRetrievalMethodType->URI.charactersLen); + if (errn == 0) { + if (dinRetrievalMethodType->URI.charactersLen >= 2) { + dinRetrievalMethodType->URI.charactersLen = (uint16_t)(dinRetrievalMethodType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinRetrievalMethodType->URI.charactersLen, dinRetrievalMethodType->URI.characters, dinRetrievalMethodType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinRetrievalMethodType->URI_isUsed = 1u; + grammarID = 267; + break; + case 1: + errn = decode_dinTransformsType(stream, &dinRetrievalMethodType->Transforms); + dinRetrievalMethodType->Transforms_isUsed = 1u; + grammarID = 4; + break; + case 2: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 267: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinTransformsType(stream, &dinRetrievalMethodType->Transforms); + dinRetrievalMethodType->Transforms_isUsed = 1u; + grammarID = 4; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,NotificationType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":FaultCode,"urn:iso:15118:2:2010:MsgDataTypes":FaultMsg{0-1})', derivedBy='RESTRICTION'. */ +static int decode_dinNotificationType(bitstream_t* stream, struct dinNotificationType* dinNotificationType) { + int grammarID = 268; + int done = 0; + + init_dinNotificationType(dinNotificationType); + + while(!done) { + switch(grammarID) { + case 268: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + dinNotificationType->FaultCode = (dinfaultCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 269; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 269: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinNotificationType->FaultMsg.charactersLen); + if (errn == 0) { + if (dinNotificationType->FaultMsg.charactersLen >= 2) { + dinNotificationType->FaultMsg.charactersLen = (uint16_t)(dinNotificationType->FaultMsg.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinNotificationType->FaultMsg.charactersLen, dinNotificationType->FaultMsg.characters, dinNotificationType_FaultMsg_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinNotificationType->FaultMsg_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */ +static int decode_dinPGPDataType(bitstream_t* stream, struct dinPGPDataType* dinPGPDataType) { + int grammarID = 270; + int done = 0; + + init_dinPGPDataType(dinPGPDataType); + + while(!done) { + switch(grammarID) { + case 270: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinPGPDataType->PGPKeyID.bytesLen); + if (errn == 0) { + errn = (dinPGPDataType->PGPKeyID.bytesLen) <= dinPGPDataType_PGPKeyID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinPGPDataType->PGPKeyID.bytesLen, dinPGPDataType->PGPKeyID.bytes); + } + dinPGPDataType->PGPKeyID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 271; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinPGPDataType->PGPKeyPacket.bytesLen); + if (errn == 0) { + errn = (dinPGPDataType->PGPKeyPacket.bytesLen) <= dinPGPDataType_PGPKeyPacket_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinPGPDataType->PGPKeyPacket.bytesLen, dinPGPDataType->PGPKeyPacket.bytes); + } + dinPGPDataType->PGPKeyPacket_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 272; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 271: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinPGPDataType->PGPKeyPacket.bytesLen); + if (errn == 0) { + errn = (dinPGPDataType->PGPKeyPacket.bytesLen) <= dinPGPDataType_PGPKeyPacket_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinPGPDataType->PGPKeyPacket.bytesLen, dinPGPDataType->PGPKeyPacket.bytes); + } + dinPGPDataType->PGPKeyPacket_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 272; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 272; + break; + case 2: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 272: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 272; + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CertificateInstallationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2010:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2010:MsgBody":DHParams,"urn:iso:15118:2:2010:MsgBody":ContractID)', derivedBy='EXTENSION'. */ +static int decode_dinCertificateInstallationResType(bitstream_t* stream, struct dinCertificateInstallationResType* dinCertificateInstallationResType) { + int grammarID = 273; + int done = 0; + + init_dinCertificateInstallationResType(dinCertificateInstallationResType); + + while(!done) { + switch(grammarID) { + case 273: + /* FirstStartTag[ATTRIBUTE[STRING](Id)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinCertificateInstallationResType->Id.charactersLen); + if (errn == 0) { + if (dinCertificateInstallationResType->Id.charactersLen >= 2) { + dinCertificateInstallationResType->Id.charactersLen = (uint16_t)(dinCertificateInstallationResType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinCertificateInstallationResType->Id.charactersLen, dinCertificateInstallationResType->Id.characters, dinCertificateInstallationResType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 274; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 274: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + dinCertificateInstallationResType->ResponseCode = (dinresponseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 275; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 275: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinCertificateChainType(stream, &dinCertificateInstallationResType->ContractSignatureCertChain); + grammarID = 276; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 276: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinCertificateInstallationResType->ContractSignatureEncryptedPrivateKey.bytesLen); + if (errn == 0) { + errn = (dinCertificateInstallationResType->ContractSignatureEncryptedPrivateKey.bytesLen) <= dinCertificateInstallationResType_ContractSignatureEncryptedPrivateKey_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinCertificateInstallationResType->ContractSignatureEncryptedPrivateKey.bytesLen, dinCertificateInstallationResType->ContractSignatureEncryptedPrivateKey.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 277; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 277: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinCertificateInstallationResType->DHParams.bytesLen); + if (errn == 0) { + errn = (dinCertificateInstallationResType->DHParams.bytesLen) <= dinCertificateInstallationResType_DHParams_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinCertificateInstallationResType->DHParams.bytesLen, dinCertificateInstallationResType->DHParams.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 278; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 278: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinCertificateInstallationResType->ContractID.charactersLen); + if (errn == 0) { + if (dinCertificateInstallationResType->ContractID.charactersLen >= 2) { + dinCertificateInstallationResType->ContractID.charactersLen = (uint16_t)(dinCertificateInstallationResType->ContractID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinCertificateInstallationResType->ContractID.charactersLen, dinCertificateInstallationResType->ContractID.characters, dinCertificateInstallationResType_ContractID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_dinSignaturePropertyType(bitstream_t* stream, struct dinSignaturePropertyType* dinSignaturePropertyType) { + int grammarID = 279; + int done = 0; + + init_dinSignaturePropertyType(dinSignaturePropertyType); + + while(!done) { + switch(grammarID) { + case 279: + /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinSignaturePropertyType->Id.charactersLen); + if (errn == 0) { + if (dinSignaturePropertyType->Id.charactersLen >= 2) { + dinSignaturePropertyType->Id.charactersLen = (uint16_t)(dinSignaturePropertyType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinSignaturePropertyType->Id.charactersLen, dinSignaturePropertyType->Id.characters, dinSignaturePropertyType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinSignaturePropertyType->Id_isUsed = 1u; + grammarID = 280; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &dinSignaturePropertyType->Target.charactersLen); + if (errn == 0) { + if (dinSignaturePropertyType->Target.charactersLen >= 2) { + dinSignaturePropertyType->Target.charactersLen = (uint16_t)(dinSignaturePropertyType->Target.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinSignaturePropertyType->Target.charactersLen, dinSignaturePropertyType->Target.characters, dinSignaturePropertyType_Target_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 281; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 280: + /* StartTag[ATTRIBUTE[STRING](Target)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &dinSignaturePropertyType->Target.charactersLen); + if (errn == 0) { + if (dinSignaturePropertyType->Target.charactersLen >= 2) { + dinSignaturePropertyType->Target.charactersLen = (uint16_t)(dinSignaturePropertyType->Target.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinSignaturePropertyType->Target.charactersLen, dinSignaturePropertyType->Target.characters, dinSignaturePropertyType_Target_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 281; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 281: + /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 20; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &dinSignaturePropertyType->ANY.charactersLen); + if (errn == 0) { + if (dinSignaturePropertyType->ANY.charactersLen >= 2) { + dinSignaturePropertyType->ANY.charactersLen = (uint16_t)(dinSignaturePropertyType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinSignaturePropertyType->ANY.charactersLen, dinSignaturePropertyType->ANY.characters, dinSignaturePropertyType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinSignaturePropertyType->ANY_isUsed = 1u; + grammarID = 282; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 20: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 20; + break; + case 1: + done = 1; + grammarID = 5; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &dinSignaturePropertyType->ANY.charactersLen); + if (errn == 0) { + if (dinSignaturePropertyType->ANY.charactersLen >= 2) { + dinSignaturePropertyType->ANY.charactersLen = (uint16_t)(dinSignaturePropertyType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinSignaturePropertyType->ANY.charactersLen, dinSignaturePropertyType->ANY.characters, dinSignaturePropertyType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinSignaturePropertyType->ANY_isUsed = 1u; + grammarID = 20; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 282: + /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 20; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &dinSignaturePropertyType->ANY.charactersLen); + if (errn == 0) { + if (dinSignaturePropertyType->ANY.charactersLen >= 2) { + dinSignaturePropertyType->ANY.charactersLen = (uint16_t)(dinSignaturePropertyType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinSignaturePropertyType->ANY.charactersLen, dinSignaturePropertyType->ANY.characters, dinSignaturePropertyType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + dinSignaturePropertyType->ANY_isUsed = 1u; + grammarID = 282; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":MeterID,"urn:iso:15118:2:2010:MsgDataTypes":MeterReading{0-1},"urn:iso:15118:2:2010:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2010:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2010:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ +static int decode_dinMeterInfoType(bitstream_t* stream, struct dinMeterInfoType* dinMeterInfoType) { + int grammarID = 283; + int done = 0; + + init_dinMeterInfoType(dinMeterInfoType); + + while(!done) { + switch(grammarID) { + case 283: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinMeterInfoType->MeterID.charactersLen); + if (errn == 0) { + if (dinMeterInfoType->MeterID.charactersLen >= 2) { + dinMeterInfoType->MeterID.charactersLen = (uint16_t)(dinMeterInfoType->MeterID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, dinMeterInfoType->MeterID.charactersLen, dinMeterInfoType->MeterID.characters, dinMeterInfoType_MeterID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 284; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 284: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_dinPhysicalValueType(stream, &dinMeterInfoType->MeterReading); + dinMeterInfoType->MeterReading_isUsed = 1u; + grammarID = 285; + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinMeterInfoType->SigMeterReading.bytesLen); + if (errn == 0) { + errn = (dinMeterInfoType->SigMeterReading.bytesLen) <= dinMeterInfoType_SigMeterReading_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinMeterInfoType->SigMeterReading.bytesLen, dinMeterInfoType->SigMeterReading.bytes); + } + dinMeterInfoType->SigMeterReading_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 286; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &dinMeterInfoType->MeterStatus); + dinMeterInfoType->MeterStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 287; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &dinMeterInfoType->TMeter); + dinMeterInfoType->TMeter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 285: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinMeterInfoType->SigMeterReading.bytesLen); + if (errn == 0) { + errn = (dinMeterInfoType->SigMeterReading.bytesLen) <= dinMeterInfoType_SigMeterReading_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinMeterInfoType->SigMeterReading.bytesLen, dinMeterInfoType->SigMeterReading.bytes); + } + dinMeterInfoType->SigMeterReading_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 286; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &dinMeterInfoType->MeterStatus); + dinMeterInfoType->MeterStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 287; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &dinMeterInfoType->TMeter); + dinMeterInfoType->TMeter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 286: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &dinMeterInfoType->MeterStatus); + dinMeterInfoType->MeterStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 287; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &dinMeterInfoType->TMeter); + dinMeterInfoType->TMeter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 287: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &dinMeterInfoType->TMeter); + dinMeterInfoType->TMeter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 4; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 4: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SubCertificatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Certificate{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_dinSubCertificatesType(bitstream_t* stream, struct dinSubCertificatesType* dinSubCertificatesType) { + int grammarID = 288; + int done = 0; + + init_dinSubCertificatesType(dinSubCertificatesType); + + while(!done) { + switch(grammarID) { + case 288: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinSubCertificatesType->Certificate.arrayLen < dinSubCertificatesType_Certificate_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinSubCertificatesType->Certificate.array[dinSubCertificatesType->Certificate.arrayLen].bytesLen); + if (errn == 0) { + errn = (dinSubCertificatesType->Certificate.array[dinSubCertificatesType->Certificate.arrayLen].bytesLen) <= dinSubCertificatesType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinSubCertificatesType->Certificate.array[dinSubCertificatesType->Certificate.arrayLen].bytesLen, dinSubCertificatesType->Certificate.array[dinSubCertificatesType->Certificate.arrayLen].bytes); + } + dinSubCertificatesType->Certificate.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 289; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 289: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (dinSubCertificatesType->Certificate.arrayLen < dinSubCertificatesType_Certificate_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &dinSubCertificatesType->Certificate.array[dinSubCertificatesType->Certificate.arrayLen].bytesLen); + if (errn == 0) { + errn = (dinSubCertificatesType->Certificate.array[dinSubCertificatesType->Certificate.arrayLen].bytesLen) <= dinSubCertificatesType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, dinSubCertificatesType->Certificate.array[dinSubCertificatesType->Certificate.arrayLen].bytesLen, dinSubCertificatesType->Certificate.array[dinSubCertificatesType->Certificate.arrayLen].bytes); + } + dinSubCertificatesType->Certificate.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 289; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 5; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + + + + +int decode_dinExiDocument(bitstream_t* stream, struct dinEXIDocument* exiDoc) { + errn = readEXIHeader(stream); + + if(errn == 0) { + /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] */ + init_dinEXIDocument(exiDoc); + errn = decodeNBitUnsignedInteger(stream, 7, &eventCode); + if(errn == 0) { + switch(eventCode) { + case 0: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter) */ + errn = decode_dinAC_EVChargeParameterType(stream, &exiDoc->AC_EVChargeParameter); + exiDoc->AC_EVChargeParameter_isUsed = 1u; + break; + case 1: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter) */ + errn = decode_dinAC_EVSEChargeParameterType(stream, &exiDoc->AC_EVSEChargeParameter); + exiDoc->AC_EVSEChargeParameter_isUsed = 1u; + break; + case 2: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus) */ + errn = decode_dinAC_EVSEStatusType(stream, &exiDoc->AC_EVSEStatus); + exiDoc->AC_EVSEStatus_isUsed = 1u; + break; + case 3: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement) */ + errn = decode_dinBodyBaseType(stream, &exiDoc->BodyElement); + exiDoc->BodyElement_isUsed = 1u; + break; + case 4: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq) */ + errn = decode_dinCableCheckReqType(stream, &exiDoc->CableCheckReq); + exiDoc->CableCheckReq_isUsed = 1u; + break; + case 5: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes) */ + errn = decode_dinCableCheckResType(stream, &exiDoc->CableCheckRes); + exiDoc->CableCheckRes_isUsed = 1u; + break; + case 6: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */ + errn = decode_dinCanonicalizationMethodType(stream, &exiDoc->CanonicalizationMethod); + exiDoc->CanonicalizationMethod_isUsed = 1u; + break; + case 7: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq) */ + errn = decode_dinCertificateInstallationReqType(stream, &exiDoc->CertificateInstallationReq); + exiDoc->CertificateInstallationReq_isUsed = 1u; + break; + case 8: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes) */ + errn = decode_dinCertificateInstallationResType(stream, &exiDoc->CertificateInstallationRes); + exiDoc->CertificateInstallationRes_isUsed = 1u; + break; + case 9: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq) */ + errn = decode_dinCertificateUpdateReqType(stream, &exiDoc->CertificateUpdateReq); + exiDoc->CertificateUpdateReq_isUsed = 1u; + break; + case 10: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes) */ + errn = decode_dinCertificateUpdateResType(stream, &exiDoc->CertificateUpdateRes); + exiDoc->CertificateUpdateRes_isUsed = 1u; + break; + case 11: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq) */ + errn = decode_dinChargeParameterDiscoveryReqType(stream, &exiDoc->ChargeParameterDiscoveryReq); + exiDoc->ChargeParameterDiscoveryReq_isUsed = 1u; + break; + case 12: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes) */ + errn = decode_dinChargeParameterDiscoveryResType(stream, &exiDoc->ChargeParameterDiscoveryRes); + exiDoc->ChargeParameterDiscoveryRes_isUsed = 1u; + break; + case 13: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq) */ + errn = decode_dinChargingStatusReqType(stream, &exiDoc->ChargingStatusReq); + exiDoc->ChargingStatusReq_isUsed = 1u; + break; + case 14: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes) */ + errn = decode_dinChargingStatusResType(stream, &exiDoc->ChargingStatusRes); + exiDoc->ChargingStatusRes_isUsed = 1u; + break; + case 15: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq) */ + errn = decode_dinContractAuthenticationReqType(stream, &exiDoc->ContractAuthenticationReq); + exiDoc->ContractAuthenticationReq_isUsed = 1u; + break; + case 16: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes) */ + errn = decode_dinContractAuthenticationResType(stream, &exiDoc->ContractAuthenticationRes); + exiDoc->ContractAuthenticationRes_isUsed = 1u; + break; + case 17: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq) */ + errn = decode_dinCurrentDemandReqType(stream, &exiDoc->CurrentDemandReq); + exiDoc->CurrentDemandReq_isUsed = 1u; + break; + case 18: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes) */ + errn = decode_dinCurrentDemandResType(stream, &exiDoc->CurrentDemandRes); + exiDoc->CurrentDemandRes_isUsed = 1u; + break; + case 19: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter) */ + errn = decode_dinDC_EVChargeParameterType(stream, &exiDoc->DC_EVChargeParameter); + exiDoc->DC_EVChargeParameter_isUsed = 1u; + break; + case 20: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter) */ + errn = decode_dinDC_EVPowerDeliveryParameterType(stream, &exiDoc->DC_EVPowerDeliveryParameter); + exiDoc->DC_EVPowerDeliveryParameter_isUsed = 1u; + break; + case 21: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter) */ + errn = decode_dinDC_EVSEChargeParameterType(stream, &exiDoc->DC_EVSEChargeParameter); + exiDoc->DC_EVSEChargeParameter_isUsed = 1u; + break; + case 22: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus) */ + errn = decode_dinDC_EVSEStatusType(stream, &exiDoc->DC_EVSEStatus); + exiDoc->DC_EVSEStatus_isUsed = 1u; + break; + case 23: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus) */ + errn = decode_dinDC_EVStatusType(stream, &exiDoc->DC_EVStatus); + exiDoc->DC_EVStatus_isUsed = 1u; + break; + case 24: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */ + errn = decode_dinDSAKeyValueType(stream, &exiDoc->DSAKeyValue); + exiDoc->DSAKeyValue_isUsed = 1u; + break; + case 25: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */ + errn = decode_dinDigestMethodType(stream, &exiDoc->DigestMethod); + exiDoc->DigestMethod_isUsed = 1u; + break; + case 26: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiDoc->DigestValue.bytesLen); + if (errn == 0) { + errn = (exiDoc->DigestValue.bytesLen) <= dinEXIDocument_DigestValue_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiDoc->DigestValue.bytesLen, exiDoc->DigestValue.bytes); + } + exiDoc->DigestValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 27: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter) */ + errn = decode_dinEVChargeParameterType(stream, &exiDoc->EVChargeParameter); + exiDoc->EVChargeParameter_isUsed = 1u; + break; + case 28: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter) */ + errn = decode_dinEVPowerDeliveryParameterType(stream, &exiDoc->EVPowerDeliveryParameter); + exiDoc->EVPowerDeliveryParameter_isUsed = 1u; + break; + case 29: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter) */ + errn = decode_dinEVSEChargeParameterType(stream, &exiDoc->EVSEChargeParameter); + exiDoc->EVSEChargeParameter_isUsed = 1u; + break; + case 30: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus) */ + errn = decode_dinEVSEStatusType(stream, &exiDoc->EVSEStatus); + exiDoc->EVSEStatus_isUsed = 1u; + break; + case 31: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVStatus) */ + errn = decode_dinEVStatusType(stream, &exiDoc->EVStatus); + exiDoc->EVStatus_isUsed = 1u; + break; + case 32: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Entry) */ + errn = decode_dinEntryType(stream, &exiDoc->Entry); + exiDoc->Entry_isUsed = 1u; + break; + case 33: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */ + errn = decode_dinKeyInfoType(stream, &exiDoc->KeyInfo); + exiDoc->KeyInfo_isUsed = 1u; + break; + case 34: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiDoc->KeyName.charactersLen); + if (errn == 0) { + if (exiDoc->KeyName.charactersLen >= 2) { + exiDoc->KeyName.charactersLen = (uint16_t)(exiDoc->KeyName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiDoc->KeyName.charactersLen, exiDoc->KeyName.characters, dinEXIDocument_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiDoc->KeyName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 35: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */ + errn = decode_dinKeyValueType(stream, &exiDoc->KeyValue); + exiDoc->KeyValue_isUsed = 1u; + break; + case 36: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */ + errn = decode_dinManifestType(stream, &exiDoc->Manifest); + exiDoc->Manifest_isUsed = 1u; + break; + case 37: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq) */ + errn = decode_dinMeteringReceiptReqType(stream, &exiDoc->MeteringReceiptReq); + exiDoc->MeteringReceiptReq_isUsed = 1u; + break; + case 38: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes) */ + errn = decode_dinMeteringReceiptResType(stream, &exiDoc->MeteringReceiptRes); + exiDoc->MeteringReceiptRes_isUsed = 1u; + break; + case 39: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiDoc->MgmtData.charactersLen); + if (errn == 0) { + if (exiDoc->MgmtData.charactersLen >= 2) { + exiDoc->MgmtData.charactersLen = (uint16_t)(exiDoc->MgmtData.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiDoc->MgmtData.charactersLen, exiDoc->MgmtData.characters, dinEXIDocument_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiDoc->MgmtData_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 40: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */ + errn = decode_dinObjectType(stream, &exiDoc->Object); + exiDoc->Object_isUsed = 1u; + break; + case 41: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */ + errn = decode_dinPGPDataType(stream, &exiDoc->PGPData); + exiDoc->PGPData_isUsed = 1u; + break; + case 42: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry) */ + errn = decode_dinPMaxScheduleEntryType(stream, &exiDoc->PMaxScheduleEntry); + exiDoc->PMaxScheduleEntry_isUsed = 1u; + break; + case 43: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq) */ + errn = decode_dinPaymentDetailsReqType(stream, &exiDoc->PaymentDetailsReq); + exiDoc->PaymentDetailsReq_isUsed = 1u; + break; + case 44: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes) */ + errn = decode_dinPaymentDetailsResType(stream, &exiDoc->PaymentDetailsRes); + exiDoc->PaymentDetailsRes_isUsed = 1u; + break; + case 45: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq) */ + errn = decode_dinPowerDeliveryReqType(stream, &exiDoc->PowerDeliveryReq); + exiDoc->PowerDeliveryReq_isUsed = 1u; + break; + case 46: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes) */ + errn = decode_dinPowerDeliveryResType(stream, &exiDoc->PowerDeliveryRes); + exiDoc->PowerDeliveryRes_isUsed = 1u; + break; + case 47: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq) */ + errn = decode_dinPreChargeReqType(stream, &exiDoc->PreChargeReq); + exiDoc->PreChargeReq_isUsed = 1u; + break; + case 48: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes) */ + errn = decode_dinPreChargeResType(stream, &exiDoc->PreChargeRes); + exiDoc->PreChargeRes_isUsed = 1u; + break; + case 49: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */ + errn = decode_dinRSAKeyValueType(stream, &exiDoc->RSAKeyValue); + exiDoc->RSAKeyValue_isUsed = 1u; + break; + case 50: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */ + errn = decode_dinReferenceType(stream, &exiDoc->Reference); + exiDoc->Reference_isUsed = 1u; + break; + case 51: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval) */ + errn = decode_dinRelativeTimeIntervalType(stream, &exiDoc->RelativeTimeInterval); + exiDoc->RelativeTimeInterval_isUsed = 1u; + break; + case 52: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */ + errn = decode_dinRetrievalMethodType(stream, &exiDoc->RetrievalMethod); + exiDoc->RetrievalMethod_isUsed = 1u; + break; + case 53: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList) */ + errn = decode_dinSAScheduleListType(stream, &exiDoc->SAScheduleList); + exiDoc->SAScheduleList_isUsed = 1u; + break; + case 54: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules) */ + errn = decode_dinSASchedulesType(stream, &exiDoc->SASchedules); + exiDoc->SASchedules_isUsed = 1u; + break; + case 55: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */ + errn = decode_dinSPKIDataType(stream, &exiDoc->SPKIData); + exiDoc->SPKIData_isUsed = 1u; + break; + case 56: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry) */ + errn = decode_dinSalesTariffEntryType(stream, &exiDoc->SalesTariffEntry); + exiDoc->SalesTariffEntry_isUsed = 1u; + break; + case 57: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge) */ + errn = decode_dinServiceChargeType(stream, &exiDoc->ServiceCharge); + exiDoc->ServiceCharge_isUsed = 1u; + break; + case 58: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq) */ + errn = decode_dinServiceDetailReqType(stream, &exiDoc->ServiceDetailReq); + exiDoc->ServiceDetailReq_isUsed = 1u; + break; + case 59: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes) */ + errn = decode_dinServiceDetailResType(stream, &exiDoc->ServiceDetailRes); + exiDoc->ServiceDetailRes_isUsed = 1u; + break; + case 60: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq) */ + errn = decode_dinServiceDiscoveryReqType(stream, &exiDoc->ServiceDiscoveryReq); + exiDoc->ServiceDiscoveryReq_isUsed = 1u; + break; + case 61: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes) */ + errn = decode_dinServiceDiscoveryResType(stream, &exiDoc->ServiceDiscoveryRes); + exiDoc->ServiceDiscoveryRes_isUsed = 1u; + break; + case 62: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq) */ + errn = decode_dinServicePaymentSelectionReqType(stream, &exiDoc->ServicePaymentSelectionReq); + exiDoc->ServicePaymentSelectionReq_isUsed = 1u; + break; + case 63: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes) */ + errn = decode_dinServicePaymentSelectionResType(stream, &exiDoc->ServicePaymentSelectionRes); + exiDoc->ServicePaymentSelectionRes_isUsed = 1u; + break; + case 64: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq) */ + errn = decode_dinSessionSetupReqType(stream, &exiDoc->SessionSetupReq); + exiDoc->SessionSetupReq_isUsed = 1u; + break; + case 65: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes) */ + errn = decode_dinSessionSetupResType(stream, &exiDoc->SessionSetupRes); + exiDoc->SessionSetupRes_isUsed = 1u; + break; + case 66: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq) */ + errn = decode_dinSessionStopType(stream, &exiDoc->SessionStopReq); + exiDoc->SessionStopReq_isUsed = 1u; + break; + case 67: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes) */ + errn = decode_dinSessionStopResType(stream, &exiDoc->SessionStopRes); + exiDoc->SessionStopRes_isUsed = 1u; + break; + case 68: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */ + errn = decode_dinSignatureType(stream, &exiDoc->Signature); + exiDoc->Signature_isUsed = 1u; + break; + case 69: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */ + errn = decode_dinSignatureMethodType(stream, &exiDoc->SignatureMethod); + exiDoc->SignatureMethod_isUsed = 1u; + break; + case 70: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */ + errn = decode_dinSignaturePropertiesType(stream, &exiDoc->SignatureProperties); + exiDoc->SignatureProperties_isUsed = 1u; + break; + case 71: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */ + errn = decode_dinSignaturePropertyType(stream, &exiDoc->SignatureProperty); + exiDoc->SignatureProperty_isUsed = 1u; + break; + case 72: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */ + errn = decode_dinSignatureValueType(stream, &exiDoc->SignatureValue); + exiDoc->SignatureValue_isUsed = 1u; + break; + case 73: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */ + errn = decode_dinSignedInfoType(stream, &exiDoc->SignedInfo); + exiDoc->SignedInfo_isUsed = 1u; + break; + case 74: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval) */ + errn = decode_dinIntervalType(stream, &exiDoc->TimeInterval); + exiDoc->TimeInterval_isUsed = 1u; + break; + case 75: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */ + errn = decode_dinTransformType(stream, &exiDoc->Transform); + exiDoc->Transform_isUsed = 1u; + break; + case 76: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */ + errn = decode_dinTransformsType(stream, &exiDoc->Transforms); + exiDoc->Transforms_isUsed = 1u; + break; + case 77: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}V2G_Message) */ + errn = decode_dinAnonType_V2G_Message(stream, &exiDoc->V2G_Message); + exiDoc->V2G_Message_isUsed = 1u; + break; + case 78: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq) */ + errn = decode_dinWeldingDetectionReqType(stream, &exiDoc->WeldingDetectionReq); + exiDoc->WeldingDetectionReq_isUsed = 1u; + break; + case 79: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes) */ + errn = decode_dinWeldingDetectionResType(stream, &exiDoc->WeldingDetectionRes); + exiDoc->WeldingDetectionRes_isUsed = 1u; + break; + case 80: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */ + errn = decode_dinX509DataType(stream, &exiDoc->X509Data); + exiDoc->X509Data_isUsed = 1u; + break; + default: + errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; + break; + } + } + + } + + (void)exiDoc; /* avoid unused warning */ + (void)eventCode; /* avoid unused warning */ + (void)uint32; /* avoid unused warning */ + + return errn; +} + +#if DEPLOY_DIN_CODEC_FRAGMENT == SUPPORT_YES +int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) { + errn = readEXIHeader(stream); + + if(errn == 0) { + /* FragmentContent[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVCabinConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentOptions), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReadyToChargeState), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_DOCUMENT] */ + init_dinEXIFragment(exiFrag); + errn = decodeNBitUnsignedInteger(stream, 8, &eventCode); + if(errn == 0) { + switch(eventCode) { + case 0: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter) */ + errn = decode_dinAC_EVChargeParameterType(stream, &exiFrag->AC_EVChargeParameter); + exiFrag->AC_EVChargeParameter_isUsed = 1u; + break; + case 1: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter) */ + errn = decode_dinAC_EVSEChargeParameterType(stream, &exiFrag->AC_EVSEChargeParameter); + exiFrag->AC_EVSEChargeParameter_isUsed = 1u; + break; + case 2: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus) */ + errn = decode_dinAC_EVSEStatusType(stream, &exiFrag->AC_EVSEStatus); + exiFrag->AC_EVSEStatus_isUsed = 1u; + break; + case 3: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus) */ + errn = decode_dinAC_EVSEStatusType(stream, &exiFrag->AC_EVSEStatus); + exiFrag->AC_EVSEStatus_isUsed = 1u; + break; + case 4: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body) */ + errn = decode_dinBodyType(stream, &exiFrag->Body); + exiFrag->Body_isUsed = 1u; + break; + case 5: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement) */ + errn = decode_dinBodyBaseType(stream, &exiFrag->BodyElement); + exiFrag->BodyElement_isUsed = 1u; + break; + case 6: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->BulkChargingComplete); + exiFrag->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 7: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->BulkChargingComplete); + exiFrag->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 8: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + exiFrag->BulkSOC = (int8_t)(uint32 + 0); + exiFrag->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 9: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq) */ + errn = decode_dinCableCheckReqType(stream, &exiFrag->CableCheckReq); + exiFrag->CableCheckReq_isUsed = 1u; + break; + case 10: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes) */ + errn = decode_dinCableCheckResType(stream, &exiFrag->CableCheckRes); + exiFrag->CableCheckRes_isUsed = 1u; + break; + case 11: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */ + errn = decode_dinCanonicalizationMethodType(stream, &exiFrag->CanonicalizationMethod); + exiFrag->CanonicalizationMethod_isUsed = 1u; + break; + case 12: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Certificate.bytesLen); + if (errn == 0) { + errn = (exiFrag->Certificate.bytesLen) <= dinEXIFragment_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Certificate.bytesLen, exiFrag->Certificate.bytes); + } + exiFrag->Certificate_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 13: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq) */ + errn = decode_dinCertificateInstallationReqType(stream, &exiFrag->CertificateInstallationReq); + exiFrag->CertificateInstallationReq_isUsed = 1u; + break; + case 14: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes) */ + errn = decode_dinCertificateInstallationResType(stream, &exiFrag->CertificateInstallationRes); + exiFrag->CertificateInstallationRes_isUsed = 1u; + break; + case 15: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq) */ + errn = decode_dinCertificateUpdateReqType(stream, &exiFrag->CertificateUpdateReq); + exiFrag->CertificateUpdateReq_isUsed = 1u; + break; + case 16: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes) */ + errn = decode_dinCertificateUpdateResType(stream, &exiFrag->CertificateUpdateRes); + exiFrag->CertificateUpdateRes_isUsed = 1u; + break; + case 17: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq) */ + errn = decode_dinChargeParameterDiscoveryReqType(stream, &exiFrag->ChargeParameterDiscoveryReq); + exiFrag->ChargeParameterDiscoveryReq_isUsed = 1u; + break; + case 18: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes) */ + errn = decode_dinChargeParameterDiscoveryResType(stream, &exiFrag->ChargeParameterDiscoveryRes); + exiFrag->ChargeParameterDiscoveryRes_isUsed = 1u; + break; + case 19: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeService) */ + errn = decode_dinServiceChargeType(stream, &exiFrag->ChargeService); + exiFrag->ChargeService_isUsed = 1u; + break; + case 20: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->ChargingComplete); + exiFrag->ChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 21: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->ChargingComplete); + exiFrag->ChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 22: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile) */ + errn = decode_dinChargingProfileType(stream, &exiFrag->ChargingProfile); + exiFrag->ChargingProfile_isUsed = 1u; + break; + case 23: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower) */ + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->ChargingProfileEntryMaxPower); + exiFrag->ChargingProfileEntryMaxPower_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 24: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &exiFrag->ChargingProfileEntryStart); + exiFrag->ChargingProfileEntryStart_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 25: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq) */ + errn = decode_dinChargingStatusReqType(stream, &exiFrag->ChargingStatusReq); + exiFrag->ChargingStatusReq_isUsed = 1u; + break; + case 26: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes) */ + errn = decode_dinChargingStatusResType(stream, &exiFrag->ChargingStatusRes); + exiFrag->ChargingStatusRes_isUsed = 1u; + break; + case 27: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConsumptionCost) */ + errn = decode_dinConsumptionCostType(stream, &exiFrag->ConsumptionCost); + exiFrag->ConsumptionCost_isUsed = 1u; + break; + case 28: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq) */ + errn = decode_dinContractAuthenticationReqType(stream, &exiFrag->ContractAuthenticationReq); + exiFrag->ContractAuthenticationReq_isUsed = 1u; + break; + case 29: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes) */ + errn = decode_dinContractAuthenticationResType(stream, &exiFrag->ContractAuthenticationRes); + exiFrag->ContractAuthenticationRes_isUsed = 1u; + break; + case 30: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->ContractID.charactersLen); + if (errn == 0) { + if (exiFrag->ContractID.charactersLen >= 2) { + exiFrag->ContractID.charactersLen = (uint16_t)(exiFrag->ContractID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->ContractID.charactersLen, exiFrag->ContractID.characters, dinEXIFragment_ContractID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->ContractID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 31: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain) */ + errn = decode_dinCertificateChainType(stream, &exiFrag->ContractSignatureCertChain); + exiFrag->ContractSignatureCertChain_isUsed = 1u; + break; + case 32: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->ContractSignatureEncryptedPrivateKey.bytesLen); + if (errn == 0) { + errn = (exiFrag->ContractSignatureEncryptedPrivateKey.bytesLen) <= dinEXIFragment_ContractSignatureEncryptedPrivateKey_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->ContractSignatureEncryptedPrivateKey.bytesLen, exiFrag->ContractSignatureEncryptedPrivateKey.bytes); + } + exiFrag->ContractSignatureEncryptedPrivateKey_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 33: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Cost) */ + errn = decode_dinCostType(stream, &exiFrag->Cost); + exiFrag->Cost_isUsed = 1u; + break; + case 34: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq) */ + errn = decode_dinCurrentDemandReqType(stream, &exiFrag->CurrentDemandReq); + exiFrag->CurrentDemandReq_isUsed = 1u; + break; + case 35: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes) */ + errn = decode_dinCurrentDemandResType(stream, &exiFrag->CurrentDemandRes); + exiFrag->CurrentDemandRes_isUsed = 1u; + break; + case 36: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter) */ + errn = decode_dinDC_EVChargeParameterType(stream, &exiFrag->DC_EVChargeParameter); + exiFrag->DC_EVChargeParameter_isUsed = 1u; + break; + case 37: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter) */ + errn = decode_dinDC_EVPowerDeliveryParameterType(stream, &exiFrag->DC_EVPowerDeliveryParameter); + exiFrag->DC_EVPowerDeliveryParameter_isUsed = 1u; + break; + case 38: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter) */ + errn = decode_dinDC_EVSEChargeParameterType(stream, &exiFrag->DC_EVSEChargeParameter); + exiFrag->DC_EVSEChargeParameter_isUsed = 1u; + break; + case 39: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus) */ + errn = decode_dinDC_EVSEStatusType(stream, &exiFrag->DC_EVSEStatus); + exiFrag->DC_EVSEStatus_isUsed = 1u; + break; + case 40: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus) */ + errn = decode_dinDC_EVSEStatusType(stream, &exiFrag->DC_EVSEStatus); + exiFrag->DC_EVSEStatus_isUsed = 1u; + break; + case 41: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus) */ + errn = decode_dinDC_EVStatusType(stream, &exiFrag->DC_EVStatus); + exiFrag->DC_EVStatus_isUsed = 1u; + break; + case 42: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus) */ + errn = decode_dinDC_EVStatusType(stream, &exiFrag->DC_EVStatus); + exiFrag->DC_EVStatus_isUsed = 1u; + break; + case 43: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->DHParams.bytesLen); + if (errn == 0) { + errn = (exiFrag->DHParams.bytesLen) <= dinEXIFragment_DHParams_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->DHParams.bytesLen, exiFrag->DHParams.bytes); + } + exiFrag->DHParams_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 44: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */ + errn = decode_dinDSAKeyValueType(stream, &exiFrag->DSAKeyValue); + exiFrag->DSAKeyValue_isUsed = 1u; + break; + case 45: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &exiFrag->DateTimeNow); + exiFrag->DateTimeNow_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 46: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &exiFrag->DepartureTime); + exiFrag->DepartureTime_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 47: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */ + errn = decode_dinDigestMethodType(stream, &exiFrag->DigestMethod); + exiFrag->DigestMethod_isUsed = 1u; + break; + case 48: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->DigestValue.bytesLen); + if (errn == 0) { + errn = (exiFrag->DigestValue.bytesLen) <= dinEXIFragment_DigestValue_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->DigestValue.bytesLen, exiFrag->DigestValue.bytes); + } + exiFrag->DigestValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 49: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EAmount) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EAmount); + exiFrag->EAmount_isUsed = 1u; + break; + case 50: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPriceLevel) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->EPriceLevel = (uint8_t)(uint32 + 0); + exiFrag->EPriceLevel_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 51: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVCCID) */ + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->EVCCID.bytesLen); + if (errn == 0) { + errn = (exiFrag->EVCCID.bytesLen) <= dinEXIFragment_EVCCID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->EVCCID.bytesLen, exiFrag->EVCCID.bytes); + } + exiFrag->EVCCID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 52: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVCabinConditioning) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->EVCabinConditioning); + exiFrag->EVCabinConditioning_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 53: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter) */ + errn = decode_dinEVChargeParameterType(stream, &exiFrag->EVChargeParameter); + exiFrag->EVChargeParameter_isUsed = 1u; + break; + case 54: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyCapacity) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVEnergyCapacity); + exiFrag->EVEnergyCapacity_isUsed = 1u; + break; + case 55: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVEnergyRequest); + exiFrag->EVEnergyRequest_isUsed = 1u; + break; + case 56: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 4, &uint32); + exiFrag->EVErrorCode = (dinDC_EVErrorCodeType) uint32; + exiFrag->EVErrorCode_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 57: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxCurrent) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVMaxCurrent); + exiFrag->EVMaxCurrent_isUsed = 1u; + break; + case 58: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxVoltage) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVMaxVoltage); + exiFrag->EVMaxVoltage_isUsed = 1u; + break; + case 59: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVMaximumCurrentLimit); + exiFrag->EVMaximumCurrentLimit_isUsed = 1u; + break; + case 60: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumCurrentLimit) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVMaximumCurrentLimit); + exiFrag->EVMaximumCurrentLimit_isUsed = 1u; + break; + case 61: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVMaximumPowerLimit); + exiFrag->EVMaximumPowerLimit_isUsed = 1u; + break; + case 62: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumPowerLimit) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVMaximumPowerLimit); + exiFrag->EVMaximumPowerLimit_isUsed = 1u; + break; + case 63: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumVoltageLimit) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVMaximumVoltageLimit); + exiFrag->EVMaximumVoltageLimit_isUsed = 1u; + break; + case 64: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVMaximumVoltageLimit); + exiFrag->EVMaximumVoltageLimit_isUsed = 1u; + break; + case 65: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMinCurrent) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVMinCurrent); + exiFrag->EVMinCurrent_isUsed = 1u; + break; + case 66: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter) */ + errn = decode_dinEVPowerDeliveryParameterType(stream, &exiFrag->EVPowerDeliveryParameter); + exiFrag->EVPowerDeliveryParameter_isUsed = 1u; + break; + case 67: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->EVRESSConditioning); + exiFrag->EVRESSConditioning_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 68: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSSOC) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + exiFrag->EVRESSSOC = (int8_t)(uint32 + 0); + exiFrag->EVRESSSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 69: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVReady) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->EVReady); + exiFrag->EVReady_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 70: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &uint32); + exiFrag->EVRequestedEnergyTransferType = (dinEVRequestedEnergyTransferType) uint32; + exiFrag->EVRequestedEnergyTransferType_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 71: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter) */ + errn = decode_dinEVSEChargeParameterType(stream, &exiFrag->EVSEChargeParameter); + exiFrag->EVSEChargeParameter_isUsed = 1u; + break; + case 72: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSECurrentLimitAchieved) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->EVSECurrentLimitAchieved); + exiFrag->EVSECurrentLimitAchieved_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 73: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSECurrentRegulationTolerance) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSECurrentRegulationTolerance); + exiFrag->EVSECurrentRegulationTolerance_isUsed = 1u; + break; + case 74: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEEnergyToBeDelivered) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEEnergyToBeDelivered); + exiFrag->EVSEEnergyToBeDelivered_isUsed = 1u; + break; + case 75: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID) */ + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->EVSEID.bytesLen); + if (errn == 0) { + errn = (exiFrag->EVSEID.bytesLen) <= dinEXIFragment_EVSEID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->EVSEID.bytesLen, exiFrag->EVSEID.bytes); + } + exiFrag->EVSEID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 76: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->EVSEIsolationStatus = (dinisolationLevelType) uint32; + exiFrag->EVSEIsolationStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 77: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxCurrent) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMaxCurrent); + exiFrag->EVSEMaxCurrent_isUsed = 1u; + break; + case 78: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxCurrent) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMaxCurrent); + exiFrag->EVSEMaxCurrent_isUsed = 1u; + break; + case 79: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxVoltage) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMaxVoltage); + exiFrag->EVSEMaxVoltage_isUsed = 1u; + break; + case 80: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumCurrentLimit); + exiFrag->EVSEMaximumCurrentLimit_isUsed = 1u; + break; + case 81: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumCurrentLimit) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumCurrentLimit); + exiFrag->EVSEMaximumCurrentLimit_isUsed = 1u; + break; + case 82: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumPowerLimit); + exiFrag->EVSEMaximumPowerLimit_isUsed = 1u; + break; + case 83: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumPowerLimit) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumPowerLimit); + exiFrag->EVSEMaximumPowerLimit_isUsed = 1u; + break; + case 84: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumVoltageLimit); + exiFrag->EVSEMaximumVoltageLimit_isUsed = 1u; + break; + case 85: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumVoltageLimit); + exiFrag->EVSEMaximumVoltageLimit_isUsed = 1u; + break; + case 86: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinCurrent) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMinCurrent); + exiFrag->EVSEMinCurrent_isUsed = 1u; + break; + case 87: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumCurrentLimit) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMinimumCurrentLimit); + exiFrag->EVSEMinimumCurrentLimit_isUsed = 1u; + break; + case 88: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumVoltageLimit) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMinimumVoltageLimit); + exiFrag->EVSEMinimumVoltageLimit_isUsed = 1u; + break; + case 89: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->EVSENotification = (dinEVSENotificationType) uint32; + exiFrag->EVSENotification_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 90: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEPeakCurrentRipple); + exiFrag->EVSEPeakCurrentRipple_isUsed = 1u; + break; + case 91: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPowerLimitAchieved) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->EVSEPowerLimitAchieved); + exiFrag->EVSEPowerLimitAchieved_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 92: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentCurrent) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEPresentCurrent); + exiFrag->EVSEPresentCurrent_isUsed = 1u; + break; + case 93: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEPresentVoltage); + exiFrag->EVSEPresentVoltage_isUsed = 1u; + break; + case 94: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + exiFrag->EVSEProcessing = (dinEVSEProcessingType) uint32; + exiFrag->EVSEProcessing_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 95: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus) */ + errn = decode_dinEVSEStatusType(stream, &exiFrag->EVSEStatus); + exiFrag->EVSEStatus_isUsed = 1u; + break; + case 96: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 4, &uint32); + exiFrag->EVSEStatusCode = (dinDC_EVSEStatusCodeType) uint32; + exiFrag->EVSEStatusCode_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 97: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltageLimitAchieved) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->EVSEVoltageLimitAchieved); + exiFrag->EVSEVoltageLimitAchieved_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 98: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVStatus) */ + errn = decode_dinEVStatusType(stream, &exiFrag->EVStatus); + exiFrag->EVStatus_isUsed = 1u; + break; + case 99: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVTargetCurrent); + exiFrag->EVTargetCurrent_isUsed = 1u; + break; + case 100: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->EVTargetVoltage); + exiFrag->EVTargetVoltage_isUsed = 1u; + break; + case 101: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 4, &uint32); + exiFrag->EnergyTransferType = (dinEVSESupportedEnergyTransferType) uint32; + exiFrag->EnergyTransferType_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 102: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Entry) */ + errn = decode_dinEntryType(stream, &exiFrag->Entry); + exiFrag->Entry_isUsed = 1u; + break; + case 103: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Exponent.bytesLen); + if (errn == 0) { + errn = (exiFrag->Exponent.bytesLen) <= dinEXIFragment_Exponent_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Exponent.bytesLen, exiFrag->Exponent.bytes); + } + exiFrag->Exponent_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 104: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->FaultCode = (dinfaultCodeType) uint32; + exiFrag->FaultCode_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 105: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->FaultMsg.charactersLen); + if (errn == 0) { + if (exiFrag->FaultMsg.charactersLen >= 2) { + exiFrag->FaultMsg.charactersLen = (uint16_t)(exiFrag->FaultMsg.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->FaultMsg.charactersLen, exiFrag->FaultMsg.characters, dinEXIFragment_FaultMsg_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->FaultMsg_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 106: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->FreeService); + exiFrag->FreeService_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 107: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + exiFrag->FullSOC = (int8_t)(uint32 + 0); + exiFrag->FullSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 108: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->G.bytesLen); + if (errn == 0) { + errn = (exiFrag->G.bytesLen) <= dinEXIFragment_G_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->G.bytesLen, exiFrag->G.bytes); + } + exiFrag->G_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 109: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->GenChallenge.charactersLen); + if (errn == 0) { + if (exiFrag->GenChallenge.charactersLen >= 2) { + exiFrag->GenChallenge.charactersLen = (uint16_t)(exiFrag->GenChallenge.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->GenChallenge.charactersLen, exiFrag->GenChallenge.characters, dinEXIFragment_GenChallenge_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->GenChallenge_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 110: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) */ + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &exiFrag->HMACOutputLength); + exiFrag->HMACOutputLength_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 111: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header) */ + errn = decode_dinMessageHeaderType(stream, &exiFrag->Header); + exiFrag->Header_isUsed = 1u; + break; + case 112: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->J.bytesLen); + if (errn == 0) { + errn = (exiFrag->J.bytesLen) <= dinEXIFragment_J_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->J.bytesLen, exiFrag->J.bytes); + } + exiFrag->J_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 113: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */ + errn = decode_dinKeyInfoType(stream, &exiFrag->KeyInfo); + exiFrag->KeyInfo_isUsed = 1u; + break; + case 114: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->KeyName.charactersLen); + if (errn == 0) { + if (exiFrag->KeyName.charactersLen >= 2) { + exiFrag->KeyName.charactersLen = (uint16_t)(exiFrag->KeyName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->KeyName.charactersLen, exiFrag->KeyName.characters, dinEXIFragment_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->KeyName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 115: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */ + errn = decode_dinKeyValueType(stream, &exiFrag->KeyValue); + exiFrag->KeyValue_isUsed = 1u; + break; + case 116: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs) */ + errn = decode_dinListOfRootCertificateIDsType(stream, &exiFrag->ListOfRootCertificateIDs); + exiFrag->ListOfRootCertificateIDs_isUsed = 1u; + break; + case 117: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */ + errn = decode_dinManifestType(stream, &exiFrag->Manifest); + exiFrag->Manifest_isUsed = 1u; + break; + case 118: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->MeterID.charactersLen); + if (errn == 0) { + if (exiFrag->MeterID.charactersLen >= 2) { + exiFrag->MeterID.charactersLen = (uint16_t)(exiFrag->MeterID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->MeterID.charactersLen, exiFrag->MeterID.characters, dinEXIFragment_MeterID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->MeterID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 119: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo) */ + errn = decode_dinMeterInfoType(stream, &exiFrag->MeterInfo); + exiFrag->MeterInfo_isUsed = 1u; + break; + case 120: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->MeterReading); + exiFrag->MeterReading_isUsed = 1u; + break; + case 121: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus) */ + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->MeterStatus); + exiFrag->MeterStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 122: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq) */ + errn = decode_dinMeteringReceiptReqType(stream, &exiFrag->MeteringReceiptReq); + exiFrag->MeteringReceiptReq_isUsed = 1u; + break; + case 123: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes) */ + errn = decode_dinMeteringReceiptResType(stream, &exiFrag->MeteringReceiptRes); + exiFrag->MeteringReceiptRes_isUsed = 1u; + break; + case 124: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->MgmtData.charactersLen); + if (errn == 0) { + if (exiFrag->MgmtData.charactersLen >= 2) { + exiFrag->MgmtData.charactersLen = (uint16_t)(exiFrag->MgmtData.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->MgmtData.charactersLen, exiFrag->MgmtData.characters, dinEXIFragment_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->MgmtData_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 125: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Modulus.bytesLen); + if (errn == 0) { + errn = (exiFrag->Modulus.bytesLen) <= dinEXIFragment_Modulus_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Modulus.bytesLen, exiFrag->Modulus.bytes); + } + exiFrag->Modulus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 126: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &(uint32)); + exiFrag->Multiplier = (int8_t)(uint32 -3); + exiFrag->Multiplier_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 127: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}Notification) */ + errn = decode_dinNotificationType(stream, &exiFrag->Notification); + exiFrag->Notification_isUsed = 1u; + break; + case 128: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &exiFrag->NotificationMaxDelay); + exiFrag->NotificationMaxDelay_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 129: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->NumEPriceLevels = (uint8_t)(uint32 + 0); + exiFrag->NumEPriceLevels_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 130: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->OEMProvisioningCert.bytesLen); + if (errn == 0) { + errn = (exiFrag->OEMProvisioningCert.bytesLen) <= dinEXIFragment_OEMProvisioningCert_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->OEMProvisioningCert.bytesLen, exiFrag->OEMProvisioningCert.bytes); + } + exiFrag->OEMProvisioningCert_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 131: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */ + errn = decode_dinObjectType(stream, &exiFrag->Object); + exiFrag->Object_isUsed = 1u; + break; + case 132: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->P.bytesLen); + if (errn == 0) { + errn = (exiFrag->P.bytesLen) <= dinEXIFragment_P_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->P.bytesLen, exiFrag->P.bytes); + } + exiFrag->P_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 133: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */ + errn = decode_dinPGPDataType(stream, &exiFrag->PGPData); + exiFrag->PGPData_isUsed = 1u; + break; + case 134: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->PGPKeyID.bytesLen); + if (errn == 0) { + errn = (exiFrag->PGPKeyID.bytesLen) <= dinEXIFragment_PGPKeyID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->PGPKeyID.bytesLen, exiFrag->PGPKeyID.bytes); + } + exiFrag->PGPKeyID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 135: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->PGPKeyPacket.bytesLen); + if (errn == 0) { + errn = (exiFrag->PGPKeyPacket.bytesLen) <= dinEXIFragment_PGPKeyPacket_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->PGPKeyPacket.bytesLen, exiFrag->PGPKeyPacket.bytes); + } + exiFrag->PGPKeyPacket_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 136: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMax) */ + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->PMax); + exiFrag->PMax_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 137: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxSchedule) */ + errn = decode_dinPMaxScheduleType(stream, &exiFrag->PMaxSchedule); + exiFrag->PMaxSchedule_isUsed = 1u; + break; + case 138: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry) */ + errn = decode_dinPMaxScheduleEntryType(stream, &exiFrag->PMaxScheduleEntry); + exiFrag->PMaxScheduleEntry_isUsed = 1u; + break; + case 139: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID) */ + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->PMaxScheduleID); + exiFrag->PMaxScheduleID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 140: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter) */ + errn = decode_dinParameterType(stream, &exiFrag->Parameter); + exiFrag->Parameter_isUsed = 1u; + break; + case 141: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet) */ + errn = decode_dinParameterSetType(stream, &exiFrag->ParameterSet); + exiFrag->ParameterSet_isUsed = 1u; + break; + case 142: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->ParameterSetID); + exiFrag->ParameterSetID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 143: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq) */ + errn = decode_dinPaymentDetailsReqType(stream, &exiFrag->PaymentDetailsReq); + exiFrag->PaymentDetailsReq_isUsed = 1u; + break; + case 144: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes) */ + errn = decode_dinPaymentDetailsResType(stream, &exiFrag->PaymentDetailsRes); + exiFrag->PaymentDetailsRes_isUsed = 1u; + break; + case 145: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + exiFrag->PaymentOption = (dinpaymentOptionType) uint32; + exiFrag->PaymentOption_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 146: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentOptions) */ + errn = decode_dinPaymentOptionsType(stream, &exiFrag->PaymentOptions); + exiFrag->PaymentOptions_isUsed = 1u; + break; + case 147: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->PgenCounter.bytesLen); + if (errn == 0) { + errn = (exiFrag->PgenCounter.bytesLen) <= dinEXIFragment_PgenCounter_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->PgenCounter.bytesLen, exiFrag->PgenCounter.bytes); + } + exiFrag->PgenCounter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 148: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq) */ + errn = decode_dinPowerDeliveryReqType(stream, &exiFrag->PowerDeliveryReq); + exiFrag->PowerDeliveryReq_isUsed = 1u; + break; + case 149: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes) */ + errn = decode_dinPowerDeliveryResType(stream, &exiFrag->PowerDeliveryRes); + exiFrag->PowerDeliveryRes_isUsed = 1u; + break; + case 150: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->PowerSwitchClosed); + exiFrag->PowerSwitchClosed_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 151: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq) */ + errn = decode_dinPreChargeReqType(stream, &exiFrag->PreChargeReq); + exiFrag->PreChargeReq_isUsed = 1u; + break; + case 152: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes) */ + errn = decode_dinPreChargeResType(stream, &exiFrag->PreChargeRes); + exiFrag->PreChargeRes_isUsed = 1u; + break; + case 153: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry) */ + errn = decode_dinProfileEntryType(stream, &exiFrag->ProfileEntry); + exiFrag->ProfileEntry_isUsed = 1u; + break; + case 154: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Q.bytesLen); + if (errn == 0) { + errn = (exiFrag->Q.bytesLen) <= dinEXIFragment_Q_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Q.bytesLen, exiFrag->Q.bytes); + } + exiFrag->Q_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 155: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->RCD); + exiFrag->RCD_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 156: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */ + errn = decode_dinRSAKeyValueType(stream, &exiFrag->RSAKeyValue); + exiFrag->RSAKeyValue_isUsed = 1u; + break; + case 157: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReadyToChargeState) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->ReadyToChargeState); + exiFrag->ReadyToChargeState_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 158: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->ReceiptRequired); + exiFrag->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 159: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */ + errn = decode_dinReferenceType(stream, &exiFrag->Reference); + exiFrag->Reference_isUsed = 1u; + break; + case 160: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval) */ + errn = decode_dinRelativeTimeIntervalType(stream, &exiFrag->RelativeTimeInterval); + exiFrag->RelativeTimeInterval_isUsed = 1u; + break; + case 161: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->RemainingTimeToBulkSoC); + exiFrag->RemainingTimeToBulkSoC_isUsed = 1u; + break; + case 162: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToFullSoC) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->RemainingTimeToFullSoC); + exiFrag->RemainingTimeToFullSoC_isUsed = 1u; + break; + case 163: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + exiFrag->ResponseCode = (dinresponseCodeType) uint32; + exiFrag->ResponseCode_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 164: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */ + errn = decode_dinRetrievalMethodType(stream, &exiFrag->RetrievalMethod); + exiFrag->RetrievalMethod_isUsed = 1u; + break; + case 165: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RetryCounter) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->RetryCounter); + exiFrag->RetryCounter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 166: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->RootCertificateID.charactersLen); + if (errn == 0) { + if (exiFrag->RootCertificateID.charactersLen >= 2) { + exiFrag->RootCertificateID.charactersLen = (uint16_t)(exiFrag->RootCertificateID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->RootCertificateID.charactersLen, exiFrag->RootCertificateID.characters, dinEXIFragment_RootCertificateID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->RootCertificateID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 167: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList) */ + errn = decode_dinSAScheduleListType(stream, &exiFrag->SAScheduleList); + exiFrag->SAScheduleList_isUsed = 1u; + break; + case 168: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple) */ + errn = decode_dinSAScheduleTupleType(stream, &exiFrag->SAScheduleTuple); + exiFrag->SAScheduleTuple_isUsed = 1u; + break; + case 169: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID) */ + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->SAScheduleTupleID); + exiFrag->SAScheduleTupleID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 170: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID) */ + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->SAScheduleTupleID); + exiFrag->SAScheduleTupleID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 171: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules) */ + errn = decode_dinSASchedulesType(stream, &exiFrag->SASchedules); + exiFrag->SASchedules_isUsed = 1u; + break; + case 172: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */ + errn = decode_dinSPKIDataType(stream, &exiFrag->SPKIData); + exiFrag->SPKIData_isUsed = 1u; + break; + case 173: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->SPKISexp.bytesLen); + if (errn == 0) { + errn = (exiFrag->SPKISexp.bytesLen) <= dinEXIFragment_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->SPKISexp.bytesLen, exiFrag->SPKISexp.bytes); + } + exiFrag->SPKISexp_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 174: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariff) */ + errn = decode_dinSalesTariffType(stream, &exiFrag->SalesTariff); + exiFrag->SalesTariff_isUsed = 1u; + break; + case 175: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffDescription) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->SalesTariffDescription.charactersLen); + if (errn == 0) { + if (exiFrag->SalesTariffDescription.charactersLen >= 2) { + exiFrag->SalesTariffDescription.charactersLen = (uint16_t)(exiFrag->SalesTariffDescription.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->SalesTariffDescription.charactersLen, exiFrag->SalesTariffDescription.characters, dinEXIFragment_SalesTariffDescription_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->SalesTariffDescription_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 176: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry) */ + errn = decode_dinSalesTariffEntryType(stream, &exiFrag->SalesTariffEntry); + exiFrag->SalesTariffEntry_isUsed = 1u; + break; + case 177: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID) */ + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->SalesTariffID); + exiFrag->SalesTariffID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 178: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Seed.bytesLen); + if (errn == 0) { + errn = (exiFrag->Seed.bytesLen) <= dinEXIFragment_Seed_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Seed.bytesLen, exiFrag->Seed.bytes); + } + exiFrag->Seed_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 179: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + exiFrag->SelectedPaymentOption = (dinpaymentOptionType) uint32; + exiFrag->SelectedPaymentOption_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 180: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService) */ + errn = decode_dinSelectedServiceType(stream, &exiFrag->SelectedService); + exiFrag->SelectedService_isUsed = 1u; + break; + case 181: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedServiceList) */ + errn = decode_dinSelectedServiceListType(stream, &exiFrag->SelectedServiceList); + exiFrag->SelectedServiceList_isUsed = 1u; + break; + case 182: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service) */ + errn = decode_dinServiceType(stream, &exiFrag->Service); + exiFrag->Service_isUsed = 1u; + break; + case 183: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->ServiceCategory = (dinserviceCategoryType) uint32; + exiFrag->ServiceCategory_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 184: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->ServiceCategory = (dinserviceCategoryType) uint32; + exiFrag->ServiceCategory_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 185: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge) */ + errn = decode_dinServiceChargeType(stream, &exiFrag->ServiceCharge); + exiFrag->ServiceCharge_isUsed = 1u; + break; + case 186: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq) */ + errn = decode_dinServiceDetailReqType(stream, &exiFrag->ServiceDetailReq); + exiFrag->ServiceDetailReq_isUsed = 1u; + break; + case 187: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes) */ + errn = decode_dinServiceDetailResType(stream, &exiFrag->ServiceDetailRes); + exiFrag->ServiceDetailRes_isUsed = 1u; + break; + case 188: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq) */ + errn = decode_dinServiceDiscoveryReqType(stream, &exiFrag->ServiceDiscoveryReq); + exiFrag->ServiceDiscoveryReq_isUsed = 1u; + break; + case 189: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes) */ + errn = decode_dinServiceDiscoveryResType(stream, &exiFrag->ServiceDiscoveryRes); + exiFrag->ServiceDiscoveryRes_isUsed = 1u; + break; + case 190: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID) */ + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceID); + exiFrag->ServiceID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 191: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID) */ + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceID); + exiFrag->ServiceID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 192: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList) */ + errn = decode_dinServiceTagListType(stream, &exiFrag->ServiceList); + exiFrag->ServiceList_isUsed = 1u; + break; + case 193: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceName.charactersLen); + if (errn == 0) { + if (exiFrag->ServiceName.charactersLen >= 2) { + exiFrag->ServiceName.charactersLen = (uint16_t)(exiFrag->ServiceName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->ServiceName.charactersLen, exiFrag->ServiceName.characters, dinEXIFragment_ServiceName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->ServiceName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 194: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceParameterList) */ + errn = decode_dinServiceParameterListType(stream, &exiFrag->ServiceParameterList); + exiFrag->ServiceParameterList_isUsed = 1u; + break; + case 195: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq) */ + errn = decode_dinServicePaymentSelectionReqType(stream, &exiFrag->ServicePaymentSelectionReq); + exiFrag->ServicePaymentSelectionReq_isUsed = 1u; + break; + case 196: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes) */ + errn = decode_dinServicePaymentSelectionResType(stream, &exiFrag->ServicePaymentSelectionRes); + exiFrag->ServicePaymentSelectionRes_isUsed = 1u; + break; + case 197: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceScope.charactersLen); + if (errn == 0) { + if (exiFrag->ServiceScope.charactersLen >= 2) { + exiFrag->ServiceScope.charactersLen = (uint16_t)(exiFrag->ServiceScope.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->ServiceScope.charactersLen, exiFrag->ServiceScope.characters, dinEXIFragment_ServiceScope_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->ServiceScope_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 198: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceScope.charactersLen); + if (errn == 0) { + if (exiFrag->ServiceScope.charactersLen >= 2) { + exiFrag->ServiceScope.charactersLen = (uint16_t)(exiFrag->ServiceScope.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->ServiceScope.charactersLen, exiFrag->ServiceScope.characters, dinEXIFragment_ServiceScope_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->ServiceScope_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 199: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag) */ + errn = decode_dinServiceTagType(stream, &exiFrag->ServiceTag); + exiFrag->ServiceTag_isUsed = 1u; + break; + case 200: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID) */ + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->SessionID.bytesLen); + if (errn == 0) { + errn = (exiFrag->SessionID.bytesLen) <= dinEXIFragment_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->SessionID.bytesLen, exiFrag->SessionID.bytes); + } + exiFrag->SessionID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 201: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID) */ + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->SessionID.bytesLen); + if (errn == 0) { + errn = (exiFrag->SessionID.bytesLen) <= dinEXIFragment_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->SessionID.bytesLen, exiFrag->SessionID.bytes); + } + exiFrag->SessionID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 202: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq) */ + errn = decode_dinSessionSetupReqType(stream, &exiFrag->SessionSetupReq); + exiFrag->SessionSetupReq_isUsed = 1u; + break; + case 203: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes) */ + errn = decode_dinSessionSetupResType(stream, &exiFrag->SessionSetupRes); + exiFrag->SessionSetupRes_isUsed = 1u; + break; + case 204: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq) */ + errn = decode_dinSessionStopType(stream, &exiFrag->SessionStopReq); + exiFrag->SessionStopReq_isUsed = 1u; + break; + case 205: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes) */ + errn = decode_dinSessionStopResType(stream, &exiFrag->SessionStopRes); + exiFrag->SessionStopRes_isUsed = 1u; + break; + case 206: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->SigMeterReading.bytesLen); + if (errn == 0) { + errn = (exiFrag->SigMeterReading.bytesLen) <= dinEXIFragment_SigMeterReading_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->SigMeterReading.bytesLen, exiFrag->SigMeterReading.bytes); + } + exiFrag->SigMeterReading_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 207: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */ + errn = decode_dinSignatureType(stream, &exiFrag->Signature); + exiFrag->Signature_isUsed = 1u; + break; + case 208: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */ + errn = decode_dinSignatureMethodType(stream, &exiFrag->SignatureMethod); + exiFrag->SignatureMethod_isUsed = 1u; + break; + case 209: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */ + errn = decode_dinSignaturePropertiesType(stream, &exiFrag->SignatureProperties); + exiFrag->SignatureProperties_isUsed = 1u; + break; + case 210: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */ + errn = decode_dinSignaturePropertyType(stream, &exiFrag->SignatureProperty); + exiFrag->SignatureProperty_isUsed = 1u; + break; + case 211: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */ + errn = decode_dinSignatureValueType(stream, &exiFrag->SignatureValue); + exiFrag->SignatureValue_isUsed = 1u; + break; + case 212: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */ + errn = decode_dinSignedInfoType(stream, &exiFrag->SignedInfo); + exiFrag->SignedInfo_isUsed = 1u; + break; + case 213: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SubCertificates) */ + errn = decode_dinSubCertificatesType(stream, &exiFrag->SubCertificates); + exiFrag->SubCertificates_isUsed = 1u; + break; + case 214: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &exiFrag->TMeter); + exiFrag->TMeter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 215: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval) */ + errn = decode_dinIntervalType(stream, &exiFrag->TimeInterval); + exiFrag->TimeInterval_isUsed = 1u; + break; + case 216: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */ + errn = decode_dinTransformType(stream, &exiFrag->Transform); + exiFrag->Transform_isUsed = 1u; + break; + case 217: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */ + errn = decode_dinTransformsType(stream, &exiFrag->Transforms); + exiFrag->Transforms_isUsed = 1u; + break; + case 218: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 4, &uint32); + exiFrag->Unit = (dinunitSymbolType) uint32; + exiFrag->Unit_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 219: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}V2G_Message) */ + errn = decode_dinAnonType_V2G_Message(stream, &exiFrag->V2G_Message); + exiFrag->V2G_Message_isUsed = 1u; + break; + case 220: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->Value); + exiFrag->Value_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 221: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq) */ + errn = decode_dinWeldingDetectionReqType(stream, &exiFrag->WeldingDetectionReq); + exiFrag->WeldingDetectionReq_isUsed = 1u; + break; + case 222: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes) */ + errn = decode_dinWeldingDetectionResType(stream, &exiFrag->WeldingDetectionRes); + exiFrag->WeldingDetectionRes_isUsed = 1u; + break; + case 223: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509CRL.bytesLen); + if (errn == 0) { + errn = (exiFrag->X509CRL.bytesLen) <= dinEXIFragment_X509CRL_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->X509CRL.bytesLen, exiFrag->X509CRL.bytes); + } + exiFrag->X509CRL_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 224: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509Certificate.bytesLen); + if (errn == 0) { + errn = (exiFrag->X509Certificate.bytesLen) <= dinEXIFragment_X509Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->X509Certificate.bytesLen, exiFrag->X509Certificate.bytes); + } + exiFrag->X509Certificate_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 225: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */ + errn = decode_dinX509DataType(stream, &exiFrag->X509Data); + exiFrag->X509Data_isUsed = 1u; + break; + case 226: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509IssuerName.charactersLen); + if (errn == 0) { + if (exiFrag->X509IssuerName.charactersLen >= 2) { + exiFrag->X509IssuerName.charactersLen = (uint16_t)(exiFrag->X509IssuerName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->X509IssuerName.charactersLen, exiFrag->X509IssuerName.characters, dinEXIFragment_X509IssuerName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->X509IssuerName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 227: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial) */ + errn = decode_dinX509IssuerSerialType(stream, &exiFrag->X509IssuerSerial); + exiFrag->X509IssuerSerial_isUsed = 1u; + break; + case 228: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509SKI.bytesLen); + if (errn == 0) { + errn = (exiFrag->X509SKI.bytesLen) <= dinEXIFragment_X509SKI_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->X509SKI.bytesLen, exiFrag->X509SKI.bytes); + } + exiFrag->X509SKI_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 229: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &exiFrag->X509SerialNumber); + exiFrag->X509SerialNumber_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 230: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509SubjectName.charactersLen); + if (errn == 0) { + if (exiFrag->X509SubjectName.charactersLen >= 2) { + exiFrag->X509SubjectName.charactersLen = (uint16_t)(exiFrag->X509SubjectName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->X509SubjectName.charactersLen, exiFrag->X509SubjectName.characters, dinEXIFragment_X509SubjectName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->X509SubjectName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 231: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->XPath.charactersLen); + if (errn == 0) { + if (exiFrag->XPath.charactersLen >= 2) { + exiFrag->XPath.charactersLen = (uint16_t)(exiFrag->XPath.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->XPath.charactersLen, exiFrag->XPath.characters, dinEXIFragment_XPath_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->XPath_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 232: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Y.bytesLen); + if (errn == 0) { + errn = (exiFrag->Y.bytesLen) <= dinEXIFragment_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Y.bytesLen, exiFrag->Y.bytes); + } + exiFrag->Y_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 233: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amount) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &exiFrag->amount); + exiFrag->amount_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 234: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amountMultiplier) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &(uint32)); + exiFrag->amountMultiplier = (int8_t)(uint32 -3); + exiFrag->amountMultiplier_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 235: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}boolValue) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->boolValue); + exiFrag->boolValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 236: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}byteValue) */ + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->byteValue = (int8_t)(uint32 -128); + exiFrag->byteValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 237: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}costKind) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->costKind = (dincostKindType) uint32; + exiFrag->costKind_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 238: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}duration) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &exiFrag->duration); + exiFrag->duration_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 239: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}intValue) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger32(stream, &exiFrag->intValue); + exiFrag->intValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 240: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}physicalValue) */ + errn = decode_dinPhysicalValueType(stream, &exiFrag->physicalValue); + exiFrag->physicalValue_isUsed = 1u; + break; + case 241: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}shortValue) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->shortValue); + exiFrag->shortValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 242: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}start) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &exiFrag->start); + exiFrag->start_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 243: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}startValue) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &exiFrag->startValue); + exiFrag->startValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 244: + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}stringValue) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->stringValue.charactersLen); + if (errn == 0) { + if (exiFrag->stringValue.charactersLen >= 2) { + exiFrag->stringValue.charactersLen = (uint16_t)(exiFrag->stringValue.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->stringValue.charactersLen, exiFrag->stringValue.characters, dinEXIFragment_stringValue_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->stringValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + default: + errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; + break; + } + } + if(errn == 0) { + /* EndDocument */ + errn = decodeNBitUnsignedInteger(stream, 8, &eventCode); + if (eventCode != 246) { + errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; + } + } + + } + + (void)exiFrag; /* avoid unused warning */ + + return errn; +} +#endif /* DEPLOY_DIN_CODEC_FRAGMENT */ + + +#endif /* DEPLOY_DIN_CODEC */ + +#endif + diff --git a/csharp/vc2022/src/din/dinEXIDatatypesDecoder.h b/csharp/vc2022/src/din/dinEXIDatatypesDecoder.h new file mode 100644 index 0000000..d1cb133 --- /dev/null +++ b/csharp/vc2022/src/din/dinEXIDatatypesDecoder.h @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIDatatypesDecoder.h + * \brief Decoder for datatype definitions + * + */ + +#ifndef EXI_din_DATATYPES_DECODER_H +#define EXI_din_DATATYPES_DECODER_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "dinEXIDatatypes.h" + +#if DEPLOY_DIN_CODEC == SUPPORT_YES + +#include + +#include "EXITypes.h" + +int decode_dinExiDocument(bitstream_t* stream, struct dinEXIDocument* exiDoc); + +#if DEPLOY_DIN_CODEC_FRAGMENT == SUPPORT_YES +int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag); +#endif /* DEPLOY_DIN_CODEC_FRAGMENT */ + +#endif /* DEPLOY_DIN_CODEC */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/din/dinEXIDatatypesEncoder.c b/csharp/vc2022/src/din/dinEXIDatatypesEncoder.c new file mode 100644 index 0000000..08a2cca --- /dev/null +++ b/csharp/vc2022/src/din/dinEXIDatatypesEncoder.c @@ -0,0 +1,12826 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + + +#include "dinEXIDatatypesEncoder.h" + +#include "EncoderChannel.h" +#include "EXIHeaderEncoder.h" + +#include "dinEXIDatatypes.h" +#include "ErrorCodes.h" + +#ifndef EXI_din_DATATYPES_ENCODER_C +#define EXI_din_DATATYPES_ENCODER_C + +#if DEPLOY_DIN_CODEC == SUPPORT_YES + +static int errn; + +/* Forward Declarations */ +static int encode_dinMeteringReceiptReqType(bitstream_t* stream, struct dinMeteringReceiptReqType* dinMeteringReceiptReqType); +static int encode_dinBodyType(bitstream_t* stream, struct dinBodyType* dinBodyType); +static int encode_dinSessionSetupReqType(bitstream_t* stream, struct dinSessionSetupReqType* dinSessionSetupReqType); +static int encode_dinPowerDeliveryResType(bitstream_t* stream, struct dinPowerDeliveryResType* dinPowerDeliveryResType); +static int encode_dinServiceDetailResType(bitstream_t* stream, struct dinServiceDetailResType* dinServiceDetailResType); +static int encode_dinWeldingDetectionResType(bitstream_t* stream, struct dinWeldingDetectionResType* dinWeldingDetectionResType); +static int encode_dinContractAuthenticationResType(bitstream_t* stream, struct dinContractAuthenticationResType* dinContractAuthenticationResType); +static int encode_dinCanonicalizationMethodType(bitstream_t* stream, struct dinCanonicalizationMethodType* dinCanonicalizationMethodType); +static int encode_dinSPKIDataType(bitstream_t* stream, struct dinSPKIDataType* dinSPKIDataType); +static int encode_dinListOfRootCertificateIDsType(bitstream_t* stream, struct dinListOfRootCertificateIDsType* dinListOfRootCertificateIDsType); +static int encode_dinSelectedServiceListType(bitstream_t* stream, struct dinSelectedServiceListType* dinSelectedServiceListType); +static int encode_dinCurrentDemandResType(bitstream_t* stream, struct dinCurrentDemandResType* dinCurrentDemandResType); +static int encode_dinTransformType(bitstream_t* stream, struct dinTransformType* dinTransformType); +static int encode_dinAC_EVChargeParameterType(bitstream_t* stream, struct dinAC_EVChargeParameterType* dinAC_EVChargeParameterType); +static int encode_dinX509DataType(bitstream_t* stream, struct dinX509DataType* dinX509DataType); +static int encode_dinChargingStatusResType(bitstream_t* stream, struct dinChargingStatusResType* dinChargingStatusResType); +static int encode_dinWeldingDetectionReqType(bitstream_t* stream, struct dinWeldingDetectionReqType* dinWeldingDetectionReqType); +static int encode_dinSignaturePropertiesType(bitstream_t* stream, struct dinSignaturePropertiesType* dinSignaturePropertiesType); +static int encode_dinContractAuthenticationReqType(bitstream_t* stream, struct dinContractAuthenticationReqType* dinContractAuthenticationReqType); +static int encode_dinDC_EVPowerDeliveryParameterType(bitstream_t* stream, struct dinDC_EVPowerDeliveryParameterType* dinDC_EVPowerDeliveryParameterType); +static int encode_dinEVSEChargeParameterType(bitstream_t* stream, struct dinEVSEChargeParameterType* dinEVSEChargeParameterType); +static int encode_dinCableCheckReqType(bitstream_t* stream, struct dinCableCheckReqType* dinCableCheckReqType); +static int encode_dinDC_EVChargeParameterType(bitstream_t* stream, struct dinDC_EVChargeParameterType* dinDC_EVChargeParameterType); +static int encode_dinSAScheduleListType(bitstream_t* stream, struct dinSAScheduleListType* dinSAScheduleListType); +static int encode_dinPMaxScheduleType(bitstream_t* stream, struct dinPMaxScheduleType* dinPMaxScheduleType); +static int encode_dinServicePaymentSelectionReqType(bitstream_t* stream, struct dinServicePaymentSelectionReqType* dinServicePaymentSelectionReqType); +static int encode_dinRelativeTimeIntervalType(bitstream_t* stream, struct dinRelativeTimeIntervalType* dinRelativeTimeIntervalType); +static int encode_dinEVStatusType(bitstream_t* stream, struct dinEVStatusType* dinEVStatusType); +static int encode_dinPreChargeResType(bitstream_t* stream, struct dinPreChargeResType* dinPreChargeResType); +static int encode_dinDC_EVSEChargeParameterType(bitstream_t* stream, struct dinDC_EVSEChargeParameterType* dinDC_EVSEChargeParameterType); +static int encode_dinPaymentDetailsResType(bitstream_t* stream, struct dinPaymentDetailsResType* dinPaymentDetailsResType); +static int encode_dinDSAKeyValueType(bitstream_t* stream, struct dinDSAKeyValueType* dinDSAKeyValueType); +static int encode_dinSASchedulesType(bitstream_t* stream, struct dinSASchedulesType* dinSASchedulesType); +static int encode_dinCertificateUpdateResType(bitstream_t* stream, struct dinCertificateUpdateResType* dinCertificateUpdateResType); +static int encode_dinEVChargeParameterType(bitstream_t* stream, struct dinEVChargeParameterType* dinEVChargeParameterType); +static int encode_dinMessageHeaderType(bitstream_t* stream, struct dinMessageHeaderType* dinMessageHeaderType); +static int encode_dinBodyBaseType(bitstream_t* stream, struct dinBodyBaseType* dinBodyBaseType); +static int encode_dinKeyValueType(bitstream_t* stream, struct dinKeyValueType* dinKeyValueType); +static int encode_dinIntervalType(bitstream_t* stream, struct dinIntervalType* dinIntervalType); +static int encode_dinChargeParameterDiscoveryResType(bitstream_t* stream, struct dinChargeParameterDiscoveryResType* dinChargeParameterDiscoveryResType); +static int encode_dinPowerDeliveryReqType(bitstream_t* stream, struct dinPowerDeliveryReqType* dinPowerDeliveryReqType); +static int encode_dinCertificateChainType(bitstream_t* stream, struct dinCertificateChainType* dinCertificateChainType); +static int encode_dinTransformsType(bitstream_t* stream, struct dinTransformsType* dinTransformsType); +static int encode_dinEntryType(bitstream_t* stream, struct dinEntryType* dinEntryType); +static int encode_dinSessionStopType(bitstream_t* stream, struct dinSessionStopType* dinSessionStopType); +static int encode_dinServiceDetailReqType(bitstream_t* stream, struct dinServiceDetailReqType* dinServiceDetailReqType); +static int encode_dinDigestMethodType(bitstream_t* stream, struct dinDigestMethodType* dinDigestMethodType); +static int encode_dinParameterType(bitstream_t* stream, struct dinParameterType* dinParameterType); +static int encode_dinChargingStatusReqType(bitstream_t* stream, struct dinChargingStatusReqType* dinChargingStatusReqType); +static int encode_dinSignatureMethodType(bitstream_t* stream, struct dinSignatureMethodType* dinSignatureMethodType); +static int encode_dinCertificateInstallationReqType(bitstream_t* stream, struct dinCertificateInstallationReqType* dinCertificateInstallationReqType); +static int encode_dinSalesTariffEntryType(bitstream_t* stream, struct dinSalesTariffEntryType* dinSalesTariffEntryType); +static int encode_dinServiceDiscoveryResType(bitstream_t* stream, struct dinServiceDiscoveryResType* dinServiceDiscoveryResType); +static int encode_dinParameterSetType(bitstream_t* stream, struct dinParameterSetType* dinParameterSetType); +static int encode_dinCurrentDemandReqType(bitstream_t* stream, struct dinCurrentDemandReqType* dinCurrentDemandReqType); +static int encode_dinPreChargeReqType(bitstream_t* stream, struct dinPreChargeReqType* dinPreChargeReqType); +static int encode_dinSignatureType(bitstream_t* stream, struct dinSignatureType* dinSignatureType); +static int encode_dinReferenceType(bitstream_t* stream, struct dinReferenceType* dinReferenceType); +static int encode_dinProfileEntryType(bitstream_t* stream, struct dinProfileEntryType* dinProfileEntryType); +static int encode_dinAnonType_V2G_Message(bitstream_t* stream, struct dinAnonType_V2G_Message* dinAnonType_V2G_Message); +static int encode_dinChargeParameterDiscoveryReqType(bitstream_t* stream, struct dinChargeParameterDiscoveryReqType* dinChargeParameterDiscoveryReqType); +static int encode_dinConsumptionCostType(bitstream_t* stream, struct dinConsumptionCostType* dinConsumptionCostType); +static int encode_dinRSAKeyValueType(bitstream_t* stream, struct dinRSAKeyValueType* dinRSAKeyValueType); +static int encode_dinServiceType(bitstream_t* stream, struct dinServiceType* dinServiceType); +static int encode_dinServiceTagListType(bitstream_t* stream, struct dinServiceTagListType* dinServiceTagListType); +static int encode_dinEVSEStatusType(bitstream_t* stream, struct dinEVSEStatusType* dinEVSEStatusType); +static int encode_dinSessionSetupResType(bitstream_t* stream, struct dinSessionSetupResType* dinSessionSetupResType); +static int encode_dinEVPowerDeliveryParameterType(bitstream_t* stream, struct dinEVPowerDeliveryParameterType* dinEVPowerDeliveryParameterType); +static int encode_dinX509IssuerSerialType(bitstream_t* stream, struct dinX509IssuerSerialType* dinX509IssuerSerialType); +static int encode_dinSelectedServiceType(bitstream_t* stream, struct dinSelectedServiceType* dinSelectedServiceType); +static int encode_dinMeteringReceiptResType(bitstream_t* stream, struct dinMeteringReceiptResType* dinMeteringReceiptResType); +static int encode_dinDC_EVStatusType(bitstream_t* stream, struct dinDC_EVStatusType* dinDC_EVStatusType); +static int encode_dinPhysicalValueType(bitstream_t* stream, struct dinPhysicalValueType* dinPhysicalValueType); +static int encode_dinManifestType(bitstream_t* stream, struct dinManifestType* dinManifestType); +static int encode_dinPMaxScheduleEntryType(bitstream_t* stream, struct dinPMaxScheduleEntryType* dinPMaxScheduleEntryType); +static int encode_dinServiceParameterListType(bitstream_t* stream, struct dinServiceParameterListType* dinServiceParameterListType); +static int encode_dinSignatureValueType(bitstream_t* stream, struct dinSignatureValueType* dinSignatureValueType); +static int encode_dinPaymentOptionsType(bitstream_t* stream, struct dinPaymentOptionsType* dinPaymentOptionsType); +static int encode_dinServiceTagType(bitstream_t* stream, struct dinServiceTagType* dinServiceTagType); +static int encode_dinAC_EVSEStatusType(bitstream_t* stream, struct dinAC_EVSEStatusType* dinAC_EVSEStatusType); +static int encode_dinCertificateUpdateReqType(bitstream_t* stream, struct dinCertificateUpdateReqType* dinCertificateUpdateReqType); +static int encode_dinServicePaymentSelectionResType(bitstream_t* stream, struct dinServicePaymentSelectionResType* dinServicePaymentSelectionResType); +static int encode_dinSAScheduleTupleType(bitstream_t* stream, struct dinSAScheduleTupleType* dinSAScheduleTupleType); +static int encode_dinChargingProfileType(bitstream_t* stream, struct dinChargingProfileType* dinChargingProfileType); +static int encode_dinServiceDiscoveryReqType(bitstream_t* stream, struct dinServiceDiscoveryReqType* dinServiceDiscoveryReqType); +static int encode_dinAC_EVSEChargeParameterType(bitstream_t* stream, struct dinAC_EVSEChargeParameterType* dinAC_EVSEChargeParameterType); +static int encode_dinKeyInfoType(bitstream_t* stream, struct dinKeyInfoType* dinKeyInfoType); +static int encode_dinPaymentDetailsReqType(bitstream_t* stream, struct dinPaymentDetailsReqType* dinPaymentDetailsReqType); +static int encode_dinCableCheckResType(bitstream_t* stream, struct dinCableCheckResType* dinCableCheckResType); +static int encode_dinObjectType(bitstream_t* stream, struct dinObjectType* dinObjectType); +static int encode_dinSessionStopResType(bitstream_t* stream, struct dinSessionStopResType* dinSessionStopResType); +static int encode_dinSignedInfoType(bitstream_t* stream, struct dinSignedInfoType* dinSignedInfoType); +static int encode_dinSalesTariffType(bitstream_t* stream, struct dinSalesTariffType* dinSalesTariffType); +static int encode_dinCostType(bitstream_t* stream, struct dinCostType* dinCostType); +static int encode_dinServiceChargeType(bitstream_t* stream, struct dinServiceChargeType* dinServiceChargeType); +static int encode_dinDC_EVSEStatusType(bitstream_t* stream, struct dinDC_EVSEStatusType* dinDC_EVSEStatusType); +static int encode_dinRetrievalMethodType(bitstream_t* stream, struct dinRetrievalMethodType* dinRetrievalMethodType); +static int encode_dinNotificationType(bitstream_t* stream, struct dinNotificationType* dinNotificationType); +static int encode_dinPGPDataType(bitstream_t* stream, struct dinPGPDataType* dinPGPDataType); +static int encode_dinCertificateInstallationResType(bitstream_t* stream, struct dinCertificateInstallationResType* dinCertificateInstallationResType); +static int encode_dinSignaturePropertyType(bitstream_t* stream, struct dinSignaturePropertyType* dinSignaturePropertyType); +static int encode_dinMeterInfoType(bitstream_t* stream, struct dinMeterInfoType* dinMeterInfoType); +static int encode_dinSubCertificatesType(bitstream_t* stream, struct dinSubCertificatesType* dinSubCertificatesType); + + + /* Complex type name='urn:iso:15118:2:2010:MsgBody,MeteringReceiptReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":SessionID,"urn:iso:15118:2:2010:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2010:MsgBody":MeterInfo)', derivedBy='EXTENSION'. */ +static int encode_dinMeteringReceiptReqType(bitstream_t* stream, struct dinMeteringReceiptReqType* dinMeteringReceiptReqType) { + int grammarID = 0; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 0: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID)] */ + if ( dinMeteringReceiptReqType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinMeteringReceiptReqType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinMeteringReceiptReqType->Id.characters, dinMeteringReceiptReqType->Id.charactersLen); + } + } + grammarID = 1; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinMeteringReceiptReqType->SessionID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinMeteringReceiptReqType->SessionID.bytes, dinMeteringReceiptReqType->SessionID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinMeteringReceiptReqType->SessionID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinMeteringReceiptReqType->SessionID.bytes, dinMeteringReceiptReqType->SessionID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo)] */ + if ( dinMeteringReceiptReqType->SAScheduleTupleID_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, dinMeteringReceiptReqType->SAScheduleTupleID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinMeterInfoType(stream, &dinMeteringReceiptReqType->MeterInfo ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinMeterInfoType(stream, &dinMeteringReceiptReqType->MeterInfo ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDef,BodyType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDef":BodyElement{0-1})', derivedBy='RESTRICTION'. */ +static int encode_dinBodyType(bitstream_t* stream, struct dinBodyType* dinBodyType) { + int grammarID = 6; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 6: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), END_ELEMENT] */ + if ( dinBodyType->BodyElement_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 0); + if(errn == 0) { + errn = encode_dinBodyBaseType(stream, &dinBodyType->BodyElement ); + } + grammarID = 4; + } else if ( dinBodyType->CableCheckReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 1); + if(errn == 0) { + errn = encode_dinCableCheckReqType(stream, &dinBodyType->CableCheckReq ); + } + grammarID = 4; + } else if ( dinBodyType->CableCheckRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 2); + if(errn == 0) { + errn = encode_dinCableCheckResType(stream, &dinBodyType->CableCheckRes ); + } + grammarID = 4; + } else if ( dinBodyType->CertificateInstallationReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 3); + if(errn == 0) { + errn = encode_dinCertificateInstallationReqType(stream, &dinBodyType->CertificateInstallationReq ); + } + grammarID = 4; + } else if ( dinBodyType->CertificateInstallationRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 4); + if(errn == 0) { + errn = encode_dinCertificateInstallationResType(stream, &dinBodyType->CertificateInstallationRes ); + } + grammarID = 4; + } else if ( dinBodyType->CertificateUpdateReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 5); + if(errn == 0) { + errn = encode_dinCertificateUpdateReqType(stream, &dinBodyType->CertificateUpdateReq ); + } + grammarID = 4; + } else if ( dinBodyType->CertificateUpdateRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 6); + if(errn == 0) { + errn = encode_dinCertificateUpdateResType(stream, &dinBodyType->CertificateUpdateRes ); + } + grammarID = 4; + } else if ( dinBodyType->ChargeParameterDiscoveryReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 7); + if(errn == 0) { + errn = encode_dinChargeParameterDiscoveryReqType(stream, &dinBodyType->ChargeParameterDiscoveryReq ); + } + grammarID = 4; + } else if ( dinBodyType->ChargeParameterDiscoveryRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 8); + if(errn == 0) { + errn = encode_dinChargeParameterDiscoveryResType(stream, &dinBodyType->ChargeParameterDiscoveryRes ); + } + grammarID = 4; + } else if ( dinBodyType->ChargingStatusReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 9); + if(errn == 0) { + errn = encode_dinChargingStatusReqType(stream, &dinBodyType->ChargingStatusReq ); + } + grammarID = 4; + } else if ( dinBodyType->ChargingStatusRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 10); + if(errn == 0) { + errn = encode_dinChargingStatusResType(stream, &dinBodyType->ChargingStatusRes ); + } + grammarID = 4; + } else if ( dinBodyType->ContractAuthenticationReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 11); + if(errn == 0) { + errn = encode_dinContractAuthenticationReqType(stream, &dinBodyType->ContractAuthenticationReq ); + } + grammarID = 4; + } else if ( dinBodyType->ContractAuthenticationRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 12); + if(errn == 0) { + errn = encode_dinContractAuthenticationResType(stream, &dinBodyType->ContractAuthenticationRes ); + } + grammarID = 4; + } else if ( dinBodyType->CurrentDemandReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 13); + if(errn == 0) { + errn = encode_dinCurrentDemandReqType(stream, &dinBodyType->CurrentDemandReq ); + } + grammarID = 4; + } else if ( dinBodyType->CurrentDemandRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 14); + if(errn == 0) { + errn = encode_dinCurrentDemandResType(stream, &dinBodyType->CurrentDemandRes ); + } + grammarID = 4; + } else if ( dinBodyType->MeteringReceiptReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 15); + if(errn == 0) { + errn = encode_dinMeteringReceiptReqType(stream, &dinBodyType->MeteringReceiptReq ); + } + grammarID = 4; + } else if ( dinBodyType->MeteringReceiptRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 16); + if(errn == 0) { + errn = encode_dinMeteringReceiptResType(stream, &dinBodyType->MeteringReceiptRes ); + } + grammarID = 4; + } else if ( dinBodyType->PaymentDetailsReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 17); + if(errn == 0) { + errn = encode_dinPaymentDetailsReqType(stream, &dinBodyType->PaymentDetailsReq ); + } + grammarID = 4; + } else if ( dinBodyType->PaymentDetailsRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 18); + if(errn == 0) { + errn = encode_dinPaymentDetailsResType(stream, &dinBodyType->PaymentDetailsRes ); + } + grammarID = 4; + } else if ( dinBodyType->PowerDeliveryReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 19); + if(errn == 0) { + errn = encode_dinPowerDeliveryReqType(stream, &dinBodyType->PowerDeliveryReq ); + } + grammarID = 4; + } else if ( dinBodyType->PowerDeliveryRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 20); + if(errn == 0) { + errn = encode_dinPowerDeliveryResType(stream, &dinBodyType->PowerDeliveryRes ); + } + grammarID = 4; + } else if ( dinBodyType->PreChargeReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 21); + if(errn == 0) { + errn = encode_dinPreChargeReqType(stream, &dinBodyType->PreChargeReq ); + } + grammarID = 4; + } else if ( dinBodyType->PreChargeRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 22); + if(errn == 0) { + errn = encode_dinPreChargeResType(stream, &dinBodyType->PreChargeRes ); + } + grammarID = 4; + } else if ( dinBodyType->ServiceDetailReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 23); + if(errn == 0) { + errn = encode_dinServiceDetailReqType(stream, &dinBodyType->ServiceDetailReq ); + } + grammarID = 4; + } else if ( dinBodyType->ServiceDetailRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 24); + if(errn == 0) { + errn = encode_dinServiceDetailResType(stream, &dinBodyType->ServiceDetailRes ); + } + grammarID = 4; + } else if ( dinBodyType->ServiceDiscoveryReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 25); + if(errn == 0) { + errn = encode_dinServiceDiscoveryReqType(stream, &dinBodyType->ServiceDiscoveryReq ); + } + grammarID = 4; + } else if ( dinBodyType->ServiceDiscoveryRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 26); + if(errn == 0) { + errn = encode_dinServiceDiscoveryResType(stream, &dinBodyType->ServiceDiscoveryRes ); + } + grammarID = 4; + } else if ( dinBodyType->ServicePaymentSelectionReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 27); + if(errn == 0) { + errn = encode_dinServicePaymentSelectionReqType(stream, &dinBodyType->ServicePaymentSelectionReq ); + } + grammarID = 4; + } else if ( dinBodyType->ServicePaymentSelectionRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 28); + if(errn == 0) { + errn = encode_dinServicePaymentSelectionResType(stream, &dinBodyType->ServicePaymentSelectionRes ); + } + grammarID = 4; + } else if ( dinBodyType->SessionSetupReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 29); + if(errn == 0) { + errn = encode_dinSessionSetupReqType(stream, &dinBodyType->SessionSetupReq ); + } + grammarID = 4; + } else if ( dinBodyType->SessionSetupRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 30); + if(errn == 0) { + errn = encode_dinSessionSetupResType(stream, &dinBodyType->SessionSetupRes ); + } + grammarID = 4; + } else if ( dinBodyType->SessionStopReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 31); + if(errn == 0) { + errn = encode_dinSessionStopType(stream, &dinBodyType->SessionStopReq ); + } + grammarID = 4; + } else if ( dinBodyType->SessionStopRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 32); + if(errn == 0) { + errn = encode_dinSessionStopResType(stream, &dinBodyType->SessionStopRes ); + } + grammarID = 4; + } else if ( dinBodyType->WeldingDetectionReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 33); + if(errn == 0) { + errn = encode_dinWeldingDetectionReqType(stream, &dinBodyType->WeldingDetectionReq ); + } + grammarID = 4; + } else if ( dinBodyType->WeldingDetectionRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 34); + if(errn == 0) { + errn = encode_dinWeldingDetectionResType(stream, &dinBodyType->WeldingDetectionRes ); + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 6, 35); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,SessionSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":EVCCID)', derivedBy='EXTENSION'. */ +static int encode_dinSessionSetupReqType(bitstream_t* stream, struct dinSessionSetupReqType* dinSessionSetupReqType) { + int grammarID = 7; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 7: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVCCID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSessionSetupReqType->EVCCID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinSessionSetupReqType->EVCCID.bytes, dinSessionSetupReqType->EVCCID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,PowerDeliveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */ +static int encode_dinPowerDeliveryResType(bitstream_t* stream, struct dinPowerDeliveryResType* dinPowerDeliveryResType) { + int grammarID = 8; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 8: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, dinPowerDeliveryResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 9; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 9: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus)] */ + if ( dinPowerDeliveryResType->AC_EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinAC_EVSEStatusType(stream, &dinPowerDeliveryResType->AC_EVSEStatus ); + } + grammarID = 4; + } else if ( dinPowerDeliveryResType->DC_EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinDC_EVSEStatusType(stream, &dinPowerDeliveryResType->DC_EVSEStatus ); + } + grammarID = 4; + } else if ( dinPowerDeliveryResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_dinEVSEStatusType(stream, &dinPowerDeliveryResType->EVSEStatus ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ServiceDetailResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":ServiceID,"urn:iso:15118:2:2010:MsgBody":ServiceParameterList{0-1})', derivedBy='EXTENSION'. */ +static int encode_dinServiceDetailResType(bitstream_t* stream, struct dinServiceDetailResType* dinServiceDetailResType) { + int grammarID = 10; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 10: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, dinServiceDetailResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 11; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 11: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, dinServiceDetailResType->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 12; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 12: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceParameterList), END_ELEMENT] */ + if ( dinServiceDetailResType->ServiceParameterList_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinServiceParameterListType(stream, &dinServiceDetailResType->ServiceParameterList ); + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,WeldingDetectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */ +static int encode_dinWeldingDetectionResType(bitstream_t* stream, struct dinWeldingDetectionResType* dinWeldingDetectionResType) { + int grammarID = 13; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 13: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, dinWeldingDetectionResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 14; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 14: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinDC_EVSEStatusType(stream, &dinWeldingDetectionResType->DC_EVSEStatus ); + } + grammarID = 15; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 15: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinWeldingDetectionResType->EVSEPresentVoltage ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ContractAuthenticationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */ +static int encode_dinContractAuthenticationResType(bitstream_t* stream, struct dinContractAuthenticationResType* dinContractAuthenticationResType) { + int grammarID = 16; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 16: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, dinContractAuthenticationResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 17; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 17: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, dinContractAuthenticationResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinCanonicalizationMethodType(bitstream_t* stream, struct dinCanonicalizationMethodType* dinCanonicalizationMethodType) { + int grammarID = 18; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 18: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCanonicalizationMethodType->Algorithm.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinCanonicalizationMethodType->Algorithm.characters, dinCanonicalizationMethodType->Algorithm.charactersLen); + } + } + grammarID = 19; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 19: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 20; + } else if ( dinCanonicalizationMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else if ( dinCanonicalizationMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCanonicalizationMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinCanonicalizationMethodType->ANY.characters, dinCanonicalizationMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 20; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 20: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 20; + } else if ( dinCanonicalizationMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else if ( dinCanonicalizationMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCanonicalizationMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinCanonicalizationMethodType->ANY.characters, dinCanonicalizationMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 20; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_dinSPKIDataType(bitstream_t* stream, struct dinSPKIDataType* dinSPKIDataType) { + int grammarID = 21; + int done = 0; + int wcDone = 0; + + unsigned int dinSPKIDataType_SPKISexp_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 21: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */ + if (dinSPKIDataType_SPKISexp_currArrayIndex < dinSPKIDataType->SPKISexp.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSPKIDataType->SPKISexp.array[dinSPKIDataType_SPKISexp_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinSPKIDataType->SPKISexp.array[dinSPKIDataType_SPKISexp_currArrayIndex].bytes, dinSPKIDataType->SPKISexp.array[dinSPKIDataType_SPKISexp_currArrayIndex].bytesLen); + dinSPKIDataType_SPKISexp_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 22; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 22: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */ + if (dinSPKIDataType_SPKISexp_currArrayIndex < dinSPKIDataType->SPKISexp.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSPKIDataType->SPKISexp.array[dinSPKIDataType_SPKISexp_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinSPKIDataType->SPKISexp.array[dinSPKIDataType_SPKISexp_currArrayIndex].bytes, dinSPKIDataType->SPKISexp.array[dinSPKIDataType_SPKISexp_currArrayIndex].bytesLen); + dinSPKIDataType_SPKISexp_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 22; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 23; + } else if ( dinSPKIDataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 23: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */ + if (dinSPKIDataType_SPKISexp_currArrayIndex < dinSPKIDataType->SPKISexp.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSPKIDataType->SPKISexp.array[dinSPKIDataType_SPKISexp_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinSPKIDataType->SPKISexp.array[dinSPKIDataType_SPKISexp_currArrayIndex].bytes, dinSPKIDataType->SPKISexp.array[dinSPKIDataType_SPKISexp_currArrayIndex].bytesLen); + dinSPKIDataType_SPKISexp_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 22; + } else if ( dinSPKIDataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":RootCertificateID{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinListOfRootCertificateIDsType(bitstream_t* stream, struct dinListOfRootCertificateIDsType* dinListOfRootCertificateIDsType) { + int grammarID = 24; + int done = 0; + + unsigned int dinListOfRootCertificateIDsType_RootCertificateID_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 24: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID)] */ + if (dinListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < dinListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinListOfRootCertificateIDsType->RootCertificateID.array[dinListOfRootCertificateIDsType_RootCertificateID_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinListOfRootCertificateIDsType->RootCertificateID.array[dinListOfRootCertificateIDsType_RootCertificateID_currArrayIndex].characters, dinListOfRootCertificateIDsType->RootCertificateID.array[dinListOfRootCertificateIDsType_RootCertificateID_currArrayIndex].charactersLen); + dinListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 25; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 25: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (dinListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < dinListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinListOfRootCertificateIDsType->RootCertificateID.array[dinListOfRootCertificateIDsType_RootCertificateID_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinListOfRootCertificateIDsType->RootCertificateID.array[dinListOfRootCertificateIDsType_RootCertificateID_currArrayIndex].characters, dinListOfRootCertificateIDsType->RootCertificateID.array[dinListOfRootCertificateIDsType_RootCertificateID_currArrayIndex].charactersLen); + dinListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 25; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SelectedServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SelectedService{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinSelectedServiceListType(bitstream_t* stream, struct dinSelectedServiceListType* dinSelectedServiceListType) { + int grammarID = 26; + int done = 0; + + unsigned int dinSelectedServiceListType_SelectedService_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 26: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService)] */ + if (dinSelectedServiceListType_SelectedService_currArrayIndex < dinSelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinSelectedServiceType(stream, &dinSelectedServiceListType->SelectedService.array [dinSelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 27; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 27: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (dinSelectedServiceListType_SelectedService_currArrayIndex < dinSelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinSelectedServiceType(stream, &dinSelectedServiceListType->SelectedService.array [dinSelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 27; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CurrentDemandResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2010:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2010:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2010:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2010:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2010:MsgBody":EVSEMaximumVoltageLimit{0-1},"urn:iso:15118:2:2010:MsgBody":EVSEMaximumCurrentLimit{0-1},"urn:iso:15118:2:2010:MsgBody":EVSEMaximumPowerLimit{0-1})', derivedBy='EXTENSION'. */ +static int encode_dinCurrentDemandResType(bitstream_t* stream, struct dinCurrentDemandResType* dinCurrentDemandResType) { + int grammarID = 28; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 28: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, dinCurrentDemandResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 29; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 29: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinDC_EVSEStatusType(stream, &dinCurrentDemandResType->DC_EVSEStatus ); + } + grammarID = 30; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 30: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandResType->EVSEPresentVoltage ); + } + grammarID = 31; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 31: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandResType->EVSEPresentCurrent ); + } + grammarID = 32; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 32: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSECurrentLimitAchieved)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinCurrentDemandResType->EVSECurrentLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 33; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 33: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltageLimitAchieved)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinCurrentDemandResType->EVSEVoltageLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 34; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 34: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPowerLimitAchieved)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinCurrentDemandResType->EVSEPowerLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 35; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 35: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ + if ( dinCurrentDemandResType->EVSEMaximumVoltageLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandResType->EVSEMaximumVoltageLimit ); + } + grammarID = 36; + } else if ( dinCurrentDemandResType->EVSEMaximumCurrentLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandResType->EVSEMaximumCurrentLimit ); + } + grammarID = 37; + } else if ( dinCurrentDemandResType->EVSEMaximumPowerLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandResType->EVSEMaximumPowerLimit ); + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 36: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ + if ( dinCurrentDemandResType->EVSEMaximumCurrentLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandResType->EVSEMaximumCurrentLimit ); + } + grammarID = 37; + } else if ( dinCurrentDemandResType->EVSEMaximumPowerLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandResType->EVSEMaximumPowerLimit ); + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 37: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ + if ( dinCurrentDemandResType->EVSEMaximumPowerLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandResType->EVSEMaximumPowerLimit ); + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_dinTransformType(bitstream_t* stream, struct dinTransformType* dinTransformType) { + int grammarID = 38; + int done = 0; + int wcDone = 0; + + unsigned int dinTransformType_XPath_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 38: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinTransformType->Algorithm.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinTransformType->Algorithm.characters, dinTransformType->Algorithm.charactersLen); + } + } + grammarID = 39; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 39: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (dinTransformType_XPath_currArrayIndex < dinTransformType->XPath.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinTransformType->XPath.array[dinTransformType_XPath_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinTransformType->XPath.array[dinTransformType_XPath_currArrayIndex].characters, dinTransformType->XPath.array[dinTransformType_XPath_currArrayIndex].charactersLen); + dinTransformType_XPath_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 40; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 40; + } else if ( dinTransformType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else if ( dinTransformType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinTransformType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinTransformType->ANY.characters, dinTransformType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 40; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 40: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (dinTransformType_XPath_currArrayIndex < dinTransformType->XPath.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinTransformType->XPath.array[dinTransformType_XPath_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinTransformType->XPath.array[dinTransformType_XPath_currArrayIndex].characters, dinTransformType->XPath.array[dinTransformType_XPath_currArrayIndex].charactersLen); + dinTransformType_XPath_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 40; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 40; + } else if ( dinTransformType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else if ( dinTransformType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinTransformType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinTransformType->ANY.characters, dinTransformType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 40; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,AC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":DepartureTime,"urn:iso:15118:2:2010:MsgDataTypes":EAmount,"urn:iso:15118:2:2010:MsgDataTypes":EVMaxVoltage,"urn:iso:15118:2:2010:MsgDataTypes":EVMaxCurrent,"urn:iso:15118:2:2010:MsgDataTypes":EVMinCurrent)', derivedBy='EXTENSION'. */ +static int encode_dinAC_EVChargeParameterType(bitstream_t* stream, struct dinAC_EVChargeParameterType* dinAC_EVChargeParameterType) { + int grammarID = 41; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 41: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, dinAC_EVChargeParameterType->DepartureTime); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 42; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 42: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EAmount)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinAC_EVChargeParameterType->EAmount ); + } + grammarID = 43; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 43: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinAC_EVChargeParameterType->EVMaxVoltage ); + } + grammarID = 44; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 44: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinAC_EVChargeParameterType->EVMaxCurrent ); + } + grammarID = 45; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 45: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMinCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinAC_EVChargeParameterType->EVMinCurrent ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_dinX509DataType(bitstream_t* stream, struct dinX509DataType* dinX509DataType) { + int grammarID = 46; + int done = 0; + int wcDone = 0; + + unsigned int dinX509DataType_X509IssuerSerial_currArrayIndex = 0; + unsigned int dinX509DataType_X509SKI_currArrayIndex = 0; + unsigned int dinX509DataType_X509SubjectName_currArrayIndex = 0; + unsigned int dinX509DataType_X509Certificate_currArrayIndex = 0; + unsigned int dinX509DataType_X509CRL_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 46: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */ + if (dinX509DataType_X509IssuerSerial_currArrayIndex < dinX509DataType->X509IssuerSerial.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_dinX509IssuerSerialType(stream, &dinX509DataType->X509IssuerSerial.array [dinX509DataType_X509IssuerSerial_currArrayIndex++]); + } + grammarID = 47; + } else if (dinX509DataType_X509SKI_currArrayIndex < dinX509DataType->X509SKI.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinX509DataType->X509SKI.array[dinX509DataType_X509SKI_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinX509DataType->X509SKI.array[dinX509DataType_X509SKI_currArrayIndex].bytes, dinX509DataType->X509SKI.array[dinX509DataType_X509SKI_currArrayIndex].bytesLen); + dinX509DataType_X509SKI_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 47; + } else if (dinX509DataType_X509SubjectName_currArrayIndex < dinX509DataType->X509SubjectName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinX509DataType->X509SubjectName.array[dinX509DataType_X509SubjectName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinX509DataType->X509SubjectName.array[dinX509DataType_X509SubjectName_currArrayIndex].characters, dinX509DataType->X509SubjectName.array[dinX509DataType_X509SubjectName_currArrayIndex].charactersLen); + dinX509DataType_X509SubjectName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 47; + } else if (dinX509DataType_X509Certificate_currArrayIndex < dinX509DataType->X509Certificate.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinX509DataType->X509Certificate.array[dinX509DataType_X509Certificate_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinX509DataType->X509Certificate.array[dinX509DataType_X509Certificate_currArrayIndex].bytes, dinX509DataType->X509Certificate.array[dinX509DataType_X509Certificate_currArrayIndex].bytesLen); + dinX509DataType_X509Certificate_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 47; + } else if (dinX509DataType_X509CRL_currArrayIndex < dinX509DataType->X509CRL.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinX509DataType->X509CRL.array[dinX509DataType_X509CRL_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinX509DataType->X509CRL.array[dinX509DataType_X509CRL_currArrayIndex].bytes, dinX509DataType->X509CRL.array[dinX509DataType_X509CRL_currArrayIndex].bytesLen); + dinX509DataType_X509CRL_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 47; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 47; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 47: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */ + if (dinX509DataType_X509IssuerSerial_currArrayIndex < dinX509DataType->X509IssuerSerial.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_dinX509IssuerSerialType(stream, &dinX509DataType->X509IssuerSerial.array [dinX509DataType_X509IssuerSerial_currArrayIndex++]); + } + grammarID = 47; + } else if (dinX509DataType_X509SKI_currArrayIndex < dinX509DataType->X509SKI.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinX509DataType->X509SKI.array[dinX509DataType_X509SKI_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinX509DataType->X509SKI.array[dinX509DataType_X509SKI_currArrayIndex].bytes, dinX509DataType->X509SKI.array[dinX509DataType_X509SKI_currArrayIndex].bytesLen); + dinX509DataType_X509SKI_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 47; + } else if (dinX509DataType_X509SubjectName_currArrayIndex < dinX509DataType->X509SubjectName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinX509DataType->X509SubjectName.array[dinX509DataType_X509SubjectName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinX509DataType->X509SubjectName.array[dinX509DataType_X509SubjectName_currArrayIndex].characters, dinX509DataType->X509SubjectName.array[dinX509DataType_X509SubjectName_currArrayIndex].charactersLen); + dinX509DataType_X509SubjectName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 47; + } else if (dinX509DataType_X509Certificate_currArrayIndex < dinX509DataType->X509Certificate.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinX509DataType->X509Certificate.array[dinX509DataType_X509Certificate_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinX509DataType->X509Certificate.array[dinX509DataType_X509Certificate_currArrayIndex].bytes, dinX509DataType->X509Certificate.array[dinX509DataType_X509Certificate_currArrayIndex].bytesLen); + dinX509DataType_X509Certificate_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 47; + } else if (dinX509DataType_X509CRL_currArrayIndex < dinX509DataType->X509CRL.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinX509DataType->X509CRL.array[dinX509DataType_X509CRL_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinX509DataType->X509CRL.array[dinX509DataType_X509CRL_currArrayIndex].bytes, dinX509DataType->X509CRL.array[dinX509DataType_X509CRL_currArrayIndex].bytesLen); + dinX509DataType_X509CRL_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 47; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 47; + } else if ( dinX509DataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 6); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ChargingStatusResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":EVSEID,"urn:iso:15118:2:2010:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2010:MsgBody":EVSEMaxCurrent{0-1},"urn:iso:15118:2:2010:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2010:MsgBody":ReceiptRequired,"urn:iso:15118:2:2010:MsgBody":AC_EVSEStatus)', derivedBy='EXTENSION'. */ +static int encode_dinChargingStatusResType(bitstream_t* stream, struct dinChargingStatusResType* dinChargingStatusResType) { + int grammarID = 48; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 48: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, dinChargingStatusResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 49; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 49: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinChargingStatusResType->EVSEID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinChargingStatusResType->EVSEID.bytes, dinChargingStatusResType->EVSEID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 50; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 50: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, dinChargingStatusResType->SAScheduleTupleID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 51; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 51: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired)] */ + if ( dinChargingStatusResType->EVSEMaxCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinChargingStatusResType->EVSEMaxCurrent ); + } + grammarID = 52; + } else if ( dinChargingStatusResType->MeterInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinMeterInfoType(stream, &dinChargingStatusResType->MeterInfo ); + } + grammarID = 53; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinChargingStatusResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 54; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 52: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired)] */ + if ( dinChargingStatusResType->MeterInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinMeterInfoType(stream, &dinChargingStatusResType->MeterInfo ); + } + grammarID = 53; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinChargingStatusResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 54; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 53: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinChargingStatusResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 54; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 54: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinAC_EVSEStatusType(stream, &dinChargingStatusResType->AC_EVSEStatus ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,WeldingDetectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */ +static int encode_dinWeldingDetectionReqType(bitstream_t* stream, struct dinWeldingDetectionReqType* dinWeldingDetectionReqType) { + int grammarID = 55; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 55: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinDC_EVStatusType(stream, &dinWeldingDetectionReqType->DC_EVStatus ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertiesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignatureProperty{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinSignaturePropertiesType(bitstream_t* stream, struct dinSignaturePropertiesType* dinSignaturePropertiesType) { + int grammarID = 56; + int done = 0; + + unsigned int dinSignaturePropertiesType_SignatureProperty_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 56: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ + if ( dinSignaturePropertiesType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSignaturePropertiesType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinSignaturePropertiesType->Id.characters, dinSignaturePropertiesType->Id.charactersLen); + } + } + grammarID = 57; + } else if (dinSignaturePropertiesType_SignatureProperty_currArrayIndex < dinSignaturePropertiesType->SignatureProperty.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinSignaturePropertyType(stream, &dinSignaturePropertiesType->SignatureProperty.array [dinSignaturePropertiesType_SignatureProperty_currArrayIndex++]); + } + grammarID = 58; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 57: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ + if (dinSignaturePropertiesType_SignatureProperty_currArrayIndex < dinSignaturePropertiesType->SignatureProperty.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinSignaturePropertyType(stream, &dinSignaturePropertiesType->SignatureProperty.array [dinSignaturePropertiesType_SignatureProperty_currArrayIndex++]); + } + grammarID = 58; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 58: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */ + if (dinSignaturePropertiesType_SignatureProperty_currArrayIndex < dinSignaturePropertiesType->SignatureProperty.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinSignaturePropertyType(stream, &dinSignaturePropertiesType->SignatureProperty.array [dinSignaturePropertiesType_SignatureProperty_currArrayIndex++]); + } + grammarID = 58; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ContractAuthenticationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":GenChallenge{0-1})', derivedBy='EXTENSION'. */ +static int encode_dinContractAuthenticationReqType(bitstream_t* stream, struct dinContractAuthenticationReqType* dinContractAuthenticationReqType) { + int grammarID = 59; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 59: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ + if ( dinContractAuthenticationReqType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinContractAuthenticationReqType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinContractAuthenticationReqType->Id.characters, dinContractAuthenticationReqType->Id.charactersLen); + } + } + grammarID = 60; + } else if ( dinContractAuthenticationReqType->GenChallenge_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinContractAuthenticationReqType->GenChallenge.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinContractAuthenticationReqType->GenChallenge.characters, dinContractAuthenticationReqType->GenChallenge.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 60: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ + if ( dinContractAuthenticationReqType->GenChallenge_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinContractAuthenticationReqType->GenChallenge.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinContractAuthenticationReqType->GenChallenge.characters, dinContractAuthenticationReqType->GenChallenge.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVPowerDeliveryParameterType', base type name='EVPowerDeliveryParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2010:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2010:MsgDataTypes":ChargingComplete)', derivedBy='EXTENSION'. */ +static int encode_dinDC_EVPowerDeliveryParameterType(bitstream_t* stream, struct dinDC_EVPowerDeliveryParameterType* dinDC_EVPowerDeliveryParameterType) { + int grammarID = 61; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 61: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinDC_EVStatusType(stream, &dinDC_EVPowerDeliveryParameterType->DC_EVStatus ); + } + grammarID = 62; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 62: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete)] */ + if ( dinDC_EVPowerDeliveryParameterType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinDC_EVPowerDeliveryParameterType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 63; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinDC_EVPowerDeliveryParameterType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 63: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinDC_EVPowerDeliveryParameterType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVSEChargeParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_dinEVSEChargeParameterType(bitstream_t* stream, struct dinEVSEChargeParameterType* dinEVSEChargeParameterType) { + int grammarID = 64; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CableCheckReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */ +static int encode_dinCableCheckReqType(bitstream_t* stream, struct dinCableCheckReqType* dinCableCheckReqType) { + int grammarID = 55; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 55: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinDC_EVStatusType(stream, &dinCableCheckReqType->DC_EVStatus ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2010:MsgDataTypes":EVMaximumCurrentLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVMaximumVoltageLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVEnergyCapacity{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVEnergyRequest{0-1},"urn:iso:15118:2:2010:MsgDataTypes":FullSOC{0-1},"urn:iso:15118:2:2010:MsgDataTypes":BulkSOC{0-1})', derivedBy='EXTENSION'. */ +static int encode_dinDC_EVChargeParameterType(bitstream_t* stream, struct dinDC_EVChargeParameterType* dinDC_EVChargeParameterType) { + int grammarID = 65; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 65: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinDC_EVStatusType(stream, &dinDC_EVChargeParameterType->DC_EVStatus ); + } + grammarID = 66; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 66: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumCurrentLimit)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinDC_EVChargeParameterType->EVMaximumCurrentLimit ); + } + grammarID = 67; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 67: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit)] */ + if ( dinDC_EVChargeParameterType->EVMaximumPowerLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinDC_EVChargeParameterType->EVMaximumPowerLimit ); + } + grammarID = 68; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinDC_EVChargeParameterType->EVMaximumVoltageLimit ); + } + grammarID = 69; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 68: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinDC_EVChargeParameterType->EVMaximumVoltageLimit ); + } + grammarID = 69; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 69: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ + if ( dinDC_EVChargeParameterType->EVEnergyCapacity_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinDC_EVChargeParameterType->EVEnergyCapacity ); + } + grammarID = 70; + } else if ( dinDC_EVChargeParameterType->EVEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinDC_EVChargeParameterType->EVEnergyRequest ); + } + grammarID = 71; + } else if ( dinDC_EVChargeParameterType->FullSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(dinDC_EVChargeParameterType->FullSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 72; + } else if ( dinDC_EVChargeParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(dinDC_EVChargeParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 70: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ + if ( dinDC_EVChargeParameterType->EVEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinDC_EVChargeParameterType->EVEnergyRequest ); + } + grammarID = 71; + } else if ( dinDC_EVChargeParameterType->FullSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(dinDC_EVChargeParameterType->FullSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 72; + } else if ( dinDC_EVChargeParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(dinDC_EVChargeParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 71: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ + if ( dinDC_EVChargeParameterType->FullSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(dinDC_EVChargeParameterType->FullSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 72; + } else if ( dinDC_EVChargeParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(dinDC_EVChargeParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 72: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ + if ( dinDC_EVChargeParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(dinDC_EVChargeParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SAScheduleListType', base type name='SASchedulesType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SAScheduleTuple{1-UNBOUNDED})', derivedBy='EXTENSION'. */ +static int encode_dinSAScheduleListType(bitstream_t* stream, struct dinSAScheduleListType* dinSAScheduleListType) { + int grammarID = 73; + int done = 0; + + unsigned int dinSAScheduleListType_SAScheduleTuple_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 73: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple)] */ + if (dinSAScheduleListType_SAScheduleTuple_currArrayIndex < dinSAScheduleListType->SAScheduleTuple.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinSAScheduleTupleType(stream, &dinSAScheduleListType->SAScheduleTuple.array [dinSAScheduleListType_SAScheduleTuple_currArrayIndex++]); + } + grammarID = 74; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 74: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */ + if (dinSAScheduleListType_SAScheduleTuple_currArrayIndex < dinSAScheduleListType->SAScheduleTuple.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinSAScheduleTupleType(stream, &dinSAScheduleListType->SAScheduleTuple.array [dinSAScheduleListType_SAScheduleTuple_currArrayIndex++]); + } + grammarID = 74; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PMaxScheduleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":PMaxScheduleID,"urn:iso:15118:2:2010:MsgDataTypes":PMaxScheduleEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinPMaxScheduleType(bitstream_t* stream, struct dinPMaxScheduleType* dinPMaxScheduleType) { + int grammarID = 75; + int done = 0; + + unsigned int dinPMaxScheduleType_PMaxScheduleEntry_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 75: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, dinPMaxScheduleType->PMaxScheduleID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 76; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 76: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry)] */ + if (dinPMaxScheduleType_PMaxScheduleEntry_currArrayIndex < dinPMaxScheduleType->PMaxScheduleEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPMaxScheduleEntryType(stream, &dinPMaxScheduleType->PMaxScheduleEntry.array [dinPMaxScheduleType_PMaxScheduleEntry_currArrayIndex++]); + } + grammarID = 77; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 77: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */ + if (dinPMaxScheduleType_PMaxScheduleEntry_currArrayIndex < dinPMaxScheduleType->PMaxScheduleEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinPMaxScheduleEntryType(stream, &dinPMaxScheduleType->PMaxScheduleEntry.array [dinPMaxScheduleType_PMaxScheduleEntry_currArrayIndex++]); + } + grammarID = 77; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ServicePaymentSelectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":SelectedPaymentOption,"urn:iso:15118:2:2010:MsgBody":SelectedServiceList)', derivedBy='EXTENSION'. */ +static int encode_dinServicePaymentSelectionReqType(bitstream_t* stream, struct dinServicePaymentSelectionReqType* dinServicePaymentSelectionReqType) { + int grammarID = 78; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 78: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, dinServicePaymentSelectionReqType->SelectedPaymentOption); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 79; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 79: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedServiceList)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinSelectedServiceListType(stream, &dinServicePaymentSelectionReqType->SelectedServiceList ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":start,"urn:iso:15118:2:2010:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */ +static int encode_dinRelativeTimeIntervalType(bitstream_t* stream, struct dinRelativeTimeIntervalType* dinRelativeTimeIntervalType) { + int grammarID = 80; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 80: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}start)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, dinRelativeTimeIntervalType->start); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 81; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 81: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}duration), END_ELEMENT] */ + if ( dinRelativeTimeIntervalType->duration_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, dinRelativeTimeIntervalType->duration); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVStatusType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_dinEVStatusType(bitstream_t* stream, struct dinEVStatusType* dinEVStatusType) { + int grammarID = 64; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,PreChargeResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */ +static int encode_dinPreChargeResType(bitstream_t* stream, struct dinPreChargeResType* dinPreChargeResType) { + int grammarID = 13; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 13: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, dinPreChargeResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 14; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 14: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinDC_EVSEStatusType(stream, &dinPreChargeResType->DC_EVSEStatus ); + } + grammarID = 15; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 15: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinPreChargeResType->EVSEPresentVoltage ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaximumCurrentLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaximumPowerLimit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaximumVoltageLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMinimumCurrentLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMinimumVoltageLimit,"urn:iso:15118:2:2010:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2010:MsgDataTypes":EVSEEnergyToBeDelivered{0-1})', derivedBy='EXTENSION'. */ +static int encode_dinDC_EVSEChargeParameterType(bitstream_t* stream, struct dinDC_EVSEChargeParameterType* dinDC_EVSEChargeParameterType) { + int grammarID = 82; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 82: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinDC_EVSEStatusType(stream, &dinDC_EVSEChargeParameterType->DC_EVSEStatus ); + } + grammarID = 83; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 83: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumCurrentLimit)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSEMaximumCurrentLimit ); + } + grammarID = 84; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 84: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit)] */ + if ( dinDC_EVSEChargeParameterType->EVSEMaximumPowerLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSEMaximumPowerLimit ); + } + grammarID = 85; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSEMaximumVoltageLimit ); + } + grammarID = 86; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 85: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSEMaximumVoltageLimit ); + } + grammarID = 86; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 86: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumCurrentLimit)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSEMinimumCurrentLimit ); + } + grammarID = 87; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 87: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumVoltageLimit)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSEMinimumVoltageLimit ); + } + grammarID = 88; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 88: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple)] */ + if ( dinDC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSECurrentRegulationTolerance ); + } + grammarID = 89; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSEPeakCurrentRipple ); + } + grammarID = 90; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 89: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSEPeakCurrentRipple ); + } + grammarID = 90; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 90: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */ + if ( dinDC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinDC_EVSEChargeParameterType->EVSEEnergyToBeDelivered ); + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,PaymentDetailsResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":GenChallenge,"urn:iso:15118:2:2010:MsgBody":DateTimeNow)', derivedBy='EXTENSION'. */ +static int encode_dinPaymentDetailsResType(bitstream_t* stream, struct dinPaymentDetailsResType* dinPaymentDetailsResType) { + int grammarID = 91; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 91: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, dinPaymentDetailsResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 92; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 92: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinPaymentDetailsResType->GenChallenge.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinPaymentDetailsResType->GenChallenge.characters, dinPaymentDetailsResType->GenChallenge.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 93; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 93: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, dinPaymentDetailsResType->DateTimeNow); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */ +static int encode_dinDSAKeyValueType(bitstream_t* stream, struct dinDSAKeyValueType* dinDSAKeyValueType) { + int grammarID = 94; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 94: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + if ( dinDSAKeyValueType->P_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinDSAKeyValueType->P.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinDSAKeyValueType->P.bytes, dinDSAKeyValueType->P.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 95; + } else if ( dinDSAKeyValueType->G_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinDSAKeyValueType->G.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinDSAKeyValueType->G.bytes, dinDSAKeyValueType->G.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 96; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinDSAKeyValueType->Y.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinDSAKeyValueType->Y.bytes, dinDSAKeyValueType->Y.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 97; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 95: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */ + if ( dinDSAKeyValueType->Q_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinDSAKeyValueType->Q.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinDSAKeyValueType->Q.bytes, dinDSAKeyValueType->Q.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 98; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 98: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + if ( dinDSAKeyValueType->G_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinDSAKeyValueType->G.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinDSAKeyValueType->G.bytes, dinDSAKeyValueType->G.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 96; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinDSAKeyValueType->Y.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinDSAKeyValueType->Y.bytes, dinDSAKeyValueType->Y.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 97; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 96: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinDSAKeyValueType->Y.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinDSAKeyValueType->Y.bytes, dinDSAKeyValueType->Y.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 97; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 97: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ + if ( dinDSAKeyValueType->J_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinDSAKeyValueType->J.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinDSAKeyValueType->J.bytes, dinDSAKeyValueType->J.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 99; + } else if ( dinDSAKeyValueType->Seed_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinDSAKeyValueType->Seed.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinDSAKeyValueType->Seed.bytes, dinDSAKeyValueType->Seed.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 100; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 99: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ + if ( dinDSAKeyValueType->Seed_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinDSAKeyValueType->Seed.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinDSAKeyValueType->Seed.bytes, dinDSAKeyValueType->Seed.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 100; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 100: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */ + if ( dinDSAKeyValueType->PgenCounter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinDSAKeyValueType->PgenCounter.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinDSAKeyValueType->PgenCounter.bytes, dinDSAKeyValueType->PgenCounter.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SASchedulesType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_dinSASchedulesType(bitstream_t* stream, struct dinSASchedulesType* dinSASchedulesType) { + int grammarID = 64; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CertificateUpdateResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2010:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2010:MsgBody":DHParams,"urn:iso:15118:2:2010:MsgBody":ContractID,"urn:iso:15118:2:2010:MsgBody":RetryCounter)', derivedBy='EXTENSION'. */ +static int encode_dinCertificateUpdateResType(bitstream_t* stream, struct dinCertificateUpdateResType* dinCertificateUpdateResType) { + int grammarID = 101; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 101: + /* FirstStartTag[ATTRIBUTE[STRING](Id)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCertificateUpdateResType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinCertificateUpdateResType->Id.characters, dinCertificateUpdateResType->Id.charactersLen); + } + } + grammarID = 102; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 102: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, dinCertificateUpdateResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 103; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 103: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinCertificateChainType(stream, &dinCertificateUpdateResType->ContractSignatureCertChain ); + } + grammarID = 104; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 104: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCertificateUpdateResType->ContractSignatureEncryptedPrivateKey.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinCertificateUpdateResType->ContractSignatureEncryptedPrivateKey.bytes, dinCertificateUpdateResType->ContractSignatureEncryptedPrivateKey.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 105; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 105: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCertificateUpdateResType->DHParams.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinCertificateUpdateResType->DHParams.bytes, dinCertificateUpdateResType->DHParams.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 106; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 106: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCertificateUpdateResType->ContractID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinCertificateUpdateResType->ContractID.characters, dinCertificateUpdateResType->ContractID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 107; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 107: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RetryCounter)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, dinCertificateUpdateResType->RetryCounter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVChargeParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_dinEVChargeParameterType(bitstream_t* stream, struct dinEVChargeParameterType* dinEVChargeParameterType) { + int grammarID = 64; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgHeader,MessageHeaderType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgHeader":SessionID,"urn:iso:15118:2:2010:MsgHeader":Notification{0-1},"http://www.w3.org/2000/09/xmldsig#":Signature{0-1})', derivedBy='RESTRICTION'. */ +static int encode_dinMessageHeaderType(bitstream_t* stream, struct dinMessageHeaderType* dinMessageHeaderType) { + int grammarID = 108; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 108: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinMessageHeaderType->SessionID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinMessageHeaderType->SessionID.bytes, dinMessageHeaderType->SessionID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 109; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 109: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ + if ( dinMessageHeaderType->Notification_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinNotificationType(stream, &dinMessageHeaderType->Notification ); + } + grammarID = 110; + } else if ( dinMessageHeaderType->Signature_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinSignatureType(stream, &dinMessageHeaderType->Signature ); + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 110: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ + if ( dinMessageHeaderType->Signature_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinSignatureType(stream, &dinMessageHeaderType->Signature ); + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDef,BodyBaseType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_dinBodyBaseType(bitstream_t* stream, struct dinBodyBaseType* dinBodyBaseType) { + int grammarID = 64; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */ +static int encode_dinKeyValueType(bitstream_t* stream, struct dinKeyValueType* dinKeyValueType) { + int grammarID = 111; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 111: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if ( dinKeyValueType->DSAKeyValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_dinDSAKeyValueType(stream, &dinKeyValueType->DSAKeyValue ); + } + grammarID = 112; + } else if ( dinKeyValueType->RSAKeyValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_dinRSAKeyValueType(stream, &dinKeyValueType->RSAKeyValue ); + } + grammarID = 112; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 112; + } else if ( dinKeyValueType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinKeyValueType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinKeyValueType->ANY.characters, dinKeyValueType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 113; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 112: + /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( dinKeyValueType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else if ( dinKeyValueType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinKeyValueType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinKeyValueType->ANY.characters, dinKeyValueType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 112; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 113: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if ( dinKeyValueType->DSAKeyValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_dinDSAKeyValueType(stream, &dinKeyValueType->DSAKeyValue ); + } + grammarID = 112; + } else if ( dinKeyValueType->RSAKeyValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_dinRSAKeyValueType(stream, &dinKeyValueType->RSAKeyValue ); + } + grammarID = 112; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 112; + } else if ( dinKeyValueType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinKeyValueType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinKeyValueType->ANY.characters, dinKeyValueType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 113; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_dinIntervalType(bitstream_t* stream, struct dinIntervalType* dinIntervalType) { + int grammarID = 64; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ChargeParameterDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":EVSEProcessing,"urn:iso:15118:2:2010:MsgDataTypes":SASchedules,"urn:iso:15118:2:2010:MsgDataTypes":EVSEChargeParameter)', derivedBy='EXTENSION'. */ +static int encode_dinChargeParameterDiscoveryResType(bitstream_t* stream, struct dinChargeParameterDiscoveryResType* dinChargeParameterDiscoveryResType) { + int grammarID = 114; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 114: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, dinChargeParameterDiscoveryResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 115; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 115: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, dinChargeParameterDiscoveryResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 116; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 116: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules)] */ + if ( dinChargeParameterDiscoveryResType->SAScheduleList_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinSAScheduleListType(stream, &dinChargeParameterDiscoveryResType->SAScheduleList ); + } + grammarID = 117; + } else if ( dinChargeParameterDiscoveryResType->SASchedules_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinSASchedulesType(stream, &dinChargeParameterDiscoveryResType->SASchedules ); + } + grammarID = 117; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 117: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter)] */ + if ( dinChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinAC_EVSEChargeParameterType(stream, &dinChargeParameterDiscoveryResType->AC_EVSEChargeParameter ); + } + grammarID = 4; + } else if ( dinChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinDC_EVSEChargeParameterType(stream, &dinChargeParameterDiscoveryResType->DC_EVSEChargeParameter ); + } + grammarID = 4; + } else if ( dinChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_dinEVSEChargeParameterType(stream, &dinChargeParameterDiscoveryResType->EVSEChargeParameter ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,PowerDeliveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ReadyToChargeState,"urn:iso:15118:2:2010:MsgBody":ChargingProfile{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVPowerDeliveryParameter{0-1})', derivedBy='EXTENSION'. */ +static int encode_dinPowerDeliveryReqType(bitstream_t* stream, struct dinPowerDeliveryReqType* dinPowerDeliveryReqType) { + int grammarID = 118; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 118: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReadyToChargeState)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinPowerDeliveryReqType->ReadyToChargeState); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 119; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 119: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */ + if ( dinPowerDeliveryReqType->ChargingProfile_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_dinChargingProfileType(stream, &dinPowerDeliveryReqType->ChargingProfile ); + } + grammarID = 120; + } else if ( dinPowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_dinDC_EVPowerDeliveryParameterType(stream, &dinPowerDeliveryReqType->DC_EVPowerDeliveryParameter ); + } + grammarID = 4; + } else if ( dinPowerDeliveryReqType->EVPowerDeliveryParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_dinEVPowerDeliveryParameterType(stream, &dinPowerDeliveryReqType->EVPowerDeliveryParameter ); + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 120: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */ + if ( dinPowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinDC_EVPowerDeliveryParameterType(stream, &dinPowerDeliveryReqType->DC_EVPowerDeliveryParameter ); + } + grammarID = 4; + } else if ( dinPowerDeliveryReqType->EVPowerDeliveryParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinEVPowerDeliveryParameterType(stream, &dinPowerDeliveryReqType->EVPowerDeliveryParameter ); + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Certificate,"urn:iso:15118:2:2010:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ +static int encode_dinCertificateChainType(bitstream_t* stream, struct dinCertificateChainType* dinCertificateChainType) { + int grammarID = 121; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 121: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCertificateChainType->Certificate.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinCertificateChainType->Certificate.bytes, dinCertificateChainType->Certificate.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 122; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 122: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SubCertificates), END_ELEMENT] */ + if ( dinCertificateChainType->SubCertificates_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinSubCertificatesType(stream, &dinCertificateChainType->SubCertificates ); + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinTransformsType(bitstream_t* stream, struct dinTransformsType* dinTransformsType) { + int grammarID = 123; + int done = 0; + + unsigned int dinTransformsType_Transform_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 123: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */ + if (dinTransformsType_Transform_currArrayIndex < dinTransformsType->Transform.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinTransformType(stream, &dinTransformsType->Transform.array [dinTransformsType_Transform_currArrayIndex++]); + } + grammarID = 124; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 124: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */ + if (dinTransformsType_Transform_currArrayIndex < dinTransformsType->Transform.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinTransformType(stream, &dinTransformsType->Transform.array [dinTransformsType_Transform_currArrayIndex++]); + } + grammarID = 124; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EntryType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":TimeInterval)', derivedBy='RESTRICTION'. */ +static int encode_dinEntryType(bitstream_t* stream, struct dinEntryType* dinEntryType) { + int grammarID = 125; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 125: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ + if ( dinEntryType->RelativeTimeInterval_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinRelativeTimeIntervalType(stream, &dinEntryType->RelativeTimeInterval ); + } + grammarID = 4; + } else if ( dinEntryType->TimeInterval_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinIntervalType(stream, &dinEntryType->TimeInterval ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,SessionStopType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int encode_dinSessionStopType(bitstream_t* stream, struct dinSessionStopType* dinSessionStopType) { + int grammarID = 64; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ServiceDetailReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ServiceID)', derivedBy='EXTENSION'. */ +static int encode_dinServiceDetailReqType(bitstream_t* stream, struct dinServiceDetailReqType* dinServiceDetailReqType) { + int grammarID = 126; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 126: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, dinServiceDetailReqType->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinDigestMethodType(bitstream_t* stream, struct dinDigestMethodType* dinDigestMethodType) { + int grammarID = 18; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 18: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinDigestMethodType->Algorithm.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinDigestMethodType->Algorithm.characters, dinDigestMethodType->Algorithm.charactersLen); + } + } + grammarID = 19; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 19: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 20; + } else if ( dinDigestMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else if ( dinDigestMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinDigestMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinDigestMethodType->ANY.characters, dinDigestMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 20; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 20: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 20; + } else if ( dinDigestMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else if ( dinDigestMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinDigestMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinDigestMethodType->ANY.characters, dinDigestMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 20; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ParameterType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":boolValue|"urn:iso:15118:2:2010:MsgDataTypes":byteValue|"urn:iso:15118:2:2010:MsgDataTypes":shortValue|"urn:iso:15118:2:2010:MsgDataTypes":intValue|"urn:iso:15118:2:2010:MsgDataTypes":physicalValue|"urn:iso:15118:2:2010:MsgDataTypes":stringValue)', derivedBy='RESTRICTION'. */ +static int encode_dinParameterType(bitstream_t* stream, struct dinParameterType* dinParameterType) { + int grammarID = 127; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 127: + /* FirstStartTag[ATTRIBUTE[STRING](Name)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinParameterType->Name.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinParameterType->Name.characters, dinParameterType->Name.charactersLen); + } + } + grammarID = 128; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 128: + /* StartTag[ATTRIBUTE[ENUMERATION](ValueType)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, dinParameterType->ValueType); + } + grammarID = 129; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 129: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}stringValue)] */ + if ( dinParameterType->boolValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinParameterType->boolValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if ( dinParameterType->byteValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(dinParameterType->byteValue + 128)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if ( dinParameterType->shortValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, dinParameterType->shortValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if ( dinParameterType->intValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger32(stream, dinParameterType->intValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if ( dinParameterType->physicalValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinParameterType->physicalValue ); + } + grammarID = 4; + } else if ( dinParameterType->stringValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinParameterType->stringValue.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinParameterType->stringValue.characters, dinParameterType->stringValue.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ChargingStatusReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int encode_dinChargingStatusReqType(bitstream_t* stream, struct dinChargingStatusReqType* dinChargingStatusReqType) { + int grammarID = 64; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinSignatureMethodType(bitstream_t* stream, struct dinSignatureMethodType* dinSignatureMethodType) { + int grammarID = 130; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 130: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSignatureMethodType->Algorithm.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinSignatureMethodType->Algorithm.characters, dinSignatureMethodType->Algorithm.charactersLen); + } + } + grammarID = 131; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 131: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( dinSignatureMethodType->HMACOutputLength_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, dinSignatureMethodType->HMACOutputLength); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 20; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 20; + } else if ( dinSignatureMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else if ( dinSignatureMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSignatureMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinSignatureMethodType->ANY.characters, dinSignatureMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 132; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 20: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 20; + } else if ( dinSignatureMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else if ( dinSignatureMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSignatureMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinSignatureMethodType->ANY.characters, dinSignatureMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 20; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 132: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( dinSignatureMethodType->HMACOutputLength_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, dinSignatureMethodType->HMACOutputLength); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 20; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 20; + } else if ( dinSignatureMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else if ( dinSignatureMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSignatureMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinSignatureMethodType->ANY.characters, dinSignatureMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 132; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CertificateInstallationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":OEMProvisioningCert,"urn:iso:15118:2:2010:MsgBody":ListOfRootCertificateIDs,"urn:iso:15118:2:2010:MsgBody":DHParams)', derivedBy='EXTENSION'. */ +static int encode_dinCertificateInstallationReqType(bitstream_t* stream, struct dinCertificateInstallationReqType* dinCertificateInstallationReqType) { + int grammarID = 133; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 133: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert)] */ + if ( dinCertificateInstallationReqType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCertificateInstallationReqType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinCertificateInstallationReqType->Id.characters, dinCertificateInstallationReqType->Id.charactersLen); + } + } + grammarID = 134; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCertificateInstallationReqType->OEMProvisioningCert.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinCertificateInstallationReqType->OEMProvisioningCert.bytes, dinCertificateInstallationReqType->OEMProvisioningCert.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 135; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 134: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCertificateInstallationReqType->OEMProvisioningCert.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinCertificateInstallationReqType->OEMProvisioningCert.bytes, dinCertificateInstallationReqType->OEMProvisioningCert.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 135; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 135: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinListOfRootCertificateIDsType(stream, &dinCertificateInstallationReqType->ListOfRootCertificateIDs ); + } + grammarID = 136; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 136: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCertificateInstallationReqType->DHParams.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinCertificateInstallationReqType->DHParams.bytes, dinCertificateInstallationReqType->DHParams.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SalesTariffEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2010:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2010:MsgDataTypes":EPriceLevel,"urn:iso:15118:2:2010:MsgDataTypes":ConsumptionCost{0-UNBOUNDED}))', derivedBy='EXTENSION'. */ +static int encode_dinSalesTariffEntryType(bitstream_t* stream, struct dinSalesTariffEntryType* dinSalesTariffEntryType) { + int grammarID = 137; + int done = 0; + + unsigned int dinSalesTariffEntryType_ConsumptionCost_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 137: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ + if ( dinSalesTariffEntryType->RelativeTimeInterval_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinRelativeTimeIntervalType(stream, &dinSalesTariffEntryType->RelativeTimeInterval ); + } + grammarID = 138; + } else if ( dinSalesTariffEntryType->TimeInterval_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinIntervalType(stream, &dinSalesTariffEntryType->TimeInterval ); + } + grammarID = 138; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 138: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPriceLevel)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(dinSalesTariffEntryType->EPriceLevel - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 139; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 139: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ + if (dinSalesTariffEntryType_ConsumptionCost_currArrayIndex < dinSalesTariffEntryType->ConsumptionCost.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinConsumptionCostType(stream, &dinSalesTariffEntryType->ConsumptionCost.array [dinSalesTariffEntryType_ConsumptionCost_currArrayIndex++]); + } + grammarID = 139; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ServiceDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":PaymentOptions,"urn:iso:15118:2:2010:MsgBody":ChargeService,"urn:iso:15118:2:2010:MsgBody":ServiceList{0-1})', derivedBy='EXTENSION'. */ +static int encode_dinServiceDiscoveryResType(bitstream_t* stream, struct dinServiceDiscoveryResType* dinServiceDiscoveryResType) { + int grammarID = 140; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 140: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, dinServiceDiscoveryResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 141; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 141: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentOptions)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPaymentOptionsType(stream, &dinServiceDiscoveryResType->PaymentOptions ); + } + grammarID = 142; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 142: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeService)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinServiceChargeType(stream, &dinServiceDiscoveryResType->ChargeService ); + } + grammarID = 143; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 143: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), END_ELEMENT] */ + if ( dinServiceDiscoveryResType->ServiceList_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinServiceTagListType(stream, &dinServiceDiscoveryResType->ServiceList ); + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2010:MsgDataTypes":Parameter{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinParameterSetType(bitstream_t* stream, struct dinParameterSetType* dinParameterSetType) { + int grammarID = 144; + int done = 0; + + unsigned int dinParameterSetType_Parameter_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 144: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, dinParameterSetType->ParameterSetID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 145; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 145: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter)] */ + if (dinParameterSetType_Parameter_currArrayIndex < dinParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinParameterType(stream, &dinParameterSetType->Parameter.array [dinParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 146; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 146: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter), END_ELEMENT] */ + if (dinParameterSetType_Parameter_currArrayIndex < dinParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinParameterType(stream, &dinParameterSetType->Parameter.array [dinParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 146; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CurrentDemandReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":DC_EVStatus,"urn:iso:15118:2:2010:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2010:MsgBody":EVMaximumVoltageLimit{0-1},"urn:iso:15118:2:2010:MsgBody":EVMaximumCurrentLimit{0-1},"urn:iso:15118:2:2010:MsgBody":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2010:MsgBody":BulkChargingComplete{0-1},"urn:iso:15118:2:2010:MsgBody":ChargingComplete,"urn:iso:15118:2:2010:MsgBody":RemainingTimeToFullSoC{0-1},"urn:iso:15118:2:2010:MsgBody":RemainingTimeToBulkSoC{0-1},"urn:iso:15118:2:2010:MsgBody":EVTargetVoltage)', derivedBy='EXTENSION'. */ +static int encode_dinCurrentDemandReqType(bitstream_t* stream, struct dinCurrentDemandReqType* dinCurrentDemandReqType) { + int grammarID = 147; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 147: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinDC_EVStatusType(stream, &dinCurrentDemandReqType->DC_EVStatus ); + } + grammarID = 148; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 148: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVTargetCurrent ); + } + grammarID = 149; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 149: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ + if ( dinCurrentDemandReqType->EVMaximumVoltageLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVMaximumVoltageLimit ); + } + grammarID = 150; + } else if ( dinCurrentDemandReqType->EVMaximumCurrentLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVMaximumCurrentLimit ); + } + grammarID = 151; + } else if ( dinCurrentDemandReqType->EVMaximumPowerLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVMaximumPowerLimit ); + } + grammarID = 152; + } else if ( dinCurrentDemandReqType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinCurrentDemandReqType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 153; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinCurrentDemandReqType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 154; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 150: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ + if ( dinCurrentDemandReqType->EVMaximumCurrentLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVMaximumCurrentLimit ); + } + grammarID = 151; + } else if ( dinCurrentDemandReqType->EVMaximumPowerLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVMaximumPowerLimit ); + } + grammarID = 152; + } else if ( dinCurrentDemandReqType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinCurrentDemandReqType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 153; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinCurrentDemandReqType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 154; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 151: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ + if ( dinCurrentDemandReqType->EVMaximumPowerLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVMaximumPowerLimit ); + } + grammarID = 152; + } else if ( dinCurrentDemandReqType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinCurrentDemandReqType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 153; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinCurrentDemandReqType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 154; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 152: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ + if ( dinCurrentDemandReqType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinCurrentDemandReqType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 153; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinCurrentDemandReqType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 154; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 153: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinCurrentDemandReqType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 154; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 154: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ + if ( dinCurrentDemandReqType->RemainingTimeToFullSoC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->RemainingTimeToFullSoC ); + } + grammarID = 155; + } else if ( dinCurrentDemandReqType->RemainingTimeToBulkSoC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->RemainingTimeToBulkSoC ); + } + grammarID = 156; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVTargetVoltage ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 155: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ + if ( dinCurrentDemandReqType->RemainingTimeToBulkSoC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->RemainingTimeToBulkSoC ); + } + grammarID = 156; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVTargetVoltage ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 156: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinCurrentDemandReqType->EVTargetVoltage ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,PreChargeReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":DC_EVStatus,"urn:iso:15118:2:2010:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2010:MsgBody":EVTargetCurrent)', derivedBy='EXTENSION'. */ +static int encode_dinPreChargeReqType(bitstream_t* stream, struct dinPreChargeReqType* dinPreChargeReqType) { + int grammarID = 157; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 157: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinDC_EVStatusType(stream, &dinPreChargeReqType->DC_EVStatus ); + } + grammarID = 158; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 158: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinPreChargeReqType->EVTargetVoltage ); + } + grammarID = 159; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 159: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinPreChargeReqType->EVTargetCurrent ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinSignatureType(bitstream_t* stream, struct dinSignatureType* dinSignatureType) { + int grammarID = 160; + int done = 0; + + unsigned int dinSignatureType_Object_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 160: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ + if ( dinSignatureType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSignatureType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinSignatureType->Id.characters, dinSignatureType->Id.charactersLen); + } + } + grammarID = 161; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinSignedInfoType(stream, &dinSignatureType->SignedInfo ); + } + grammarID = 162; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 161: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinSignedInfoType(stream, &dinSignatureType->SignedInfo ); + } + grammarID = 162; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 162: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinSignatureValueType(stream, &dinSignatureType->SignatureValue ); + } + grammarID = 163; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 163: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ + if ( dinSignatureType->KeyInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinKeyInfoType(stream, &dinSignatureType->KeyInfo ); + } + grammarID = 164; + } else if (dinSignatureType_Object_currArrayIndex < dinSignatureType->Object.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinObjectType(stream, &dinSignatureType->Object.array [dinSignatureType_Object_currArrayIndex++]); + } + grammarID = 164; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 164: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ + if (dinSignatureType_Object_currArrayIndex < dinSignatureType->Object.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinObjectType(stream, &dinSignatureType->Object.array [dinSignatureType_Object_currArrayIndex++]); + } + grammarID = 164; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ +static int encode_dinReferenceType(bitstream_t* stream, struct dinReferenceType* dinReferenceType) { + int grammarID = 165; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 165: + /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( dinReferenceType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinReferenceType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinReferenceType->Id.characters, dinReferenceType->Id.charactersLen); + } + } + grammarID = 166; + } else if ( dinReferenceType->Type_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinReferenceType->Type.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinReferenceType->Type.characters, dinReferenceType->Type.charactersLen); + } + } + grammarID = 167; + } else if ( dinReferenceType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinReferenceType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinReferenceType->URI.characters, dinReferenceType->URI.charactersLen); + } + } + grammarID = 168; + } else if ( dinReferenceType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_dinTransformsType(stream, &dinReferenceType->Transforms ); + } + grammarID = 169; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_dinDigestMethodType(stream, &dinReferenceType->DigestMethod ); + } + grammarID = 170; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 166: + /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( dinReferenceType->Type_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinReferenceType->Type.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinReferenceType->Type.characters, dinReferenceType->Type.charactersLen); + } + } + grammarID = 167; + } else if ( dinReferenceType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinReferenceType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinReferenceType->URI.characters, dinReferenceType->URI.charactersLen); + } + } + grammarID = 168; + } else if ( dinReferenceType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_dinTransformsType(stream, &dinReferenceType->Transforms ); + } + grammarID = 169; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_dinDigestMethodType(stream, &dinReferenceType->DigestMethod ); + } + grammarID = 170; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 167: + /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( dinReferenceType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinReferenceType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinReferenceType->URI.characters, dinReferenceType->URI.charactersLen); + } + } + grammarID = 168; + } else if ( dinReferenceType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinTransformsType(stream, &dinReferenceType->Transforms ); + } + grammarID = 169; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_dinDigestMethodType(stream, &dinReferenceType->DigestMethod ); + } + grammarID = 170; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 168: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( dinReferenceType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinTransformsType(stream, &dinReferenceType->Transforms ); + } + grammarID = 169; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinDigestMethodType(stream, &dinReferenceType->DigestMethod ); + } + grammarID = 170; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 169: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinDigestMethodType(stream, &dinReferenceType->DigestMethod ); + } + grammarID = 170; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 170: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinReferenceType->DigestValue.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinReferenceType->DigestValue.bytes, dinReferenceType->DigestValue.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ProfileEntryType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ChargingProfileEntryStart,"urn:iso:15118:2:2010:MsgDataTypes":ChargingProfileEntryMaxPower)', derivedBy='RESTRICTION'. */ +static int encode_dinProfileEntryType(bitstream_t* stream, struct dinProfileEntryType* dinProfileEntryType) { + int grammarID = 171; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 171: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, dinProfileEntryType->ChargingProfileEntryStart); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 172; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 172: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, dinProfileEntryType->ChargingProfileEntryMaxPower); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDef,#AnonType_V2G_Message', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDef":Header,"urn:iso:15118:2:2010:MsgDef":Body)', derivedBy='RESTRICTION'. */ +static int encode_dinAnonType_V2G_Message(bitstream_t* stream, struct dinAnonType_V2G_Message* dinAnonType_V2G_Message) { + int grammarID = 173; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 173: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinMessageHeaderType(stream, &dinAnonType_V2G_Message->Header ); + } + grammarID = 174; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 174: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinBodyType(stream, &dinAnonType_V2G_Message->Body ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ChargeParameterDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":EVRequestedEnergyTransferType,"urn:iso:15118:2:2010:MsgDataTypes":EVChargeParameter)', derivedBy='EXTENSION'. */ +static int encode_dinChargeParameterDiscoveryReqType(bitstream_t* stream, struct dinChargeParameterDiscoveryReqType* dinChargeParameterDiscoveryReqType) { + int grammarID = 175; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 175: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, dinChargeParameterDiscoveryReqType->EVRequestedEnergyTransferType); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 176; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 176: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter)] */ + if ( dinChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinAC_EVChargeParameterType(stream, &dinChargeParameterDiscoveryReqType->AC_EVChargeParameter ); + } + grammarID = 4; + } else if ( dinChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinDC_EVChargeParameterType(stream, &dinChargeParameterDiscoveryReqType->DC_EVChargeParameter ); + } + grammarID = 4; + } else if ( dinChargeParameterDiscoveryReqType->EVChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_dinEVChargeParameterType(stream, &dinChargeParameterDiscoveryReqType->EVChargeParameter ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ConsumptionCostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":startValue,"urn:iso:15118:2:2010:MsgDataTypes":Cost{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinConsumptionCostType(bitstream_t* stream, struct dinConsumptionCostType* dinConsumptionCostType) { + int grammarID = 177; + int done = 0; + + unsigned int dinConsumptionCostType_Cost_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 177: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}startValue)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, dinConsumptionCostType->startValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 178; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 178: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Cost), END_ELEMENT] */ + if (dinConsumptionCostType_Cost_currArrayIndex < dinConsumptionCostType->Cost.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinCostType(stream, &dinConsumptionCostType->Cost.array [dinConsumptionCostType_Cost_currArrayIndex++]); + } + grammarID = 178; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */ +static int encode_dinRSAKeyValueType(bitstream_t* stream, struct dinRSAKeyValueType* dinRSAKeyValueType) { + int grammarID = 179; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 179: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinRSAKeyValueType->Modulus.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinRSAKeyValueType->Modulus.bytes, dinRSAKeyValueType->Modulus.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 180; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 180: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinRSAKeyValueType->Exponent.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinRSAKeyValueType->Exponent.bytes, dinRSAKeyValueType->Exponent.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ServiceTag,"urn:iso:15118:2:2010:MsgDataTypes":FreeService)', derivedBy='RESTRICTION'. */ +static int encode_dinServiceType(bitstream_t* stream, struct dinServiceType* dinServiceType) { + int grammarID = 181; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 181: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinServiceTagType(stream, &dinServiceType->ServiceTag ); + } + grammarID = 182; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 182: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinServiceType->FreeService); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceTagListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Service{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinServiceTagListType(bitstream_t* stream, struct dinServiceTagListType* dinServiceTagListType) { + int grammarID = 183; + int done = 0; + + unsigned int dinServiceTagListType_Service_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 183: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */ + if (dinServiceTagListType_Service_currArrayIndex < dinServiceTagListType->Service.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinServiceType(stream, &dinServiceTagListType->Service.array [dinServiceTagListType_Service_currArrayIndex++]); + } + grammarID = 184; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 184: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */ + if (dinServiceTagListType_Service_currArrayIndex < dinServiceTagListType->Service.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinServiceType(stream, &dinServiceTagListType->Service.array [dinServiceTagListType_Service_currArrayIndex++]); + } + grammarID = 184; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_dinEVSEStatusType(bitstream_t* stream, struct dinEVSEStatusType* dinEVSEStatusType) { + int grammarID = 64; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,SessionSetupResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":EVSEID,"urn:iso:15118:2:2010:MsgBody":DateTimeNow{0-1})', derivedBy='EXTENSION'. */ +static int encode_dinSessionSetupResType(bitstream_t* stream, struct dinSessionSetupResType* dinSessionSetupResType) { + int grammarID = 185; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 185: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, dinSessionSetupResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 186; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 186: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSessionSetupResType->EVSEID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinSessionSetupResType->EVSEID.bytes, dinSessionSetupResType->EVSEID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 187; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 187: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow), END_ELEMENT] */ + if ( dinSessionSetupResType->DateTimeNow_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, dinSessionSetupResType->DateTimeNow); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,EVPowerDeliveryParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_dinEVPowerDeliveryParameterType(bitstream_t* stream, struct dinEVPowerDeliveryParameterType* dinEVPowerDeliveryParameterType) { + int grammarID = 64; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 64: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */ +static int encode_dinX509IssuerSerialType(bitstream_t* stream, struct dinX509IssuerSerialType* dinX509IssuerSerialType) { + int grammarID = 188; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 188: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinX509IssuerSerialType->X509IssuerName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinX509IssuerSerialType->X509IssuerName.characters, dinX509IssuerSerialType->X509IssuerName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 189; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 189: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, dinX509IssuerSerialType->X509SerialNumber); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SelectedServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ServiceID,"urn:iso:15118:2:2010:MsgDataTypes":ParameterSetID{0-1})', derivedBy='RESTRICTION'. */ +static int encode_dinSelectedServiceType(bitstream_t* stream, struct dinSelectedServiceType* dinSelectedServiceType) { + int grammarID = 190; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 190: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, dinSelectedServiceType->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 191; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 191: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID), END_ELEMENT] */ + if ( dinSelectedServiceType->ParameterSetID_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, dinSelectedServiceType->ParameterSetID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,MeteringReceiptResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":AC_EVSEStatus)', derivedBy='EXTENSION'. */ +static int encode_dinMeteringReceiptResType(bitstream_t* stream, struct dinMeteringReceiptResType* dinMeteringReceiptResType) { + int grammarID = 192; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 192: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, dinMeteringReceiptResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 54; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 54: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinAC_EVSEStatusType(stream, &dinMeteringReceiptResType->AC_EVSEStatus ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":EVReady,"urn:iso:15118:2:2010:MsgDataTypes":EVCabinConditioning{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVRESSConditioning{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2010:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */ +static int encode_dinDC_EVStatusType(bitstream_t* stream, struct dinDC_EVStatusType* dinDC_EVStatusType) { + int grammarID = 193; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 193: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVReady)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinDC_EVStatusType->EVReady); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 194; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 194: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVCabinConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode)] */ + if ( dinDC_EVStatusType->EVCabinConditioning_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinDC_EVStatusType->EVCabinConditioning); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 195; + } else if ( dinDC_EVStatusType->EVRESSConditioning_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinDC_EVStatusType->EVRESSConditioning); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 196; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 4, dinDC_EVStatusType->EVErrorCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 197; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 195: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode)] */ + if ( dinDC_EVStatusType->EVRESSConditioning_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinDC_EVStatusType->EVRESSConditioning); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 196; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 4, dinDC_EVStatusType->EVErrorCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 197; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 196: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 4, dinDC_EVStatusType->EVErrorCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 197; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 197: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSSOC)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(dinDC_EVStatusType->EVRESSSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Multiplier,"urn:iso:15118:2:2010:MsgDataTypes":Unit{0-1},"urn:iso:15118:2:2010:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ +static int encode_dinPhysicalValueType(bitstream_t* stream, struct dinPhysicalValueType* dinPhysicalValueType) { + int grammarID = 198; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 198: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, (uint32_t)(dinPhysicalValueType->Multiplier + 3)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 199; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 199: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value)] */ + if ( dinPhysicalValueType->Unit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 4, dinPhysicalValueType->Unit); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 200; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, dinPhysicalValueType->Value); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 200: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, dinPhysicalValueType->Value); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ManifestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinManifestType(bitstream_t* stream, struct dinManifestType* dinManifestType) { + int grammarID = 201; + int done = 0; + + unsigned int dinManifestType_Reference_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 201: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + if ( dinManifestType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinManifestType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinManifestType->Id.characters, dinManifestType->Id.charactersLen); + } + } + grammarID = 202; + } else if (dinManifestType_Reference_currArrayIndex < dinManifestType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinReferenceType(stream, &dinManifestType->Reference.array [dinManifestType_Reference_currArrayIndex++]); + } + grammarID = 203; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 202: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + if (dinManifestType_Reference_currArrayIndex < dinManifestType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinReferenceType(stream, &dinManifestType->Reference.array [dinManifestType_Reference_currArrayIndex++]); + } + grammarID = 203; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 203: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ + if (dinManifestType_Reference_currArrayIndex < dinManifestType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinReferenceType(stream, &dinManifestType->Reference.array [dinManifestType_Reference_currArrayIndex++]); + } + grammarID = 203; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2010:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2010:MsgDataTypes":PMax))', derivedBy='EXTENSION'. */ +static int encode_dinPMaxScheduleEntryType(bitstream_t* stream, struct dinPMaxScheduleEntryType* dinPMaxScheduleEntryType) { + int grammarID = 204; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 204: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ + if ( dinPMaxScheduleEntryType->RelativeTimeInterval_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinRelativeTimeIntervalType(stream, &dinPMaxScheduleEntryType->RelativeTimeInterval ); + } + grammarID = 205; + } else if ( dinPMaxScheduleEntryType->TimeInterval_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinIntervalType(stream, &dinPMaxScheduleEntryType->TimeInterval ); + } + grammarID = 205; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 205: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMax)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, dinPMaxScheduleEntryType->PMax); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceParameterListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ParameterSet{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinServiceParameterListType(bitstream_t* stream, struct dinServiceParameterListType* dinServiceParameterListType) { + int grammarID = 206; + int done = 0; + + unsigned int dinServiceParameterListType_ParameterSet_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 206: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet)] */ + if (dinServiceParameterListType_ParameterSet_currArrayIndex < dinServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinParameterSetType(stream, &dinServiceParameterListType->ParameterSet.array [dinServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 207; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 207: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (dinServiceParameterListType_ParameterSet_currArrayIndex < dinServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinParameterSetType(stream, &dinServiceParameterListType->ParameterSet.array [dinServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 207; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int encode_dinSignatureValueType(bitstream_t* stream, struct dinSignatureValueType* dinSignatureValueType) { + int grammarID = 208; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 208: + /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */ + if ( dinSignatureValueType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSignatureValueType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinSignatureValueType->Id.characters, dinSignatureValueType->Id.charactersLen); + } + } + grammarID = 209; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSignatureValueType->CONTENT.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinSignatureValueType->CONTENT.bytes, dinSignatureValueType->CONTENT.bytesLen); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 209: + /* StartTag[CHARACTERS[BINARY_BASE64]] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSignatureValueType->CONTENT.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinSignatureValueType->CONTENT.bytes, dinSignatureValueType->CONTENT.bytesLen); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,PaymentOptionsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":PaymentOption{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinPaymentOptionsType(bitstream_t* stream, struct dinPaymentOptionsType* dinPaymentOptionsType) { + int grammarID = 210; + int done = 0; + + unsigned int dinPaymentOptionsType_PaymentOption_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 210: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption)] */ + if (dinPaymentOptionsType_PaymentOption_currArrayIndex < dinPaymentOptionsType->PaymentOption.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, dinPaymentOptionsType->PaymentOption.array[dinPaymentOptionsType_PaymentOption_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 211; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 211: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption), END_ELEMENT] */ + if (dinPaymentOptionsType_PaymentOption_currArrayIndex < dinPaymentOptionsType->PaymentOption.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, dinPaymentOptionsType->PaymentOption.array[dinPaymentOptionsType_PaymentOption_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 211; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceTagType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":ServiceID,"urn:iso:15118:2:2010:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2010:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2010:MsgDataTypes":ServiceScope{0-1})', derivedBy='RESTRICTION'. */ +static int encode_dinServiceTagType(bitstream_t* stream, struct dinServiceTagType* dinServiceTagType) { + int grammarID = 212; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 212: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, dinServiceTagType->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 213; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 213: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory)] */ + if ( dinServiceTagType->ServiceName_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinServiceTagType->ServiceName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinServiceTagType->ServiceName.characters, dinServiceTagType->ServiceName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 214; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, dinServiceTagType->ServiceCategory); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 215; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 214: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, dinServiceTagType->ServiceCategory); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 215; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 215: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */ + if ( dinServiceTagType->ServiceScope_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinServiceTagType->ServiceScope.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinServiceTagType->ServiceScope.characters, dinServiceTagType->ServiceScope.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":PowerSwitchClosed,"urn:iso:15118:2:2010:MsgDataTypes":RCD,"urn:iso:15118:2:2010:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2010:MsgDataTypes":EVSENotification)', derivedBy='EXTENSION'. */ +static int encode_dinAC_EVSEStatusType(bitstream_t* stream, struct dinAC_EVSEStatusType* dinAC_EVSEStatusType) { + int grammarID = 216; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 216: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinAC_EVSEStatusType->PowerSwitchClosed); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 217; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 217: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinAC_EVSEStatusType->RCD); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 218; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 218: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, dinAC_EVSEStatusType->NotificationMaxDelay); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 219; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 219: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, dinAC_EVSEStatusType->EVSENotification); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CertificateUpdateReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2010:MsgBody":ContractID,"urn:iso:15118:2:2010:MsgBody":ListOfRootCertificateIDs,"urn:iso:15118:2:2010:MsgBody":DHParams)', derivedBy='EXTENSION'. */ +static int encode_dinCertificateUpdateReqType(bitstream_t* stream, struct dinCertificateUpdateReqType* dinCertificateUpdateReqType) { + int grammarID = 220; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 220: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ + if ( dinCertificateUpdateReqType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCertificateUpdateReqType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinCertificateUpdateReqType->Id.characters, dinCertificateUpdateReqType->Id.charactersLen); + } + } + grammarID = 221; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinCertificateChainType(stream, &dinCertificateUpdateReqType->ContractSignatureCertChain ); + } + grammarID = 222; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 221: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinCertificateChainType(stream, &dinCertificateUpdateReqType->ContractSignatureCertChain ); + } + grammarID = 222; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 222: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCertificateUpdateReqType->ContractID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinCertificateUpdateReqType->ContractID.characters, dinCertificateUpdateReqType->ContractID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 135; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 135: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinListOfRootCertificateIDsType(stream, &dinCertificateUpdateReqType->ListOfRootCertificateIDs ); + } + grammarID = 136; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 136: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCertificateUpdateReqType->DHParams.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinCertificateUpdateReqType->DHParams.bytes, dinCertificateUpdateReqType->DHParams.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ServicePaymentSelectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */ +static int encode_dinServicePaymentSelectionResType(bitstream_t* stream, struct dinServicePaymentSelectionResType* dinServicePaymentSelectionResType) { + int grammarID = 223; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 223: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, dinServicePaymentSelectionResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SAScheduleTupleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2010:MsgDataTypes":PMaxSchedule,"urn:iso:15118:2:2010:MsgDataTypes":SalesTariff{0-1})', derivedBy='RESTRICTION'. */ +static int encode_dinSAScheduleTupleType(bitstream_t* stream, struct dinSAScheduleTupleType* dinSAScheduleTupleType) { + int grammarID = 224; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 224: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, dinSAScheduleTupleType->SAScheduleTupleID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 225; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 225: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxSchedule)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPMaxScheduleType(stream, &dinSAScheduleTupleType->PMaxSchedule ); + } + grammarID = 226; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 226: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariff), END_ELEMENT] */ + if ( dinSAScheduleTupleType->SalesTariff_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinSalesTariffType(stream, &dinSAScheduleTupleType->SalesTariff ); + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ChargingProfileType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2010:MsgDataTypes":ProfileEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinChargingProfileType(bitstream_t* stream, struct dinChargingProfileType* dinChargingProfileType) { + int grammarID = 227; + int done = 0; + + unsigned int dinChargingProfileType_ProfileEntry_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 227: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, dinChargingProfileType->SAScheduleTupleID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 228; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 228: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry)] */ + if (dinChargingProfileType_ProfileEntry_currArrayIndex < dinChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinProfileEntryType(stream, &dinChargingProfileType->ProfileEntry.array [dinChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 229; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 229: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (dinChargingProfileType_ProfileEntry_currArrayIndex < dinChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinProfileEntryType(stream, &dinChargingProfileType->ProfileEntry.array [dinChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 229; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,ServiceDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ServiceScope{0-1},"urn:iso:15118:2:2010:MsgBody":ServiceCategory{0-1})', derivedBy='EXTENSION'. */ +static int encode_dinServiceDiscoveryReqType(bitstream_t* stream, struct dinServiceDiscoveryReqType* dinServiceDiscoveryReqType) { + int grammarID = 230; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 230: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ + if ( dinServiceDiscoveryReqType->ServiceScope_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinServiceDiscoveryReqType->ServiceScope.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinServiceDiscoveryReqType->ServiceScope.characters, dinServiceDiscoveryReqType->ServiceScope.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 231; + } else if ( dinServiceDiscoveryReqType->ServiceCategory_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, dinServiceDiscoveryReqType->ServiceCategory); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 231: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ + if ( dinServiceDiscoveryReqType->ServiceCategory_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, dinServiceDiscoveryReqType->ServiceCategory); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,AC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":AC_EVSEStatus,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaxVoltage,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMaxCurrent,"urn:iso:15118:2:2010:MsgDataTypes":EVSEMinCurrent)', derivedBy='EXTENSION'. */ +static int encode_dinAC_EVSEChargeParameterType(bitstream_t* stream, struct dinAC_EVSEChargeParameterType* dinAC_EVSEChargeParameterType) { + int grammarID = 232; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 232: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinAC_EVSEStatusType(stream, &dinAC_EVSEChargeParameterType->AC_EVSEStatus ); + } + grammarID = 233; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 233: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinAC_EVSEChargeParameterType->EVSEMaxVoltage ); + } + grammarID = 234; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 234: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinAC_EVSEChargeParameterType->EVSEMaxCurrent ); + } + grammarID = 235; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 235: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinAC_EVSEChargeParameterType->EVSEMinCurrent ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_dinKeyInfoType(bitstream_t* stream, struct dinKeyInfoType* dinKeyInfoType) { + int grammarID = 236; + int done = 0; + int wcDone = 0; + + unsigned int dinKeyInfoType_KeyName_currArrayIndex = 0; + unsigned int dinKeyInfoType_KeyValue_currArrayIndex = 0; + unsigned int dinKeyInfoType_RetrievalMethod_currArrayIndex = 0; + unsigned int dinKeyInfoType_X509Data_currArrayIndex = 0; + unsigned int dinKeyInfoType_PGPData_currArrayIndex = 0; + unsigned int dinKeyInfoType_SPKIData_currArrayIndex = 0; + unsigned int dinKeyInfoType_MgmtData_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 236: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if ( dinKeyInfoType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinKeyInfoType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinKeyInfoType->Id.characters, dinKeyInfoType->Id.charactersLen); + } + } + grammarID = 237; + } else if (dinKeyInfoType_KeyName_currArrayIndex < dinKeyInfoType->KeyName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinKeyInfoType->KeyName.array[dinKeyInfoType_KeyName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinKeyInfoType->KeyName.array[dinKeyInfoType_KeyName_currArrayIndex].characters, dinKeyInfoType->KeyName.array[dinKeyInfoType_KeyName_currArrayIndex].charactersLen); + dinKeyInfoType_KeyName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 238; + } else if (dinKeyInfoType_KeyValue_currArrayIndex < dinKeyInfoType->KeyValue.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + errn = encode_dinKeyValueType(stream, &dinKeyInfoType->KeyValue.array [dinKeyInfoType_KeyValue_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_RetrievalMethod_currArrayIndex < dinKeyInfoType->RetrievalMethod.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + errn = encode_dinRetrievalMethodType(stream, &dinKeyInfoType->RetrievalMethod.array [dinKeyInfoType_RetrievalMethod_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_X509Data_currArrayIndex < dinKeyInfoType->X509Data.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + errn = encode_dinX509DataType(stream, &dinKeyInfoType->X509Data.array [dinKeyInfoType_X509Data_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_PGPData_currArrayIndex < dinKeyInfoType->PGPData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + errn = encode_dinPGPDataType(stream, &dinKeyInfoType->PGPData.array [dinKeyInfoType_PGPData_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_SPKIData_currArrayIndex < dinKeyInfoType->SPKIData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + errn = encode_dinSPKIDataType(stream, &dinKeyInfoType->SPKIData.array [dinKeyInfoType_SPKIData_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_MgmtData_currArrayIndex < dinKeyInfoType->MgmtData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 7); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinKeyInfoType->MgmtData.array[dinKeyInfoType_MgmtData_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinKeyInfoType->MgmtData.array[dinKeyInfoType_MgmtData_currArrayIndex].characters, dinKeyInfoType->MgmtData.array[dinKeyInfoType_MgmtData_currArrayIndex].charactersLen); + dinKeyInfoType_MgmtData_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 238; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 238; + } else if ( dinKeyInfoType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 9); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinKeyInfoType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinKeyInfoType->ANY.characters, dinKeyInfoType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 239; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 237: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if (dinKeyInfoType_KeyName_currArrayIndex < dinKeyInfoType->KeyName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinKeyInfoType->KeyName.array[dinKeyInfoType_KeyName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinKeyInfoType->KeyName.array[dinKeyInfoType_KeyName_currArrayIndex].characters, dinKeyInfoType->KeyName.array[dinKeyInfoType_KeyName_currArrayIndex].charactersLen); + dinKeyInfoType_KeyName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 238; + } else if (dinKeyInfoType_KeyValue_currArrayIndex < dinKeyInfoType->KeyValue.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + errn = encode_dinKeyValueType(stream, &dinKeyInfoType->KeyValue.array [dinKeyInfoType_KeyValue_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_RetrievalMethod_currArrayIndex < dinKeyInfoType->RetrievalMethod.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + errn = encode_dinRetrievalMethodType(stream, &dinKeyInfoType->RetrievalMethod.array [dinKeyInfoType_RetrievalMethod_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_X509Data_currArrayIndex < dinKeyInfoType->X509Data.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + errn = encode_dinX509DataType(stream, &dinKeyInfoType->X509Data.array [dinKeyInfoType_X509Data_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_PGPData_currArrayIndex < dinKeyInfoType->PGPData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + errn = encode_dinPGPDataType(stream, &dinKeyInfoType->PGPData.array [dinKeyInfoType_PGPData_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_SPKIData_currArrayIndex < dinKeyInfoType->SPKIData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + errn = encode_dinSPKIDataType(stream, &dinKeyInfoType->SPKIData.array [dinKeyInfoType_SPKIData_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_MgmtData_currArrayIndex < dinKeyInfoType->MgmtData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinKeyInfoType->MgmtData.array[dinKeyInfoType_MgmtData_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinKeyInfoType->MgmtData.array[dinKeyInfoType_MgmtData_currArrayIndex].characters, dinKeyInfoType->MgmtData.array[dinKeyInfoType_MgmtData_currArrayIndex].charactersLen); + dinKeyInfoType_MgmtData_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 238; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 238; + } else if ( dinKeyInfoType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 8); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinKeyInfoType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinKeyInfoType->ANY.characters, dinKeyInfoType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 239; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 238: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (dinKeyInfoType_KeyName_currArrayIndex < dinKeyInfoType->KeyName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinKeyInfoType->KeyName.array[dinKeyInfoType_KeyName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinKeyInfoType->KeyName.array[dinKeyInfoType_KeyName_currArrayIndex].characters, dinKeyInfoType->KeyName.array[dinKeyInfoType_KeyName_currArrayIndex].charactersLen); + dinKeyInfoType_KeyName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 238; + } else if (dinKeyInfoType_KeyValue_currArrayIndex < dinKeyInfoType->KeyValue.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + errn = encode_dinKeyValueType(stream, &dinKeyInfoType->KeyValue.array [dinKeyInfoType_KeyValue_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_RetrievalMethod_currArrayIndex < dinKeyInfoType->RetrievalMethod.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + errn = encode_dinRetrievalMethodType(stream, &dinKeyInfoType->RetrievalMethod.array [dinKeyInfoType_RetrievalMethod_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_X509Data_currArrayIndex < dinKeyInfoType->X509Data.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + errn = encode_dinX509DataType(stream, &dinKeyInfoType->X509Data.array [dinKeyInfoType_X509Data_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_PGPData_currArrayIndex < dinKeyInfoType->PGPData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + errn = encode_dinPGPDataType(stream, &dinKeyInfoType->PGPData.array [dinKeyInfoType_PGPData_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_SPKIData_currArrayIndex < dinKeyInfoType->SPKIData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + errn = encode_dinSPKIDataType(stream, &dinKeyInfoType->SPKIData.array [dinKeyInfoType_SPKIData_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_MgmtData_currArrayIndex < dinKeyInfoType->MgmtData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinKeyInfoType->MgmtData.array[dinKeyInfoType_MgmtData_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinKeyInfoType->MgmtData.array[dinKeyInfoType_MgmtData_currArrayIndex].characters, dinKeyInfoType->MgmtData.array[dinKeyInfoType_MgmtData_currArrayIndex].charactersLen); + dinKeyInfoType_MgmtData_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 238; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 238; + } else if ( dinKeyInfoType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 4, 8); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else if ( dinKeyInfoType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 9); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinKeyInfoType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinKeyInfoType->ANY.characters, dinKeyInfoType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 238; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 239: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if (dinKeyInfoType_KeyName_currArrayIndex < dinKeyInfoType->KeyName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinKeyInfoType->KeyName.array[dinKeyInfoType_KeyName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinKeyInfoType->KeyName.array[dinKeyInfoType_KeyName_currArrayIndex].characters, dinKeyInfoType->KeyName.array[dinKeyInfoType_KeyName_currArrayIndex].charactersLen); + dinKeyInfoType_KeyName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 238; + } else if (dinKeyInfoType_KeyValue_currArrayIndex < dinKeyInfoType->KeyValue.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + errn = encode_dinKeyValueType(stream, &dinKeyInfoType->KeyValue.array [dinKeyInfoType_KeyValue_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_RetrievalMethod_currArrayIndex < dinKeyInfoType->RetrievalMethod.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + errn = encode_dinRetrievalMethodType(stream, &dinKeyInfoType->RetrievalMethod.array [dinKeyInfoType_RetrievalMethod_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_X509Data_currArrayIndex < dinKeyInfoType->X509Data.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + errn = encode_dinX509DataType(stream, &dinKeyInfoType->X509Data.array [dinKeyInfoType_X509Data_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_PGPData_currArrayIndex < dinKeyInfoType->PGPData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + errn = encode_dinPGPDataType(stream, &dinKeyInfoType->PGPData.array [dinKeyInfoType_PGPData_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_SPKIData_currArrayIndex < dinKeyInfoType->SPKIData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + errn = encode_dinSPKIDataType(stream, &dinKeyInfoType->SPKIData.array [dinKeyInfoType_SPKIData_currArrayIndex++]); + } + grammarID = 238; + } else if (dinKeyInfoType_MgmtData_currArrayIndex < dinKeyInfoType->MgmtData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinKeyInfoType->MgmtData.array[dinKeyInfoType_MgmtData_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinKeyInfoType->MgmtData.array[dinKeyInfoType_MgmtData_currArrayIndex].characters, dinKeyInfoType->MgmtData.array[dinKeyInfoType_MgmtData_currArrayIndex].charactersLen); + dinKeyInfoType_MgmtData_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 238; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 238; + } else if ( dinKeyInfoType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 8); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinKeyInfoType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinKeyInfoType->ANY.characters, dinKeyInfoType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 239; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,PaymentDetailsReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ContractID,"urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain)', derivedBy='EXTENSION'. */ +static int encode_dinPaymentDetailsReqType(bitstream_t* stream, struct dinPaymentDetailsReqType* dinPaymentDetailsReqType) { + int grammarID = 240; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 240: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinPaymentDetailsReqType->ContractID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinPaymentDetailsReqType->ContractID.characters, dinPaymentDetailsReqType->ContractID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 241; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 241: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinCertificateChainType(stream, &dinPaymentDetailsReqType->ContractSignatureCertChain ); + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CableCheckResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2010:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */ +static int encode_dinCableCheckResType(bitstream_t* stream, struct dinCableCheckResType* dinCableCheckResType) { + int grammarID = 242; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 242: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, dinCableCheckResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 243; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 243: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinDC_EVSEStatusType(stream, &dinCableCheckResType->DC_EVSEStatus ); + } + grammarID = 17; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 17: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, dinCableCheckResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_dinObjectType(bitstream_t* stream, struct dinObjectType* dinObjectType) { + int grammarID = 244; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 244: + /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( dinObjectType->Encoding_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinObjectType->Encoding.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinObjectType->Encoding.characters, dinObjectType->Encoding.charactersLen); + } + } + grammarID = 245; + } else if ( dinObjectType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinObjectType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinObjectType->Id.characters, dinObjectType->Id.charactersLen); + } + } + grammarID = 246; + } else if ( dinObjectType->MimeType_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinObjectType->MimeType.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinObjectType->MimeType.characters, dinObjectType->MimeType.charactersLen); + } + } + grammarID = 19; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 20; + } else if ( dinObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else if ( dinObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinObjectType->ANY.characters, dinObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 20; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 245: + /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( dinObjectType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinObjectType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinObjectType->Id.characters, dinObjectType->Id.charactersLen); + } + } + grammarID = 246; + } else if ( dinObjectType->MimeType_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinObjectType->MimeType.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinObjectType->MimeType.characters, dinObjectType->MimeType.charactersLen); + } + } + grammarID = 19; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 20; + } else if ( dinObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else if ( dinObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinObjectType->ANY.characters, dinObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 20; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 246: + /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( dinObjectType->MimeType_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinObjectType->MimeType.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinObjectType->MimeType.characters, dinObjectType->MimeType.charactersLen); + } + } + grammarID = 19; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 20; + } else if ( dinObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else if ( dinObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinObjectType->ANY.characters, dinObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 20; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 19: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 20; + } else if ( dinObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else if ( dinObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinObjectType->ANY.characters, dinObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 20; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 20: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 20; + } else if ( dinObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else if ( dinObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinObjectType->ANY.characters, dinObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 20; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,SessionStopResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */ +static int encode_dinSessionStopResType(bitstream_t* stream, struct dinSessionStopResType* dinSessionStopResType) { + int grammarID = 223; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 223: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, dinSessionStopResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinSignedInfoType(bitstream_t* stream, struct dinSignedInfoType* dinSignedInfoType) { + int grammarID = 247; + int done = 0; + + unsigned int dinSignedInfoType_Reference_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 247: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ + if ( dinSignedInfoType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSignedInfoType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinSignedInfoType->Id.characters, dinSignedInfoType->Id.charactersLen); + } + } + grammarID = 248; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinCanonicalizationMethodType(stream, &dinSignedInfoType->CanonicalizationMethod ); + } + grammarID = 249; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 248: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinCanonicalizationMethodType(stream, &dinSignedInfoType->CanonicalizationMethod ); + } + grammarID = 249; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 249: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinSignatureMethodType(stream, &dinSignedInfoType->SignatureMethod ); + } + grammarID = 250; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 250: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + if (dinSignedInfoType_Reference_currArrayIndex < dinSignedInfoType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinReferenceType(stream, &dinSignedInfoType->Reference.array [dinSignedInfoType_Reference_currArrayIndex++]); + } + grammarID = 203; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 203: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ + if (dinSignedInfoType_Reference_currArrayIndex < dinSignedInfoType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinReferenceType(stream, &dinSignedInfoType->Reference.array [dinSignedInfoType_Reference_currArrayIndex++]); + } + grammarID = 203; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SalesTariffType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":SalesTariffID,"urn:iso:15118:2:2010:MsgDataTypes":SalesTariffDescription{0-1},"urn:iso:15118:2:2010:MsgDataTypes":NumEPriceLevels,"urn:iso:15118:2:2010:MsgDataTypes":SalesTariffEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinSalesTariffType(bitstream_t* stream, struct dinSalesTariffType* dinSalesTariffType) { + int grammarID = 251; + int done = 0; + + unsigned int dinSalesTariffType_SalesTariffEntry_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 251: + /* FirstStartTag[ATTRIBUTE[STRING](Id)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSalesTariffType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinSalesTariffType->Id.characters, dinSalesTariffType->Id.charactersLen); + } + } + grammarID = 252; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 252: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, dinSalesTariffType->SalesTariffID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 253; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 253: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels)] */ + if ( dinSalesTariffType->SalesTariffDescription_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSalesTariffType->SalesTariffDescription.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinSalesTariffType->SalesTariffDescription.characters, dinSalesTariffType->SalesTariffDescription.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 254; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(dinSalesTariffType->NumEPriceLevels - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 255; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 254: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(dinSalesTariffType->NumEPriceLevels - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 255; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 255: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry)] */ + if (dinSalesTariffType_SalesTariffEntry_currArrayIndex < dinSalesTariffType->SalesTariffEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinSalesTariffEntryType(stream, &dinSalesTariffType->SalesTariffEntry.array [dinSalesTariffType_SalesTariffEntry_currArrayIndex++]); + } + grammarID = 256; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 256: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */ + if (dinSalesTariffType_SalesTariffEntry_currArrayIndex < dinSalesTariffType->SalesTariffEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinSalesTariffEntryType(stream, &dinSalesTariffType->SalesTariffEntry.array [dinSalesTariffType_SalesTariffEntry_currArrayIndex++]); + } + grammarID = 256; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,CostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":costKind,"urn:iso:15118:2:2010:MsgDataTypes":amount,"urn:iso:15118:2:2010:MsgDataTypes":amountMultiplier{0-1})', derivedBy='RESTRICTION'. */ +static int encode_dinCostType(bitstream_t* stream, struct dinCostType* dinCostType) { + int grammarID = 257; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 257: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}costKind)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, dinCostType->costKind); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 258; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 258: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amount)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, dinCostType->amount); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 259; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 259: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amountMultiplier), END_ELEMENT] */ + if ( dinCostType->amountMultiplier_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, (uint32_t)(dinCostType->amountMultiplier + 3)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,ServiceChargeType', base type name='ServiceType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2010:MsgDataTypes":ServiceTag,"urn:iso:15118:2:2010:MsgDataTypes":FreeService),("urn:iso:15118:2:2010:MsgDataTypes":EnergyTransferType))', derivedBy='EXTENSION'. */ +static int encode_dinServiceChargeType(bitstream_t* stream, struct dinServiceChargeType* dinServiceChargeType) { + int grammarID = 260; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 260: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinServiceTagType(stream, &dinServiceChargeType->ServiceTag ); + } + grammarID = 261; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 261: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, dinServiceChargeType->FreeService); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 262; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 262: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 4, dinServiceChargeType->EnergyTransferType); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2010:MsgDataTypes":EVSEStatusCode,"urn:iso:15118:2:2010:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2010:MsgDataTypes":EVSENotification)', derivedBy='EXTENSION'. */ +static int encode_dinDC_EVSEStatusType(bitstream_t* stream, struct dinDC_EVSEStatusType* dinDC_EVSEStatusType) { + int grammarID = 263; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 263: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode)] */ + if ( dinDC_EVSEStatusType->EVSEIsolationStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, dinDC_EVSEStatusType->EVSEIsolationStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 264; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 4, dinDC_EVSEStatusType->EVSEStatusCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 218; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 264: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 4, dinDC_EVSEStatusType->EVSEStatusCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 218; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 218: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, dinDC_EVSEStatusType->NotificationMaxDelay); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 219; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 219: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, dinDC_EVSEStatusType->EVSENotification); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */ +static int encode_dinRetrievalMethodType(bitstream_t* stream, struct dinRetrievalMethodType* dinRetrievalMethodType) { + int grammarID = 265; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 265: + /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + if ( dinRetrievalMethodType->Type_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinRetrievalMethodType->Type.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinRetrievalMethodType->Type.characters, dinRetrievalMethodType->Type.charactersLen); + } + } + grammarID = 266; + } else if ( dinRetrievalMethodType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinRetrievalMethodType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinRetrievalMethodType->URI.characters, dinRetrievalMethodType->URI.charactersLen); + } + } + grammarID = 267; + } else if ( dinRetrievalMethodType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_dinTransformsType(stream, &dinRetrievalMethodType->Transforms ); + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 266: + /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + if ( dinRetrievalMethodType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinRetrievalMethodType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinRetrievalMethodType->URI.characters, dinRetrievalMethodType->URI.charactersLen); + } + } + grammarID = 267; + } else if ( dinRetrievalMethodType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_dinTransformsType(stream, &dinRetrievalMethodType->Transforms ); + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 267: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + if ( dinRetrievalMethodType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_dinTransformsType(stream, &dinRetrievalMethodType->Transforms ); + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,NotificationType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":FaultCode,"urn:iso:15118:2:2010:MsgDataTypes":FaultMsg{0-1})', derivedBy='RESTRICTION'. */ +static int encode_dinNotificationType(bitstream_t* stream, struct dinNotificationType* dinNotificationType) { + int grammarID = 268; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 268: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, dinNotificationType->FaultCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 269; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 269: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), END_ELEMENT] */ + if ( dinNotificationType->FaultMsg_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinNotificationType->FaultMsg.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinNotificationType->FaultMsg.characters, dinNotificationType->FaultMsg.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */ +static int encode_dinPGPDataType(bitstream_t* stream, struct dinPGPDataType* dinPGPDataType) { + int grammarID = 270; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 270: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */ + if ( dinPGPDataType->PGPKeyID_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinPGPDataType->PGPKeyID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinPGPDataType->PGPKeyID.bytes, dinPGPDataType->PGPKeyID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 271; + } else if ( dinPGPDataType->PGPKeyPacket_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinPGPDataType->PGPKeyPacket.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinPGPDataType->PGPKeyPacket.bytes, dinPGPDataType->PGPKeyPacket.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 272; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 271: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */ + if ( dinPGPDataType->PGPKeyPacket_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinPGPDataType->PGPKeyPacket.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinPGPDataType->PGPKeyPacket.bytes, dinPGPDataType->PGPKeyPacket.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 272; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 272; + } else if ( dinPGPDataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 272: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 272; + } else if ( dinPGPDataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgBody,CertificateInstallationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgBody":ResponseCode,"urn:iso:15118:2:2010:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2010:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2010:MsgBody":DHParams,"urn:iso:15118:2:2010:MsgBody":ContractID)', derivedBy='EXTENSION'. */ +static int encode_dinCertificateInstallationResType(bitstream_t* stream, struct dinCertificateInstallationResType* dinCertificateInstallationResType) { + int grammarID = 273; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 273: + /* FirstStartTag[ATTRIBUTE[STRING](Id)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCertificateInstallationResType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinCertificateInstallationResType->Id.characters, dinCertificateInstallationResType->Id.charactersLen); + } + } + grammarID = 274; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 274: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, dinCertificateInstallationResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 275; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 275: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_dinCertificateChainType(stream, &dinCertificateInstallationResType->ContractSignatureCertChain ); + } + grammarID = 276; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 276: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCertificateInstallationResType->ContractSignatureEncryptedPrivateKey.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinCertificateInstallationResType->ContractSignatureEncryptedPrivateKey.bytes, dinCertificateInstallationResType->ContractSignatureEncryptedPrivateKey.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 277; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 277: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCertificateInstallationResType->DHParams.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinCertificateInstallationResType->DHParams.bytes, dinCertificateInstallationResType->DHParams.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 278; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 278: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinCertificateInstallationResType->ContractID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinCertificateInstallationResType->ContractID.characters, dinCertificateInstallationResType->ContractID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_dinSignaturePropertyType(bitstream_t* stream, struct dinSignaturePropertyType* dinSignaturePropertyType) { + int grammarID = 279; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 279: + /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */ + if ( dinSignaturePropertyType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSignaturePropertyType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinSignaturePropertyType->Id.characters, dinSignaturePropertyType->Id.charactersLen); + } + } + grammarID = 280; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSignaturePropertyType->Target.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinSignaturePropertyType->Target.characters, dinSignaturePropertyType->Target.charactersLen); + } + } + grammarID = 281; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 280: + /* StartTag[ATTRIBUTE[STRING](Target)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSignaturePropertyType->Target.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinSignaturePropertyType->Target.characters, dinSignaturePropertyType->Target.charactersLen); + } + } + grammarID = 281; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 281: + /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 20; + } else if ( dinSignaturePropertyType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSignaturePropertyType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinSignaturePropertyType->ANY.characters, dinSignaturePropertyType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 282; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 20: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 20; + } else if ( dinSignaturePropertyType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else if ( dinSignaturePropertyType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSignaturePropertyType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinSignaturePropertyType->ANY.characters, dinSignaturePropertyType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 20; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 282: + /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 20; + } else if ( dinSignaturePropertyType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSignaturePropertyType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinSignaturePropertyType->ANY.characters, dinSignaturePropertyType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 282; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":MeterID,"urn:iso:15118:2:2010:MsgDataTypes":MeterReading{0-1},"urn:iso:15118:2:2010:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2010:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2010:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ +static int encode_dinMeterInfoType(bitstream_t* stream, struct dinMeterInfoType* dinMeterInfoType) { + int grammarID = 283; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 283: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinMeterInfoType->MeterID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, dinMeterInfoType->MeterID.characters, dinMeterInfoType->MeterID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 284; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 284: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ + if ( dinMeterInfoType->MeterReading_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &dinMeterInfoType->MeterReading ); + } + grammarID = 285; + } else if ( dinMeterInfoType->SigMeterReading_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinMeterInfoType->SigMeterReading.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinMeterInfoType->SigMeterReading.bytes, dinMeterInfoType->SigMeterReading.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 286; + } else if ( dinMeterInfoType->MeterStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, dinMeterInfoType->MeterStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 287; + } else if ( dinMeterInfoType->TMeter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, dinMeterInfoType->TMeter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 285: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ + if ( dinMeterInfoType->SigMeterReading_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinMeterInfoType->SigMeterReading.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinMeterInfoType->SigMeterReading.bytes, dinMeterInfoType->SigMeterReading.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 286; + } else if ( dinMeterInfoType->MeterStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, dinMeterInfoType->MeterStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 287; + } else if ( dinMeterInfoType->TMeter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, dinMeterInfoType->TMeter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 286: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ + if ( dinMeterInfoType->MeterStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, dinMeterInfoType->MeterStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 287; + } else if ( dinMeterInfoType->TMeter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, dinMeterInfoType->TMeter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 287: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ + if ( dinMeterInfoType->TMeter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, dinMeterInfoType->TMeter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 4; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 4: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2010:MsgDataTypes,SubCertificatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2010:MsgDataTypes":Certificate{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_dinSubCertificatesType(bitstream_t* stream, struct dinSubCertificatesType* dinSubCertificatesType) { + int grammarID = 288; + int done = 0; + + unsigned int dinSubCertificatesType_Certificate_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 288: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ + if (dinSubCertificatesType_Certificate_currArrayIndex < dinSubCertificatesType->Certificate.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSubCertificatesType->Certificate.array[dinSubCertificatesType_Certificate_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinSubCertificatesType->Certificate.array[dinSubCertificatesType_Certificate_currArrayIndex].bytes, dinSubCertificatesType->Certificate.array[dinSubCertificatesType_Certificate_currArrayIndex].bytesLen); + dinSubCertificatesType_Certificate_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 289; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 289: + /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate), END_ELEMENT] */ + if (dinSubCertificatesType_Certificate_currArrayIndex < dinSubCertificatesType->Certificate.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(dinSubCertificatesType->Certificate.array[dinSubCertificatesType_Certificate_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, dinSubCertificatesType->Certificate.array[dinSubCertificatesType_Certificate_currArrayIndex].bytes, dinSubCertificatesType->Certificate.array[dinSubCertificatesType_Certificate_currArrayIndex].bytesLen); + dinSubCertificatesType_Certificate_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 289; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 5; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + + + +int encode_dinExiDocument(bitstream_t* stream, struct dinEXIDocument* exiDoc) { + errn = writeEXIHeader(stream); + + if(errn == 0) { + /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] */ + if ( exiDoc->AC_EVChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 0); + if(errn == 0) { + errn = encode_dinAC_EVChargeParameterType(stream, &exiDoc->AC_EVChargeParameter ); + } + } else if ( exiDoc->AC_EVSEChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 1); + if(errn == 0) { + errn = encode_dinAC_EVSEChargeParameterType(stream, &exiDoc->AC_EVSEChargeParameter ); + } + } else if ( exiDoc->AC_EVSEStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus) */ + errn = encodeNBitUnsignedInteger(stream, 7, 2); + if(errn == 0) { + errn = encode_dinAC_EVSEStatusType(stream, &exiDoc->AC_EVSEStatus ); + } + } else if ( exiDoc->BodyElement_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement) */ + errn = encodeNBitUnsignedInteger(stream, 7, 3); + if(errn == 0) { + errn = encode_dinBodyBaseType(stream, &exiDoc->BodyElement ); + } + } else if ( exiDoc->CableCheckReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 4); + if(errn == 0) { + errn = encode_dinCableCheckReqType(stream, &exiDoc->CableCheckReq ); + } + } else if ( exiDoc->CableCheckRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 5); + if(errn == 0) { + errn = encode_dinCableCheckResType(stream, &exiDoc->CableCheckRes ); + } + } else if ( exiDoc->CanonicalizationMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */ + errn = encodeNBitUnsignedInteger(stream, 7, 6); + if(errn == 0) { + errn = encode_dinCanonicalizationMethodType(stream, &exiDoc->CanonicalizationMethod ); + } + } else if ( exiDoc->CertificateInstallationReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 7); + if(errn == 0) { + errn = encode_dinCertificateInstallationReqType(stream, &exiDoc->CertificateInstallationReq ); + } + } else if ( exiDoc->CertificateInstallationRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 8); + if(errn == 0) { + errn = encode_dinCertificateInstallationResType(stream, &exiDoc->CertificateInstallationRes ); + } + } else if ( exiDoc->CertificateUpdateReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 9); + if(errn == 0) { + errn = encode_dinCertificateUpdateReqType(stream, &exiDoc->CertificateUpdateReq ); + } + } else if ( exiDoc->CertificateUpdateRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 10); + if(errn == 0) { + errn = encode_dinCertificateUpdateResType(stream, &exiDoc->CertificateUpdateRes ); + } + } else if ( exiDoc->ChargeParameterDiscoveryReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 11); + if(errn == 0) { + errn = encode_dinChargeParameterDiscoveryReqType(stream, &exiDoc->ChargeParameterDiscoveryReq ); + } + } else if ( exiDoc->ChargeParameterDiscoveryRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 12); + if(errn == 0) { + errn = encode_dinChargeParameterDiscoveryResType(stream, &exiDoc->ChargeParameterDiscoveryRes ); + } + } else if ( exiDoc->ChargingStatusReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 13); + if(errn == 0) { + errn = encode_dinChargingStatusReqType(stream, &exiDoc->ChargingStatusReq ); + } + } else if ( exiDoc->ChargingStatusRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 14); + if(errn == 0) { + errn = encode_dinChargingStatusResType(stream, &exiDoc->ChargingStatusRes ); + } + } else if ( exiDoc->ContractAuthenticationReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 15); + if(errn == 0) { + errn = encode_dinContractAuthenticationReqType(stream, &exiDoc->ContractAuthenticationReq ); + } + } else if ( exiDoc->ContractAuthenticationRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 16); + if(errn == 0) { + errn = encode_dinContractAuthenticationResType(stream, &exiDoc->ContractAuthenticationRes ); + } + } else if ( exiDoc->CurrentDemandReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 17); + if(errn == 0) { + errn = encode_dinCurrentDemandReqType(stream, &exiDoc->CurrentDemandReq ); + } + } else if ( exiDoc->CurrentDemandRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 18); + if(errn == 0) { + errn = encode_dinCurrentDemandResType(stream, &exiDoc->CurrentDemandRes ); + } + } else if ( exiDoc->DC_EVChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 19); + if(errn == 0) { + errn = encode_dinDC_EVChargeParameterType(stream, &exiDoc->DC_EVChargeParameter ); + } + } else if ( exiDoc->DC_EVPowerDeliveryParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 20); + if(errn == 0) { + errn = encode_dinDC_EVPowerDeliveryParameterType(stream, &exiDoc->DC_EVPowerDeliveryParameter ); + } + } else if ( exiDoc->DC_EVSEChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 21); + if(errn == 0) { + errn = encode_dinDC_EVSEChargeParameterType(stream, &exiDoc->DC_EVSEChargeParameter ); + } + } else if ( exiDoc->DC_EVSEStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus) */ + errn = encodeNBitUnsignedInteger(stream, 7, 22); + if(errn == 0) { + errn = encode_dinDC_EVSEStatusType(stream, &exiDoc->DC_EVSEStatus ); + } + } else if ( exiDoc->DC_EVStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus) */ + errn = encodeNBitUnsignedInteger(stream, 7, 23); + if(errn == 0) { + errn = encode_dinDC_EVStatusType(stream, &exiDoc->DC_EVStatus ); + } + } else if ( exiDoc->DSAKeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 7, 24); + if(errn == 0) { + errn = encode_dinDSAKeyValueType(stream, &exiDoc->DSAKeyValue ); + } + } else if ( exiDoc->DigestMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */ + errn = encodeNBitUnsignedInteger(stream, 7, 25); + if(errn == 0) { + errn = encode_dinDigestMethodType(stream, &exiDoc->DigestMethod ); + } + } else if ( exiDoc->DigestValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */ + errn = encodeNBitUnsignedInteger(stream, 7, 26); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiDoc->DigestValue.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiDoc->DigestValue.bytes, exiDoc->DigestValue.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiDoc->EVChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 27); + if(errn == 0) { + errn = encode_dinEVChargeParameterType(stream, &exiDoc->EVChargeParameter ); + } + } else if ( exiDoc->EVPowerDeliveryParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 28); + if(errn == 0) { + errn = encode_dinEVPowerDeliveryParameterType(stream, &exiDoc->EVPowerDeliveryParameter ); + } + } else if ( exiDoc->EVSEChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 29); + if(errn == 0) { + errn = encode_dinEVSEChargeParameterType(stream, &exiDoc->EVSEChargeParameter ); + } + } else if ( exiDoc->EVSEStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus) */ + errn = encodeNBitUnsignedInteger(stream, 7, 30); + if(errn == 0) { + errn = encode_dinEVSEStatusType(stream, &exiDoc->EVSEStatus ); + } + } else if ( exiDoc->EVStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVStatus) */ + errn = encodeNBitUnsignedInteger(stream, 7, 31); + if(errn == 0) { + errn = encode_dinEVStatusType(stream, &exiDoc->EVStatus ); + } + } else if ( exiDoc->Entry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Entry) */ + errn = encodeNBitUnsignedInteger(stream, 7, 32); + if(errn == 0) { + errn = encode_dinEntryType(stream, &exiDoc->Entry ); + } + } else if ( exiDoc->KeyInfo_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */ + errn = encodeNBitUnsignedInteger(stream, 7, 33); + if(errn == 0) { + errn = encode_dinKeyInfoType(stream, &exiDoc->KeyInfo ); + } + } else if ( exiDoc->KeyName_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */ + errn = encodeNBitUnsignedInteger(stream, 7, 34); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiDoc->KeyName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiDoc->KeyName.characters, exiDoc->KeyName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiDoc->KeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 7, 35); + if(errn == 0) { + errn = encode_dinKeyValueType(stream, &exiDoc->KeyValue ); + } + } else if ( exiDoc->Manifest_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */ + errn = encodeNBitUnsignedInteger(stream, 7, 36); + if(errn == 0) { + errn = encode_dinManifestType(stream, &exiDoc->Manifest ); + } + } else if ( exiDoc->MeteringReceiptReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 37); + if(errn == 0) { + errn = encode_dinMeteringReceiptReqType(stream, &exiDoc->MeteringReceiptReq ); + } + } else if ( exiDoc->MeteringReceiptRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 38); + if(errn == 0) { + errn = encode_dinMeteringReceiptResType(stream, &exiDoc->MeteringReceiptRes ); + } + } else if ( exiDoc->MgmtData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */ + errn = encodeNBitUnsignedInteger(stream, 7, 39); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiDoc->MgmtData.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiDoc->MgmtData.characters, exiDoc->MgmtData.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiDoc->Object_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */ + errn = encodeNBitUnsignedInteger(stream, 7, 40); + if(errn == 0) { + errn = encode_dinObjectType(stream, &exiDoc->Object ); + } + } else if ( exiDoc->PGPData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */ + errn = encodeNBitUnsignedInteger(stream, 7, 41); + if(errn == 0) { + errn = encode_dinPGPDataType(stream, &exiDoc->PGPData ); + } + } else if ( exiDoc->PMaxScheduleEntry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry) */ + errn = encodeNBitUnsignedInteger(stream, 7, 42); + if(errn == 0) { + errn = encode_dinPMaxScheduleEntryType(stream, &exiDoc->PMaxScheduleEntry ); + } + } else if ( exiDoc->PaymentDetailsReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 43); + if(errn == 0) { + errn = encode_dinPaymentDetailsReqType(stream, &exiDoc->PaymentDetailsReq ); + } + } else if ( exiDoc->PaymentDetailsRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 44); + if(errn == 0) { + errn = encode_dinPaymentDetailsResType(stream, &exiDoc->PaymentDetailsRes ); + } + } else if ( exiDoc->PowerDeliveryReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 45); + if(errn == 0) { + errn = encode_dinPowerDeliveryReqType(stream, &exiDoc->PowerDeliveryReq ); + } + } else if ( exiDoc->PowerDeliveryRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 46); + if(errn == 0) { + errn = encode_dinPowerDeliveryResType(stream, &exiDoc->PowerDeliveryRes ); + } + } else if ( exiDoc->PreChargeReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 47); + if(errn == 0) { + errn = encode_dinPreChargeReqType(stream, &exiDoc->PreChargeReq ); + } + } else if ( exiDoc->PreChargeRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 48); + if(errn == 0) { + errn = encode_dinPreChargeResType(stream, &exiDoc->PreChargeRes ); + } + } else if ( exiDoc->RSAKeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 7, 49); + if(errn == 0) { + errn = encode_dinRSAKeyValueType(stream, &exiDoc->RSAKeyValue ); + } + } else if ( exiDoc->Reference_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */ + errn = encodeNBitUnsignedInteger(stream, 7, 50); + if(errn == 0) { + errn = encode_dinReferenceType(stream, &exiDoc->Reference ); + } + } else if ( exiDoc->RelativeTimeInterval_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval) */ + errn = encodeNBitUnsignedInteger(stream, 7, 51); + if(errn == 0) { + errn = encode_dinRelativeTimeIntervalType(stream, &exiDoc->RelativeTimeInterval ); + } + } else if ( exiDoc->RetrievalMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */ + errn = encodeNBitUnsignedInteger(stream, 7, 52); + if(errn == 0) { + errn = encode_dinRetrievalMethodType(stream, &exiDoc->RetrievalMethod ); + } + } else if ( exiDoc->SAScheduleList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList) */ + errn = encodeNBitUnsignedInteger(stream, 7, 53); + if(errn == 0) { + errn = encode_dinSAScheduleListType(stream, &exiDoc->SAScheduleList ); + } + } else if ( exiDoc->SASchedules_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules) */ + errn = encodeNBitUnsignedInteger(stream, 7, 54); + if(errn == 0) { + errn = encode_dinSASchedulesType(stream, &exiDoc->SASchedules ); + } + } else if ( exiDoc->SPKIData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */ + errn = encodeNBitUnsignedInteger(stream, 7, 55); + if(errn == 0) { + errn = encode_dinSPKIDataType(stream, &exiDoc->SPKIData ); + } + } else if ( exiDoc->SalesTariffEntry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry) */ + errn = encodeNBitUnsignedInteger(stream, 7, 56); + if(errn == 0) { + errn = encode_dinSalesTariffEntryType(stream, &exiDoc->SalesTariffEntry ); + } + } else if ( exiDoc->ServiceCharge_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge) */ + errn = encodeNBitUnsignedInteger(stream, 7, 57); + if(errn == 0) { + errn = encode_dinServiceChargeType(stream, &exiDoc->ServiceCharge ); + } + } else if ( exiDoc->ServiceDetailReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 58); + if(errn == 0) { + errn = encode_dinServiceDetailReqType(stream, &exiDoc->ServiceDetailReq ); + } + } else if ( exiDoc->ServiceDetailRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 59); + if(errn == 0) { + errn = encode_dinServiceDetailResType(stream, &exiDoc->ServiceDetailRes ); + } + } else if ( exiDoc->ServiceDiscoveryReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 60); + if(errn == 0) { + errn = encode_dinServiceDiscoveryReqType(stream, &exiDoc->ServiceDiscoveryReq ); + } + } else if ( exiDoc->ServiceDiscoveryRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 61); + if(errn == 0) { + errn = encode_dinServiceDiscoveryResType(stream, &exiDoc->ServiceDiscoveryRes ); + } + } else if ( exiDoc->ServicePaymentSelectionReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 62); + if(errn == 0) { + errn = encode_dinServicePaymentSelectionReqType(stream, &exiDoc->ServicePaymentSelectionReq ); + } + } else if ( exiDoc->ServicePaymentSelectionRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 63); + if(errn == 0) { + errn = encode_dinServicePaymentSelectionResType(stream, &exiDoc->ServicePaymentSelectionRes ); + } + } else if ( exiDoc->SessionSetupReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 64); + if(errn == 0) { + errn = encode_dinSessionSetupReqType(stream, &exiDoc->SessionSetupReq ); + } + } else if ( exiDoc->SessionSetupRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 65); + if(errn == 0) { + errn = encode_dinSessionSetupResType(stream, &exiDoc->SessionSetupRes ); + } + } else if ( exiDoc->SessionStopReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 66); + if(errn == 0) { + errn = encode_dinSessionStopType(stream, &exiDoc->SessionStopReq ); + } + } else if ( exiDoc->SessionStopRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 67); + if(errn == 0) { + errn = encode_dinSessionStopResType(stream, &exiDoc->SessionStopRes ); + } + } else if ( exiDoc->Signature_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */ + errn = encodeNBitUnsignedInteger(stream, 7, 68); + if(errn == 0) { + errn = encode_dinSignatureType(stream, &exiDoc->Signature ); + } + } else if ( exiDoc->SignatureMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */ + errn = encodeNBitUnsignedInteger(stream, 7, 69); + if(errn == 0) { + errn = encode_dinSignatureMethodType(stream, &exiDoc->SignatureMethod ); + } + } else if ( exiDoc->SignatureProperties_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */ + errn = encodeNBitUnsignedInteger(stream, 7, 70); + if(errn == 0) { + errn = encode_dinSignaturePropertiesType(stream, &exiDoc->SignatureProperties ); + } + } else if ( exiDoc->SignatureProperty_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */ + errn = encodeNBitUnsignedInteger(stream, 7, 71); + if(errn == 0) { + errn = encode_dinSignaturePropertyType(stream, &exiDoc->SignatureProperty ); + } + } else if ( exiDoc->SignatureValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */ + errn = encodeNBitUnsignedInteger(stream, 7, 72); + if(errn == 0) { + errn = encode_dinSignatureValueType(stream, &exiDoc->SignatureValue ); + } + } else if ( exiDoc->SignedInfo_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */ + errn = encodeNBitUnsignedInteger(stream, 7, 73); + if(errn == 0) { + errn = encode_dinSignedInfoType(stream, &exiDoc->SignedInfo ); + } + } else if ( exiDoc->TimeInterval_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval) */ + errn = encodeNBitUnsignedInteger(stream, 7, 74); + if(errn == 0) { + errn = encode_dinIntervalType(stream, &exiDoc->TimeInterval ); + } + } else if ( exiDoc->Transform_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */ + errn = encodeNBitUnsignedInteger(stream, 7, 75); + if(errn == 0) { + errn = encode_dinTransformType(stream, &exiDoc->Transform ); + } + } else if ( exiDoc->Transforms_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */ + errn = encodeNBitUnsignedInteger(stream, 7, 76); + if(errn == 0) { + errn = encode_dinTransformsType(stream, &exiDoc->Transforms ); + } + } else if ( exiDoc->V2G_Message_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}V2G_Message) */ + errn = encodeNBitUnsignedInteger(stream, 7, 77); + if(errn == 0) { + errn = encode_dinAnonType_V2G_Message(stream, &exiDoc->V2G_Message ); + } + } else if ( exiDoc->WeldingDetectionReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 78); + if(errn == 0) { + errn = encode_dinWeldingDetectionReqType(stream, &exiDoc->WeldingDetectionReq ); + } + } else if ( exiDoc->WeldingDetectionRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 79); + if(errn == 0) { + errn = encode_dinWeldingDetectionResType(stream, &exiDoc->WeldingDetectionRes ); + } + } else if ( exiDoc->X509Data_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */ + errn = encodeNBitUnsignedInteger(stream, 7, 80); + if(errn == 0) { + errn = encode_dinX509DataType(stream, &exiDoc->X509Data ); + } + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + + } + + if(errn == 0) { + /* flush any pending bits */ + errn = encodeFinish(stream); + } + + return errn; +} + +#if DEPLOY_DIN_CODEC_FRAGMENT == SUPPORT_YES +int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) { + errn = writeEXIHeader(stream); + + if(errn == 0) { + /* FragmentContent[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVCabinConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentOptions), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReadyToChargeState), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_DOCUMENT] */ + if ( exiFrag->AC_EVChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 0); + if(errn == 0) { + errn = encode_dinAC_EVChargeParameterType(stream, &exiFrag->AC_EVChargeParameter ); + } + } else if ( exiFrag->AC_EVSEChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 1); + if(errn == 0) { + errn = encode_dinAC_EVSEChargeParameterType(stream, &exiFrag->AC_EVSEChargeParameter ); + } + } else if ( exiFrag->AC_EVSEStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 2); + if(errn == 0) { + errn = encode_dinAC_EVSEStatusType(stream, &exiFrag->AC_EVSEStatus ); + } + } else if ( exiFrag->AC_EVSEStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 3); + if(errn == 0) { + errn = encode_dinAC_EVSEStatusType(stream, &exiFrag->AC_EVSEStatus ); + } + } else if ( exiFrag->Body_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body) */ + errn = encodeNBitUnsignedInteger(stream, 8, 4); + if(errn == 0) { + errn = encode_dinBodyType(stream, &exiFrag->Body ); + } + } else if ( exiFrag->BodyElement_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement) */ + errn = encodeNBitUnsignedInteger(stream, 8, 5); + if(errn == 0) { + errn = encode_dinBodyBaseType(stream, &exiFrag->BodyElement ); + } + } else if ( exiFrag->BulkChargingComplete_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete) */ + errn = encodeNBitUnsignedInteger(stream, 8, 6); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->BulkChargingComplete_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete) */ + errn = encodeNBitUnsignedInteger(stream, 8, 7); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->BulkSOC_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC) */ + errn = encodeNBitUnsignedInteger(stream, 8, 8); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(exiFrag->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->CableCheckReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 9); + if(errn == 0) { + errn = encode_dinCableCheckReqType(stream, &exiFrag->CableCheckReq ); + } + } else if ( exiFrag->CableCheckRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 10); + if(errn == 0) { + errn = encode_dinCableCheckResType(stream, &exiFrag->CableCheckRes ); + } + } else if ( exiFrag->CanonicalizationMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */ + errn = encodeNBitUnsignedInteger(stream, 8, 11); + if(errn == 0) { + errn = encode_dinCanonicalizationMethodType(stream, &exiFrag->CanonicalizationMethod ); + } + } else if ( exiFrag->Certificate_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate) */ + errn = encodeNBitUnsignedInteger(stream, 8, 12); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Certificate.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Certificate.bytes, exiFrag->Certificate.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->CertificateInstallationReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 13); + if(errn == 0) { + errn = encode_dinCertificateInstallationReqType(stream, &exiFrag->CertificateInstallationReq ); + } + } else if ( exiFrag->CertificateInstallationRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 14); + if(errn == 0) { + errn = encode_dinCertificateInstallationResType(stream, &exiFrag->CertificateInstallationRes ); + } + } else if ( exiFrag->CertificateUpdateReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 15); + if(errn == 0) { + errn = encode_dinCertificateUpdateReqType(stream, &exiFrag->CertificateUpdateReq ); + } + } else if ( exiFrag->CertificateUpdateRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 16); + if(errn == 0) { + errn = encode_dinCertificateUpdateResType(stream, &exiFrag->CertificateUpdateRes ); + } + } else if ( exiFrag->ChargeParameterDiscoveryReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 17); + if(errn == 0) { + errn = encode_dinChargeParameterDiscoveryReqType(stream, &exiFrag->ChargeParameterDiscoveryReq ); + } + } else if ( exiFrag->ChargeParameterDiscoveryRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 18); + if(errn == 0) { + errn = encode_dinChargeParameterDiscoveryResType(stream, &exiFrag->ChargeParameterDiscoveryRes ); + } + } else if ( exiFrag->ChargeService_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeService) */ + errn = encodeNBitUnsignedInteger(stream, 8, 19); + if(errn == 0) { + errn = encode_dinServiceChargeType(stream, &exiFrag->ChargeService ); + } + } else if ( exiFrag->ChargingComplete_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete) */ + errn = encodeNBitUnsignedInteger(stream, 8, 20); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ChargingComplete_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete) */ + errn = encodeNBitUnsignedInteger(stream, 8, 21); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ChargingProfile_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile) */ + errn = encodeNBitUnsignedInteger(stream, 8, 22); + if(errn == 0) { + errn = encode_dinChargingProfileType(stream, &exiFrag->ChargingProfile ); + } + } else if ( exiFrag->ChargingProfileEntryMaxPower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower) */ + errn = encodeNBitUnsignedInteger(stream, 8, 23); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->ChargingProfileEntryMaxPower); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ChargingProfileEntryStart_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart) */ + errn = encodeNBitUnsignedInteger(stream, 8, 24); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, exiFrag->ChargingProfileEntryStart); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ChargingStatusReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 25); + if(errn == 0) { + errn = encode_dinChargingStatusReqType(stream, &exiFrag->ChargingStatusReq ); + } + } else if ( exiFrag->ChargingStatusRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 26); + if(errn == 0) { + errn = encode_dinChargingStatusResType(stream, &exiFrag->ChargingStatusRes ); + } + } else if ( exiFrag->ConsumptionCost_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConsumptionCost) */ + errn = encodeNBitUnsignedInteger(stream, 8, 27); + if(errn == 0) { + errn = encode_dinConsumptionCostType(stream, &exiFrag->ConsumptionCost ); + } + } else if ( exiFrag->ContractAuthenticationReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 28); + if(errn == 0) { + errn = encode_dinContractAuthenticationReqType(stream, &exiFrag->ContractAuthenticationReq ); + } + } else if ( exiFrag->ContractAuthenticationRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 29); + if(errn == 0) { + errn = encode_dinContractAuthenticationResType(stream, &exiFrag->ContractAuthenticationRes ); + } + } else if ( exiFrag->ContractID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 30); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->ContractID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->ContractID.characters, exiFrag->ContractID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ContractSignatureCertChain_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain) */ + errn = encodeNBitUnsignedInteger(stream, 8, 31); + if(errn == 0) { + errn = encode_dinCertificateChainType(stream, &exiFrag->ContractSignatureCertChain ); + } + } else if ( exiFrag->ContractSignatureEncryptedPrivateKey_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey) */ + errn = encodeNBitUnsignedInteger(stream, 8, 32); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->ContractSignatureEncryptedPrivateKey.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->ContractSignatureEncryptedPrivateKey.bytes, exiFrag->ContractSignatureEncryptedPrivateKey.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Cost_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Cost) */ + errn = encodeNBitUnsignedInteger(stream, 8, 33); + if(errn == 0) { + errn = encode_dinCostType(stream, &exiFrag->Cost ); + } + } else if ( exiFrag->CurrentDemandReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 34); + if(errn == 0) { + errn = encode_dinCurrentDemandReqType(stream, &exiFrag->CurrentDemandReq ); + } + } else if ( exiFrag->CurrentDemandRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 35); + if(errn == 0) { + errn = encode_dinCurrentDemandResType(stream, &exiFrag->CurrentDemandRes ); + } + } else if ( exiFrag->DC_EVChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 36); + if(errn == 0) { + errn = encode_dinDC_EVChargeParameterType(stream, &exiFrag->DC_EVChargeParameter ); + } + } else if ( exiFrag->DC_EVPowerDeliveryParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 37); + if(errn == 0) { + errn = encode_dinDC_EVPowerDeliveryParameterType(stream, &exiFrag->DC_EVPowerDeliveryParameter ); + } + } else if ( exiFrag->DC_EVSEChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 38); + if(errn == 0) { + errn = encode_dinDC_EVSEChargeParameterType(stream, &exiFrag->DC_EVSEChargeParameter ); + } + } else if ( exiFrag->DC_EVSEStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 39); + if(errn == 0) { + errn = encode_dinDC_EVSEStatusType(stream, &exiFrag->DC_EVSEStatus ); + } + } else if ( exiFrag->DC_EVSEStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 40); + if(errn == 0) { + errn = encode_dinDC_EVSEStatusType(stream, &exiFrag->DC_EVSEStatus ); + } + } else if ( exiFrag->DC_EVStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 41); + if(errn == 0) { + errn = encode_dinDC_EVStatusType(stream, &exiFrag->DC_EVStatus ); + } + } else if ( exiFrag->DC_EVStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 42); + if(errn == 0) { + errn = encode_dinDC_EVStatusType(stream, &exiFrag->DC_EVStatus ); + } + } else if ( exiFrag->DHParams_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams) */ + errn = encodeNBitUnsignedInteger(stream, 8, 43); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->DHParams.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->DHParams.bytes, exiFrag->DHParams.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->DSAKeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 44); + if(errn == 0) { + errn = encode_dinDSAKeyValueType(stream, &exiFrag->DSAKeyValue ); + } + } else if ( exiFrag->DateTimeNow_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow) */ + errn = encodeNBitUnsignedInteger(stream, 8, 45); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, exiFrag->DateTimeNow); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->DepartureTime_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime) */ + errn = encodeNBitUnsignedInteger(stream, 8, 46); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, exiFrag->DepartureTime); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->DigestMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */ + errn = encodeNBitUnsignedInteger(stream, 8, 47); + if(errn == 0) { + errn = encode_dinDigestMethodType(stream, &exiFrag->DigestMethod ); + } + } else if ( exiFrag->DigestValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 48); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->DigestValue.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->DigestValue.bytes, exiFrag->DigestValue.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EAmount_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EAmount) */ + errn = encodeNBitUnsignedInteger(stream, 8, 49); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EAmount ); + } + } else if ( exiFrag->EPriceLevel_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPriceLevel) */ + errn = encodeNBitUnsignedInteger(stream, 8, 50); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->EPriceLevel - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVCCID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVCCID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 51); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->EVCCID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->EVCCID.bytes, exiFrag->EVCCID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVCabinConditioning_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVCabinConditioning) */ + errn = encodeNBitUnsignedInteger(stream, 8, 52); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->EVCabinConditioning); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 53); + if(errn == 0) { + errn = encode_dinEVChargeParameterType(stream, &exiFrag->EVChargeParameter ); + } + } else if ( exiFrag->EVEnergyCapacity_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyCapacity) */ + errn = encodeNBitUnsignedInteger(stream, 8, 54); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVEnergyCapacity ); + } + } else if ( exiFrag->EVEnergyRequest_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest) */ + errn = encodeNBitUnsignedInteger(stream, 8, 55); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVEnergyRequest ); + } + } else if ( exiFrag->EVErrorCode_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode) */ + errn = encodeNBitUnsignedInteger(stream, 8, 56); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 4, exiFrag->EVErrorCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVMaxCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 8, 57); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVMaxCurrent ); + } + } else if ( exiFrag->EVMaxVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 8, 58); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVMaxVoltage ); + } + } else if ( exiFrag->EVMaximumCurrentLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 59); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVMaximumCurrentLimit ); + } + } else if ( exiFrag->EVMaximumCurrentLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumCurrentLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 60); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVMaximumCurrentLimit ); + } + } else if ( exiFrag->EVMaximumPowerLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 61); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVMaximumPowerLimit ); + } + } else if ( exiFrag->EVMaximumPowerLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumPowerLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 62); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVMaximumPowerLimit ); + } + } else if ( exiFrag->EVMaximumVoltageLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumVoltageLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 63); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVMaximumVoltageLimit ); + } + } else if ( exiFrag->EVMaximumVoltageLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 64); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVMaximumVoltageLimit ); + } + } else if ( exiFrag->EVMinCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMinCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 8, 65); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVMinCurrent ); + } + } else if ( exiFrag->EVPowerDeliveryParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 66); + if(errn == 0) { + errn = encode_dinEVPowerDeliveryParameterType(stream, &exiFrag->EVPowerDeliveryParameter ); + } + } else if ( exiFrag->EVRESSConditioning_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning) */ + errn = encodeNBitUnsignedInteger(stream, 8, 67); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->EVRESSConditioning); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVRESSSOC_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSSOC) */ + errn = encodeNBitUnsignedInteger(stream, 8, 68); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(exiFrag->EVRESSSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVReady_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVReady) */ + errn = encodeNBitUnsignedInteger(stream, 8, 69); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->EVReady); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVRequestedEnergyTransferType_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType) */ + errn = encodeNBitUnsignedInteger(stream, 8, 70); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, exiFrag->EVRequestedEnergyTransferType); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 71); + if(errn == 0) { + errn = encode_dinEVSEChargeParameterType(stream, &exiFrag->EVSEChargeParameter ); + } + } else if ( exiFrag->EVSECurrentLimitAchieved_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSECurrentLimitAchieved) */ + errn = encodeNBitUnsignedInteger(stream, 8, 72); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->EVSECurrentLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSECurrentRegulationTolerance_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSECurrentRegulationTolerance) */ + errn = encodeNBitUnsignedInteger(stream, 8, 73); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSECurrentRegulationTolerance ); + } + } else if ( exiFrag->EVSEEnergyToBeDelivered_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEEnergyToBeDelivered) */ + errn = encodeNBitUnsignedInteger(stream, 8, 74); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEEnergyToBeDelivered ); + } + } else if ( exiFrag->EVSEID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 75); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->EVSEID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->EVSEID.bytes, exiFrag->EVSEID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEIsolationStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 76); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->EVSEIsolationStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEMaxCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 8, 77); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMaxCurrent ); + } + } else if ( exiFrag->EVSEMaxCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 8, 78); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMaxCurrent ); + } + } else if ( exiFrag->EVSEMaxVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 8, 79); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMaxVoltage ); + } + } else if ( exiFrag->EVSEMaximumCurrentLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 80); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumCurrentLimit ); + } + } else if ( exiFrag->EVSEMaximumCurrentLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumCurrentLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 81); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumCurrentLimit ); + } + } else if ( exiFrag->EVSEMaximumPowerLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 82); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumPowerLimit ); + } + } else if ( exiFrag->EVSEMaximumPowerLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumPowerLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 83); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumPowerLimit ); + } + } else if ( exiFrag->EVSEMaximumVoltageLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 84); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumVoltageLimit ); + } + } else if ( exiFrag->EVSEMaximumVoltageLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 85); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumVoltageLimit ); + } + } else if ( exiFrag->EVSEMinCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 8, 86); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMinCurrent ); + } + } else if ( exiFrag->EVSEMinimumCurrentLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumCurrentLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 87); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMinimumCurrentLimit ); + } + } else if ( exiFrag->EVSEMinimumVoltageLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumVoltageLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 88); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMinimumVoltageLimit ); + } + } else if ( exiFrag->EVSENotification_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification) */ + errn = encodeNBitUnsignedInteger(stream, 8, 89); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->EVSENotification); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEPeakCurrentRipple_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple) */ + errn = encodeNBitUnsignedInteger(stream, 8, 90); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEPeakCurrentRipple ); + } + } else if ( exiFrag->EVSEPowerLimitAchieved_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPowerLimitAchieved) */ + errn = encodeNBitUnsignedInteger(stream, 8, 91); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->EVSEPowerLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEPresentCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 8, 92); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEPresentCurrent ); + } + } else if ( exiFrag->EVSEPresentVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 8, 93); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEPresentVoltage ); + } + } else if ( exiFrag->EVSEProcessing_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing) */ + errn = encodeNBitUnsignedInteger(stream, 8, 94); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, exiFrag->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 95); + if(errn == 0) { + errn = encode_dinEVSEStatusType(stream, &exiFrag->EVSEStatus ); + } + } else if ( exiFrag->EVSEStatusCode_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode) */ + errn = encodeNBitUnsignedInteger(stream, 8, 96); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 4, exiFrag->EVSEStatusCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEVoltageLimitAchieved_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltageLimitAchieved) */ + errn = encodeNBitUnsignedInteger(stream, 8, 97); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->EVSEVoltageLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 98); + if(errn == 0) { + errn = encode_dinEVStatusType(stream, &exiFrag->EVStatus ); + } + } else if ( exiFrag->EVTargetCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 8, 99); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVTargetCurrent ); + } + } else if ( exiFrag->EVTargetVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 8, 100); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->EVTargetVoltage ); + } + } else if ( exiFrag->EnergyTransferType_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType) */ + errn = encodeNBitUnsignedInteger(stream, 8, 101); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 4, exiFrag->EnergyTransferType); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Entry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Entry) */ + errn = encodeNBitUnsignedInteger(stream, 8, 102); + if(errn == 0) { + errn = encode_dinEntryType(stream, &exiFrag->Entry ); + } + } else if ( exiFrag->Exponent_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent) */ + errn = encodeNBitUnsignedInteger(stream, 8, 103); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Exponent.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Exponent.bytes, exiFrag->Exponent.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->FaultCode_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode) */ + errn = encodeNBitUnsignedInteger(stream, 8, 104); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->FaultCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->FaultMsg_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg) */ + errn = encodeNBitUnsignedInteger(stream, 8, 105); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->FaultMsg.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->FaultMsg.characters, exiFrag->FaultMsg.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->FreeService_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService) */ + errn = encodeNBitUnsignedInteger(stream, 8, 106); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->FreeService); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->FullSOC_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC) */ + errn = encodeNBitUnsignedInteger(stream, 8, 107); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(exiFrag->FullSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->G_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) */ + errn = encodeNBitUnsignedInteger(stream, 8, 108); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->G.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->G.bytes, exiFrag->G.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->GenChallenge_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge) */ + errn = encodeNBitUnsignedInteger(stream, 8, 109); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->GenChallenge.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->GenChallenge.characters, exiFrag->GenChallenge.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->HMACOutputLength_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) */ + errn = encodeNBitUnsignedInteger(stream, 8, 110); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, exiFrag->HMACOutputLength); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Header_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header) */ + errn = encodeNBitUnsignedInteger(stream, 8, 111); + if(errn == 0) { + errn = encode_dinMessageHeaderType(stream, &exiFrag->Header ); + } + } else if ( exiFrag->J_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J) */ + errn = encodeNBitUnsignedInteger(stream, 8, 112); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->J.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->J.bytes, exiFrag->J.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->KeyInfo_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */ + errn = encodeNBitUnsignedInteger(stream, 8, 113); + if(errn == 0) { + errn = encode_dinKeyInfoType(stream, &exiFrag->KeyInfo ); + } + } else if ( exiFrag->KeyName_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */ + errn = encodeNBitUnsignedInteger(stream, 8, 114); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->KeyName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->KeyName.characters, exiFrag->KeyName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->KeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 115); + if(errn == 0) { + errn = encode_dinKeyValueType(stream, &exiFrag->KeyValue ); + } + } else if ( exiFrag->ListOfRootCertificateIDs_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs) */ + errn = encodeNBitUnsignedInteger(stream, 8, 116); + if(errn == 0) { + errn = encode_dinListOfRootCertificateIDsType(stream, &exiFrag->ListOfRootCertificateIDs ); + } + } else if ( exiFrag->Manifest_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */ + errn = encodeNBitUnsignedInteger(stream, 8, 117); + if(errn == 0) { + errn = encode_dinManifestType(stream, &exiFrag->Manifest ); + } + } else if ( exiFrag->MeterID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 118); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->MeterID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->MeterID.characters, exiFrag->MeterID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->MeterInfo_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo) */ + errn = encodeNBitUnsignedInteger(stream, 8, 119); + if(errn == 0) { + errn = encode_dinMeterInfoType(stream, &exiFrag->MeterInfo ); + } + } else if ( exiFrag->MeterReading_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading) */ + errn = encodeNBitUnsignedInteger(stream, 8, 120); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->MeterReading ); + } + } else if ( exiFrag->MeterStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 121); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->MeterStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->MeteringReceiptReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 122); + if(errn == 0) { + errn = encode_dinMeteringReceiptReqType(stream, &exiFrag->MeteringReceiptReq ); + } + } else if ( exiFrag->MeteringReceiptRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 123); + if(errn == 0) { + errn = encode_dinMeteringReceiptResType(stream, &exiFrag->MeteringReceiptRes ); + } + } else if ( exiFrag->MgmtData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */ + errn = encodeNBitUnsignedInteger(stream, 8, 124); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->MgmtData.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->MgmtData.characters, exiFrag->MgmtData.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Modulus_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 125); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Modulus.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Modulus.bytes, exiFrag->Modulus.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Multiplier_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier) */ + errn = encodeNBitUnsignedInteger(stream, 8, 126); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, (uint32_t)(exiFrag->Multiplier + 3)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Notification_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}Notification) */ + errn = encodeNBitUnsignedInteger(stream, 8, 127); + if(errn == 0) { + errn = encode_dinNotificationType(stream, &exiFrag->Notification ); + } + } else if ( exiFrag->NotificationMaxDelay_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay) */ + errn = encodeNBitUnsignedInteger(stream, 8, 128); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, exiFrag->NotificationMaxDelay); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->NumEPriceLevels_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels) */ + errn = encodeNBitUnsignedInteger(stream, 8, 129); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->NumEPriceLevels - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->OEMProvisioningCert_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert) */ + errn = encodeNBitUnsignedInteger(stream, 8, 130); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->OEMProvisioningCert.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->OEMProvisioningCert.bytes, exiFrag->OEMProvisioningCert.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Object_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */ + errn = encodeNBitUnsignedInteger(stream, 8, 131); + if(errn == 0) { + errn = encode_dinObjectType(stream, &exiFrag->Object ); + } + } else if ( exiFrag->P_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P) */ + errn = encodeNBitUnsignedInteger(stream, 8, 132); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->P.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->P.bytes, exiFrag->P.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PGPData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */ + errn = encodeNBitUnsignedInteger(stream, 8, 133); + if(errn == 0) { + errn = encode_dinPGPDataType(stream, &exiFrag->PGPData ); + } + } else if ( exiFrag->PGPKeyID_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 134); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->PGPKeyID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->PGPKeyID.bytes, exiFrag->PGPKeyID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PGPKeyPacket_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) */ + errn = encodeNBitUnsignedInteger(stream, 8, 135); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->PGPKeyPacket.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->PGPKeyPacket.bytes, exiFrag->PGPKeyPacket.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PMax_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMax) */ + errn = encodeNBitUnsignedInteger(stream, 8, 136); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->PMax); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PMaxSchedule_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxSchedule) */ + errn = encodeNBitUnsignedInteger(stream, 8, 137); + if(errn == 0) { + errn = encode_dinPMaxScheduleType(stream, &exiFrag->PMaxSchedule ); + } + } else if ( exiFrag->PMaxScheduleEntry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry) */ + errn = encodeNBitUnsignedInteger(stream, 8, 138); + if(errn == 0) { + errn = encode_dinPMaxScheduleEntryType(stream, &exiFrag->PMaxScheduleEntry ); + } + } else if ( exiFrag->PMaxScheduleID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 139); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->PMaxScheduleID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Parameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 140); + if(errn == 0) { + errn = encode_dinParameterType(stream, &exiFrag->Parameter ); + } + } else if ( exiFrag->ParameterSet_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet) */ + errn = encodeNBitUnsignedInteger(stream, 8, 141); + if(errn == 0) { + errn = encode_dinParameterSetType(stream, &exiFrag->ParameterSet ); + } + } else if ( exiFrag->ParameterSetID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 142); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->ParameterSetID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PaymentDetailsReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 143); + if(errn == 0) { + errn = encode_dinPaymentDetailsReqType(stream, &exiFrag->PaymentDetailsReq ); + } + } else if ( exiFrag->PaymentDetailsRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 144); + if(errn == 0) { + errn = encode_dinPaymentDetailsResType(stream, &exiFrag->PaymentDetailsRes ); + } + } else if ( exiFrag->PaymentOption_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption) */ + errn = encodeNBitUnsignedInteger(stream, 8, 145); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, exiFrag->PaymentOption); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PaymentOptions_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentOptions) */ + errn = encodeNBitUnsignedInteger(stream, 8, 146); + if(errn == 0) { + errn = encode_dinPaymentOptionsType(stream, &exiFrag->PaymentOptions ); + } + } else if ( exiFrag->PgenCounter_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 147); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->PgenCounter.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->PgenCounter.bytes, exiFrag->PgenCounter.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PowerDeliveryReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 148); + if(errn == 0) { + errn = encode_dinPowerDeliveryReqType(stream, &exiFrag->PowerDeliveryReq ); + } + } else if ( exiFrag->PowerDeliveryRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 149); + if(errn == 0) { + errn = encode_dinPowerDeliveryResType(stream, &exiFrag->PowerDeliveryRes ); + } + } else if ( exiFrag->PowerSwitchClosed_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed) */ + errn = encodeNBitUnsignedInteger(stream, 8, 150); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->PowerSwitchClosed); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PreChargeReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 151); + if(errn == 0) { + errn = encode_dinPreChargeReqType(stream, &exiFrag->PreChargeReq ); + } + } else if ( exiFrag->PreChargeRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 152); + if(errn == 0) { + errn = encode_dinPreChargeResType(stream, &exiFrag->PreChargeRes ); + } + } else if ( exiFrag->ProfileEntry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry) */ + errn = encodeNBitUnsignedInteger(stream, 8, 153); + if(errn == 0) { + errn = encode_dinProfileEntryType(stream, &exiFrag->ProfileEntry ); + } + } else if ( exiFrag->Q_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q) */ + errn = encodeNBitUnsignedInteger(stream, 8, 154); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Q.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Q.bytes, exiFrag->Q.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->RCD_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD) */ + errn = encodeNBitUnsignedInteger(stream, 8, 155); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->RCD); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->RSAKeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 156); + if(errn == 0) { + errn = encode_dinRSAKeyValueType(stream, &exiFrag->RSAKeyValue ); + } + } else if ( exiFrag->ReadyToChargeState_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReadyToChargeState) */ + errn = encodeNBitUnsignedInteger(stream, 8, 157); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->ReadyToChargeState); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ReceiptRequired_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired) */ + errn = encodeNBitUnsignedInteger(stream, 8, 158); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Reference_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */ + errn = encodeNBitUnsignedInteger(stream, 8, 159); + if(errn == 0) { + errn = encode_dinReferenceType(stream, &exiFrag->Reference ); + } + } else if ( exiFrag->RelativeTimeInterval_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval) */ + errn = encodeNBitUnsignedInteger(stream, 8, 160); + if(errn == 0) { + errn = encode_dinRelativeTimeIntervalType(stream, &exiFrag->RelativeTimeInterval ); + } + } else if ( exiFrag->RemainingTimeToBulkSoC_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC) */ + errn = encodeNBitUnsignedInteger(stream, 8, 161); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->RemainingTimeToBulkSoC ); + } + } else if ( exiFrag->RemainingTimeToFullSoC_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToFullSoC) */ + errn = encodeNBitUnsignedInteger(stream, 8, 162); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->RemainingTimeToFullSoC ); + } + } else if ( exiFrag->ResponseCode_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */ + errn = encodeNBitUnsignedInteger(stream, 8, 163); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, exiFrag->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->RetrievalMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */ + errn = encodeNBitUnsignedInteger(stream, 8, 164); + if(errn == 0) { + errn = encode_dinRetrievalMethodType(stream, &exiFrag->RetrievalMethod ); + } + } else if ( exiFrag->RetryCounter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RetryCounter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 165); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->RetryCounter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->RootCertificateID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 166); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->RootCertificateID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->RootCertificateID.characters, exiFrag->RootCertificateID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SAScheduleList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList) */ + errn = encodeNBitUnsignedInteger(stream, 8, 167); + if(errn == 0) { + errn = encode_dinSAScheduleListType(stream, &exiFrag->SAScheduleList ); + } + } else if ( exiFrag->SAScheduleTuple_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple) */ + errn = encodeNBitUnsignedInteger(stream, 8, 168); + if(errn == 0) { + errn = encode_dinSAScheduleTupleType(stream, &exiFrag->SAScheduleTuple ); + } + } else if ( exiFrag->SAScheduleTupleID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 169); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->SAScheduleTupleID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SAScheduleTupleID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 170); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->SAScheduleTupleID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SASchedules_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules) */ + errn = encodeNBitUnsignedInteger(stream, 8, 171); + if(errn == 0) { + errn = encode_dinSASchedulesType(stream, &exiFrag->SASchedules ); + } + } else if ( exiFrag->SPKIData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */ + errn = encodeNBitUnsignedInteger(stream, 8, 172); + if(errn == 0) { + errn = encode_dinSPKIDataType(stream, &exiFrag->SPKIData ); + } + } else if ( exiFrag->SPKISexp_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) */ + errn = encodeNBitUnsignedInteger(stream, 8, 173); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SPKISexp.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->SPKISexp.bytes, exiFrag->SPKISexp.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SalesTariff_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariff) */ + errn = encodeNBitUnsignedInteger(stream, 8, 174); + if(errn == 0) { + errn = encode_dinSalesTariffType(stream, &exiFrag->SalesTariff ); + } + } else if ( exiFrag->SalesTariffDescription_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffDescription) */ + errn = encodeNBitUnsignedInteger(stream, 8, 175); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SalesTariffDescription.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->SalesTariffDescription.characters, exiFrag->SalesTariffDescription.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SalesTariffEntry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry) */ + errn = encodeNBitUnsignedInteger(stream, 8, 176); + if(errn == 0) { + errn = encode_dinSalesTariffEntryType(stream, &exiFrag->SalesTariffEntry ); + } + } else if ( exiFrag->SalesTariffID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 177); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->SalesTariffID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Seed_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) */ + errn = encodeNBitUnsignedInteger(stream, 8, 178); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Seed.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Seed.bytes, exiFrag->Seed.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SelectedPaymentOption_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption) */ + errn = encodeNBitUnsignedInteger(stream, 8, 179); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, exiFrag->SelectedPaymentOption); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SelectedService_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService) */ + errn = encodeNBitUnsignedInteger(stream, 8, 180); + if(errn == 0) { + errn = encode_dinSelectedServiceType(stream, &exiFrag->SelectedService ); + } + } else if ( exiFrag->SelectedServiceList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedServiceList) */ + errn = encodeNBitUnsignedInteger(stream, 8, 181); + if(errn == 0) { + errn = encode_dinSelectedServiceListType(stream, &exiFrag->SelectedServiceList ); + } + } else if ( exiFrag->Service_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service) */ + errn = encodeNBitUnsignedInteger(stream, 8, 182); + if(errn == 0) { + errn = encode_dinServiceType(stream, &exiFrag->Service ); + } + } else if ( exiFrag->ServiceCategory_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory) */ + errn = encodeNBitUnsignedInteger(stream, 8, 183); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->ServiceCategory); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ServiceCategory_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory) */ + errn = encodeNBitUnsignedInteger(stream, 8, 184); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->ServiceCategory); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ServiceCharge_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge) */ + errn = encodeNBitUnsignedInteger(stream, 8, 185); + if(errn == 0) { + errn = encode_dinServiceChargeType(stream, &exiFrag->ServiceCharge ); + } + } else if ( exiFrag->ServiceDetailReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 186); + if(errn == 0) { + errn = encode_dinServiceDetailReqType(stream, &exiFrag->ServiceDetailReq ); + } + } else if ( exiFrag->ServiceDetailRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 187); + if(errn == 0) { + errn = encode_dinServiceDetailResType(stream, &exiFrag->ServiceDetailRes ); + } + } else if ( exiFrag->ServiceDiscoveryReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 188); + if(errn == 0) { + errn = encode_dinServiceDiscoveryReqType(stream, &exiFrag->ServiceDiscoveryReq ); + } + } else if ( exiFrag->ServiceDiscoveryRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 189); + if(errn == 0) { + errn = encode_dinServiceDiscoveryResType(stream, &exiFrag->ServiceDiscoveryRes ); + } + } else if ( exiFrag->ServiceID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 190); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, exiFrag->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ServiceID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 191); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, exiFrag->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ServiceList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList) */ + errn = encodeNBitUnsignedInteger(stream, 8, 192); + if(errn == 0) { + errn = encode_dinServiceTagListType(stream, &exiFrag->ServiceList ); + } + } else if ( exiFrag->ServiceName_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName) */ + errn = encodeNBitUnsignedInteger(stream, 8, 193); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->ServiceName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->ServiceName.characters, exiFrag->ServiceName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ServiceParameterList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceParameterList) */ + errn = encodeNBitUnsignedInteger(stream, 8, 194); + if(errn == 0) { + errn = encode_dinServiceParameterListType(stream, &exiFrag->ServiceParameterList ); + } + } else if ( exiFrag->ServicePaymentSelectionReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 195); + if(errn == 0) { + errn = encode_dinServicePaymentSelectionReqType(stream, &exiFrag->ServicePaymentSelectionReq ); + } + } else if ( exiFrag->ServicePaymentSelectionRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 196); + if(errn == 0) { + errn = encode_dinServicePaymentSelectionResType(stream, &exiFrag->ServicePaymentSelectionRes ); + } + } else if ( exiFrag->ServiceScope_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope) */ + errn = encodeNBitUnsignedInteger(stream, 8, 197); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->ServiceScope.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->ServiceScope.characters, exiFrag->ServiceScope.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ServiceScope_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope) */ + errn = encodeNBitUnsignedInteger(stream, 8, 198); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->ServiceScope.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->ServiceScope.characters, exiFrag->ServiceScope.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ServiceTag_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag) */ + errn = encodeNBitUnsignedInteger(stream, 8, 199); + if(errn == 0) { + errn = encode_dinServiceTagType(stream, &exiFrag->ServiceTag ); + } + } else if ( exiFrag->SessionID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 200); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SessionID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->SessionID.bytes, exiFrag->SessionID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SessionID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 201); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SessionID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->SessionID.bytes, exiFrag->SessionID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SessionSetupReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 202); + if(errn == 0) { + errn = encode_dinSessionSetupReqType(stream, &exiFrag->SessionSetupReq ); + } + } else if ( exiFrag->SessionSetupRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 203); + if(errn == 0) { + errn = encode_dinSessionSetupResType(stream, &exiFrag->SessionSetupRes ); + } + } else if ( exiFrag->SessionStopReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 204); + if(errn == 0) { + errn = encode_dinSessionStopType(stream, &exiFrag->SessionStopReq ); + } + } else if ( exiFrag->SessionStopRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 205); + if(errn == 0) { + errn = encode_dinSessionStopResType(stream, &exiFrag->SessionStopRes ); + } + } else if ( exiFrag->SigMeterReading_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading) */ + errn = encodeNBitUnsignedInteger(stream, 8, 206); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SigMeterReading.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->SigMeterReading.bytes, exiFrag->SigMeterReading.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Signature_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */ + errn = encodeNBitUnsignedInteger(stream, 8, 207); + if(errn == 0) { + errn = encode_dinSignatureType(stream, &exiFrag->Signature ); + } + } else if ( exiFrag->SignatureMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */ + errn = encodeNBitUnsignedInteger(stream, 8, 208); + if(errn == 0) { + errn = encode_dinSignatureMethodType(stream, &exiFrag->SignatureMethod ); + } + } else if ( exiFrag->SignatureProperties_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */ + errn = encodeNBitUnsignedInteger(stream, 8, 209); + if(errn == 0) { + errn = encode_dinSignaturePropertiesType(stream, &exiFrag->SignatureProperties ); + } + } else if ( exiFrag->SignatureProperty_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */ + errn = encodeNBitUnsignedInteger(stream, 8, 210); + if(errn == 0) { + errn = encode_dinSignaturePropertyType(stream, &exiFrag->SignatureProperty ); + } + } else if ( exiFrag->SignatureValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 211); + if(errn == 0) { + errn = encode_dinSignatureValueType(stream, &exiFrag->SignatureValue ); + } + } else if ( exiFrag->SignedInfo_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */ + errn = encodeNBitUnsignedInteger(stream, 8, 212); + if(errn == 0) { + errn = encode_dinSignedInfoType(stream, &exiFrag->SignedInfo ); + } + } else if ( exiFrag->SubCertificates_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SubCertificates) */ + errn = encodeNBitUnsignedInteger(stream, 8, 213); + if(errn == 0) { + errn = encode_dinSubCertificatesType(stream, &exiFrag->SubCertificates ); + } + } else if ( exiFrag->TMeter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 214); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, exiFrag->TMeter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->TimeInterval_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval) */ + errn = encodeNBitUnsignedInteger(stream, 8, 215); + if(errn == 0) { + errn = encode_dinIntervalType(stream, &exiFrag->TimeInterval ); + } + } else if ( exiFrag->Transform_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */ + errn = encodeNBitUnsignedInteger(stream, 8, 216); + if(errn == 0) { + errn = encode_dinTransformType(stream, &exiFrag->Transform ); + } + } else if ( exiFrag->Transforms_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */ + errn = encodeNBitUnsignedInteger(stream, 8, 217); + if(errn == 0) { + errn = encode_dinTransformsType(stream, &exiFrag->Transforms ); + } + } else if ( exiFrag->Unit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 218); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 4, exiFrag->Unit); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->V2G_Message_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}V2G_Message) */ + errn = encodeNBitUnsignedInteger(stream, 8, 219); + if(errn == 0) { + errn = encode_dinAnonType_V2G_Message(stream, &exiFrag->V2G_Message ); + } + } else if ( exiFrag->Value_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value) */ + errn = encodeNBitUnsignedInteger(stream, 8, 220); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->Value); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->WeldingDetectionReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 221); + if(errn == 0) { + errn = encode_dinWeldingDetectionReqType(stream, &exiFrag->WeldingDetectionReq ); + } + } else if ( exiFrag->WeldingDetectionRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 222); + if(errn == 0) { + errn = encode_dinWeldingDetectionResType(stream, &exiFrag->WeldingDetectionRes ); + } + } else if ( exiFrag->X509CRL_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) */ + errn = encodeNBitUnsignedInteger(stream, 8, 223); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509CRL.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->X509CRL.bytes, exiFrag->X509CRL.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509Certificate_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) */ + errn = encodeNBitUnsignedInteger(stream, 8, 224); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509Certificate.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->X509Certificate.bytes, exiFrag->X509Certificate.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509Data_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */ + errn = encodeNBitUnsignedInteger(stream, 8, 225); + if(errn == 0) { + errn = encode_dinX509DataType(stream, &exiFrag->X509Data ); + } + } else if ( exiFrag->X509IssuerName_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName) */ + errn = encodeNBitUnsignedInteger(stream, 8, 226); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509IssuerName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->X509IssuerName.characters, exiFrag->X509IssuerName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509IssuerSerial_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial) */ + errn = encodeNBitUnsignedInteger(stream, 8, 227); + if(errn == 0) { + errn = encode_dinX509IssuerSerialType(stream, &exiFrag->X509IssuerSerial ); + } + } else if ( exiFrag->X509SKI_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) */ + errn = encodeNBitUnsignedInteger(stream, 8, 228); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509SKI.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->X509SKI.bytes, exiFrag->X509SKI.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509SerialNumber_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber) */ + errn = encodeNBitUnsignedInteger(stream, 8, 229); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, exiFrag->X509SerialNumber); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509SubjectName_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) */ + errn = encodeNBitUnsignedInteger(stream, 8, 230); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509SubjectName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->X509SubjectName.characters, exiFrag->X509SubjectName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->XPath_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) */ + errn = encodeNBitUnsignedInteger(stream, 8, 231); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->XPath.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->XPath.characters, exiFrag->XPath.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Y_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) */ + errn = encodeNBitUnsignedInteger(stream, 8, 232); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Y.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Y.bytes, exiFrag->Y.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->amount_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amount) */ + errn = encodeNBitUnsignedInteger(stream, 8, 233); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, exiFrag->amount); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->amountMultiplier_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amountMultiplier) */ + errn = encodeNBitUnsignedInteger(stream, 8, 234); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, (uint32_t)(exiFrag->amountMultiplier + 3)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->boolValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}boolValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 235); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->boolValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->byteValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}byteValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 236); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->byteValue + 128)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->costKind_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}costKind) */ + errn = encodeNBitUnsignedInteger(stream, 8, 237); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->costKind); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->duration_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}duration) */ + errn = encodeNBitUnsignedInteger(stream, 8, 238); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, exiFrag->duration); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->intValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}intValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 239); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger32(stream, exiFrag->intValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->physicalValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}physicalValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 240); + if(errn == 0) { + errn = encode_dinPhysicalValueType(stream, &exiFrag->physicalValue ); + } + } else if ( exiFrag->shortValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}shortValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 241); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->shortValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->start_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}start) */ + errn = encodeNBitUnsignedInteger(stream, 8, 242); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, exiFrag->start); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->startValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}startValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 243); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, exiFrag->startValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->stringValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}stringValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 244); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->stringValue.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->stringValue.characters, exiFrag->stringValue.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + } + if(errn == 0) { + /* EndDocument */ + errn = encodeNBitUnsignedInteger(stream, 8, 246); + } + + + if(errn == 0) { + /* flush any pending bits */ + errn = encodeFinish(stream); + } + + return errn; +} +#endif /* DEPLOY_DIN_CODEC_FRAGMENT */ + + +#endif /* DEPLOY_DIN_CODEC */ + +#endif + diff --git a/csharp/vc2022/src/din/dinEXIDatatypesEncoder.h b/csharp/vc2022/src/din/dinEXIDatatypesEncoder.h new file mode 100644 index 0000000..5e4c86e --- /dev/null +++ b/csharp/vc2022/src/din/dinEXIDatatypesEncoder.h @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIDatatypesEncoder.h + * \brief Encoder for datatype definitions + * + */ + +#ifndef EXI_din_DATATYPES_ENCODER_H +#define EXI_din_DATATYPES_ENCODER_H + +#ifdef __cplusplus +extern "C" { +#endif + + +#include "dinEXIDatatypes.h" + +#if DEPLOY_DIN_CODEC == SUPPORT_YES + +#include + +#include "EXITypes.h" + + +int encode_dinExiDocument(bitstream_t* stream, struct dinEXIDocument* exiDoc); + +#if DEPLOY_DIN_CODEC_FRAGMENT == SUPPORT_YES +int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag); +#endif /* DEPLOY_DIN_CODEC_FRAGMENT */ + + +#endif /* DEPLOY_DIN_CODEC */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/iso1/iso1EXIDatatypes.c b/csharp/vc2022/src/iso1/iso1EXIDatatypes.c new file mode 100644 index 0000000..3a2ea6e --- /dev/null +++ b/csharp/vc2022/src/iso1/iso1EXIDatatypes.c @@ -0,0 +1,992 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +#include + +#include "iso1EXIDatatypes.h" +#include "EXITypes.h" + + +#ifndef EXI_iso1_DATATYPES_C +#define EXI_iso1_DATATYPES_C + +#if DEPLOY_ISO1_CODEC == SUPPORT_YES + + +void init_iso1EXIDocument(struct iso1EXIDocument* exiDoc) { + exiDoc->V2G_Message_isUsed = 0u; + exiDoc->ServiceDiscoveryReq_isUsed = 0u; + exiDoc->ServiceDiscoveryRes_isUsed = 0u; + exiDoc->MeteringReceiptReq_isUsed = 0u; + exiDoc->PaymentDetailsReq_isUsed = 0u; + exiDoc->MeteringReceiptRes_isUsed = 0u; + exiDoc->PaymentDetailsRes_isUsed = 0u; + exiDoc->SessionSetupReq_isUsed = 0u; + exiDoc->SessionSetupRes_isUsed = 0u; + exiDoc->CableCheckReq_isUsed = 0u; + exiDoc->CableCheckRes_isUsed = 0u; + exiDoc->CertificateInstallationReq_isUsed = 0u; + exiDoc->CertificateInstallationRes_isUsed = 0u; + exiDoc->WeldingDetectionReq_isUsed = 0u; + exiDoc->WeldingDetectionRes_isUsed = 0u; + exiDoc->CertificateUpdateReq_isUsed = 0u; + exiDoc->CertificateUpdateRes_isUsed = 0u; + exiDoc->PaymentServiceSelectionReq_isUsed = 0u; + exiDoc->PowerDeliveryReq_isUsed = 0u; + exiDoc->PaymentServiceSelectionRes_isUsed = 0u; + exiDoc->PowerDeliveryRes_isUsed = 0u; + exiDoc->ChargingStatusReq_isUsed = 0u; + exiDoc->ChargingStatusRes_isUsed = 0u; + exiDoc->BodyElement_isUsed = 0u; + exiDoc->CurrentDemandReq_isUsed = 0u; + exiDoc->PreChargeReq_isUsed = 0u; + exiDoc->CurrentDemandRes_isUsed = 0u; + exiDoc->PreChargeRes_isUsed = 0u; + exiDoc->SessionStopReq_isUsed = 0u; + exiDoc->AuthorizationReq_isUsed = 0u; + exiDoc->SessionStopRes_isUsed = 0u; + exiDoc->AuthorizationRes_isUsed = 0u; + exiDoc->ChargeParameterDiscoveryReq_isUsed = 0u; + exiDoc->ChargeParameterDiscoveryRes_isUsed = 0u; + exiDoc->ServiceDetailReq_isUsed = 0u; + exiDoc->ServiceDetailRes_isUsed = 0u; + exiDoc->DC_EVSEStatus_isUsed = 0u; + exiDoc->RelativeTimeInterval_isUsed = 0u; + exiDoc->SalesTariffEntry_isUsed = 0u; + exiDoc->DC_EVPowerDeliveryParameter_isUsed = 0u; + exiDoc->SASchedules_isUsed = 0u; + exiDoc->AC_EVChargeParameter_isUsed = 0u; + exiDoc->SAScheduleList_isUsed = 0u; + exiDoc->DC_EVStatus_isUsed = 0u; + exiDoc->EVStatus_isUsed = 0u; + exiDoc->DC_EVChargeParameter_isUsed = 0u; + exiDoc->DC_EVSEChargeParameter_isUsed = 0u; + exiDoc->EVSEStatus_isUsed = 0u; + exiDoc->TimeInterval_isUsed = 0u; + exiDoc->EVPowerDeliveryParameter_isUsed = 0u; + exiDoc->EVSEChargeParameter_isUsed = 0u; + exiDoc->AC_EVSEStatus_isUsed = 0u; + exiDoc->Entry_isUsed = 0u; + exiDoc->AC_EVSEChargeParameter_isUsed = 0u; + exiDoc->PMaxScheduleEntry_isUsed = 0u; + exiDoc->EVChargeParameter_isUsed = 0u; + exiDoc->SignatureProperty_isUsed = 0u; + exiDoc->DSAKeyValue_isUsed = 0u; + exiDoc->SignatureProperties_isUsed = 0u; + exiDoc->KeyValue_isUsed = 0u; + exiDoc->Transforms_isUsed = 0u; + exiDoc->DigestMethod_isUsed = 0u; + exiDoc->Signature_isUsed = 0u; + exiDoc->RetrievalMethod_isUsed = 0u; + exiDoc->Manifest_isUsed = 0u; + exiDoc->Reference_isUsed = 0u; + exiDoc->CanonicalizationMethod_isUsed = 0u; + exiDoc->RSAKeyValue_isUsed = 0u; + exiDoc->Transform_isUsed = 0u; + exiDoc->PGPData_isUsed = 0u; + exiDoc->MgmtData_isUsed = 0u; + exiDoc->SignatureMethod_isUsed = 0u; + exiDoc->KeyInfo_isUsed = 0u; + exiDoc->SPKIData_isUsed = 0u; + exiDoc->X509Data_isUsed = 0u; + exiDoc->SignatureValue_isUsed = 0u; + exiDoc->KeyName_isUsed = 0u; + exiDoc->DigestValue_isUsed = 0u; + exiDoc->SignedInfo_isUsed = 0u; + exiDoc->Object_isUsed = 0u; +} + + +#if DEPLOY_ISO1_CODEC_FRAGMENT == SUPPORT_YES +void init_iso1EXIFragment(struct iso1EXIFragment* exiFrag) { + exiFrag->ChargingComplete_isUsed = 0u; + exiFrag->EVMaxVoltage_isUsed = 0u; + exiFrag->ServiceID_isUsed = 0u; + exiFrag->ServiceID_isUsed = 0u; + exiFrag->EVRESSSOC_isUsed = 0u; + exiFrag->MeterReading_isUsed = 0u; + exiFrag->physicalValue_isUsed = 0u; + exiFrag->TimeInterval_isUsed = 0u; + exiFrag->AC_EVSEStatus_isUsed = 0u; + exiFrag->AC_EVSEStatus_isUsed = 0u; + exiFrag->EVMaxCurrent_isUsed = 0u; + exiFrag->ChargingProfileEntryStart_isUsed = 0u; + exiFrag->EVSEMaxCurrent_isUsed = 0u; + exiFrag->costKind_isUsed = 0u; + exiFrag->EAmount_isUsed = 0u; + exiFrag->EnergyTransferMode_isUsed = 0u; + exiFrag->X509SerialNumber_isUsed = 0u; + exiFrag->NumEPriceLevels_isUsed = 0u; + exiFrag->RetrievalMethod_isUsed = 0u; + exiFrag->PMax_isUsed = 0u; + exiFrag->ParameterSetID_isUsed = 0u; + exiFrag->ParameterSetID_isUsed = 0u; + exiFrag->BulkSOC_isUsed = 0u; + exiFrag->EVSEMinimumCurrentLimit_isUsed = 0u; + exiFrag->EVSEPowerLimitAchieved_isUsed = 0u; + exiFrag->SalesTariffEntry_isUsed = 0u; + exiFrag->Transforms_isUsed = 0u; + exiFrag->EVSEProcessing_isUsed = 0u; + exiFrag->EVSEProcessing_isUsed = 0u; + exiFrag->EVSEProcessing_isUsed = 0u; + exiFrag->EVSEIsolationStatus_isUsed = 0u; + exiFrag->BulkChargingComplete_isUsed = 0u; + exiFrag->SAScheduleTupleID_isUsed = 0u; + exiFrag->SAScheduleTupleID_isUsed = 0u; + exiFrag->SAScheduleTupleID_isUsed = 0u; + exiFrag->SAScheduleTupleID_isUsed = 0u; + exiFrag->FaultCode_isUsed = 0u; + exiFrag->RootCertificateID_isUsed = 0u; + exiFrag->HMACOutputLength_isUsed = 0u; + exiFrag->Exponent_isUsed = 0u; + exiFrag->X509IssuerSerial_isUsed = 0u; + exiFrag->byteValue_isUsed = 0u; + exiFrag->SPKIData_isUsed = 0u; + exiFrag->SAScheduleList_isUsed = 0u; + exiFrag->EVMaximumPowerLimit_isUsed = 0u; + exiFrag->DC_EVSEStatus_isUsed = 0u; + exiFrag->DC_EVSEStatus_isUsed = 0u; + exiFrag->DC_EVSEStatus_isUsed = 0u; + exiFrag->DC_EVSEStatus_isUsed = 0u; + exiFrag->RetryCounter_isUsed = 0u; + exiFrag->EVSEMaximumCurrentLimit_isUsed = 0u; + exiFrag->SalesTariff_isUsed = 0u; + exiFrag->PgenCounter_isUsed = 0u; + exiFrag->X509Data_isUsed = 0u; + exiFrag->EVSECurrentRegulationTolerance_isUsed = 0u; + exiFrag->KeyValue_isUsed = 0u; + exiFrag->V2G_Message_isUsed = 0u; + exiFrag->EVSEMinimumVoltageLimit_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ProfileEntry_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->start_isUsed = 0u; + exiFrag->EVErrorCode_isUsed = 0u; + exiFrag->EVChargeParameter_isUsed = 0u; + exiFrag->ContractSignatureCertChain_isUsed = 0u; + exiFrag->ContractSignatureCertChain_isUsed = 0u; + exiFrag->ContractSignatureCertChain_isUsed = 0u; + exiFrag->ContractSignatureCertChain_isUsed = 0u; + exiFrag->EVSEPresentCurrent_isUsed = 0u; + exiFrag->PGPData_isUsed = 0u; + exiFrag->EVMinCurrent_isUsed = 0u; + exiFrag->FullSOC_isUsed = 0u; + exiFrag->amount_isUsed = 0u; + exiFrag->DC_EVSEChargeParameter_isUsed = 0u; + exiFrag->Entry_isUsed = 0u; + exiFrag->SessionStopRes_isUsed = 0u; + exiFrag->DC_EVSEStatus_isUsed = 0u; + exiFrag->DC_EVSEStatus_isUsed = 0u; + exiFrag->shortValue_isUsed = 0u; + exiFrag->SAProvisioningCertificateChain_isUsed = 0u; + exiFrag->SAProvisioningCertificateChain_isUsed = 0u; + exiFrag->PowerDeliveryReq_isUsed = 0u; + exiFrag->PowerDeliveryRes_isUsed = 0u; + exiFrag->SessionStopReq_isUsed = 0u; + exiFrag->SignatureProperty_isUsed = 0u; + exiFrag->SessionID_isUsed = 0u; + exiFrag->PGPKeyPacket_isUsed = 0u; + exiFrag->PGPKeyPacket_isUsed = 0u; + exiFrag->Header_isUsed = 0u; + exiFrag->Seed_isUsed = 0u; + exiFrag->RSAKeyValue_isUsed = 0u; + exiFrag->FreeService_isUsed = 0u; + exiFrag->EVSENominalVoltage_isUsed = 0u; + exiFrag->XPath_isUsed = 0u; + exiFrag->MeteringReceiptRes_isUsed = 0u; + exiFrag->ServiceDiscoveryReq_isUsed = 0u; + exiFrag->MeteringReceiptReq_isUsed = 0u; + exiFrag->PreChargeRes_isUsed = 0u; + exiFrag->OEMProvisioningCert_isUsed = 0u; + exiFrag->EVEnergyCapacity_isUsed = 0u; + exiFrag->Signature_isUsed = 0u; + exiFrag->AC_EVSEChargeParameter_isUsed = 0u; + exiFrag->ServiceDiscoveryRes_isUsed = 0u; + exiFrag->ServiceID_isUsed = 0u; + exiFrag->PreChargeReq_isUsed = 0u; + exiFrag->ServiceID_isUsed = 0u; + exiFrag->NotificationMaxDelay_isUsed = 0u; + exiFrag->CableCheckReq_isUsed = 0u; + exiFrag->SalesTariffDescription_isUsed = 0u; + exiFrag->EVSEVoltageLimitAchieved_isUsed = 0u; + exiFrag->boolValue_isUsed = 0u; + exiFrag->EVCCID_isUsed = 0u; + exiFrag->DC_EVChargeParameter_isUsed = 0u; + exiFrag->ChargingStatusReq_isUsed = 0u; + exiFrag->CableCheckRes_isUsed = 0u; + exiFrag->MgmtData_isUsed = 0u; + exiFrag->MeterInfo_isUsed = 0u; + exiFrag->MeterInfo_isUsed = 0u; + exiFrag->MeterInfo_isUsed = 0u; + exiFrag->EVSEEnergyToBeDelivered_isUsed = 0u; + exiFrag->EVSEMaxCurrent_isUsed = 0u; + exiFrag->EVSEStatus_isUsed = 0u; + exiFrag->Service_isUsed = 0u; + exiFrag->Manifest_isUsed = 0u; + exiFrag->EVMaximumVoltageLimit_isUsed = 0u; + exiFrag->P_isUsed = 0u; + exiFrag->Q_isUsed = 0u; + exiFrag->X509SubjectName_isUsed = 0u; + exiFrag->intValue_isUsed = 0u; + exiFrag->ChargingProfile_isUsed = 0u; + exiFrag->G_isUsed = 0u; + exiFrag->J_isUsed = 0u; + exiFrag->ServiceScope_isUsed = 0u; + exiFrag->ReceiptRequired_isUsed = 0u; + exiFrag->ReceiptRequired_isUsed = 0u; + exiFrag->ServiceName_isUsed = 0u; + exiFrag->MeterStatus_isUsed = 0u; + exiFrag->DC_EVStatus_isUsed = 0u; + exiFrag->DC_EVStatus_isUsed = 0u; + exiFrag->DC_EVStatus_isUsed = 0u; + exiFrag->DC_EVStatus_isUsed = 0u; + exiFrag->ChargingStatusRes_isUsed = 0u; + exiFrag->ServiceCategory_isUsed = 0u; + exiFrag->Notification_isUsed = 0u; + exiFrag->X509CRL_isUsed = 0u; + exiFrag->Y_isUsed = 0u; + exiFrag->EVSEPresentVoltage_isUsed = 0u; + exiFrag->EVSEPresentVoltage_isUsed = 0u; + exiFrag->EVSEPresentVoltage_isUsed = 0u; + exiFrag->DigestValue_isUsed = 0u; + exiFrag->EVSEMaximumPowerLimit_isUsed = 0u; + exiFrag->EVSETimeStamp_isUsed = 0u; + exiFrag->EVSETimeStamp_isUsed = 0u; + exiFrag->Cost_isUsed = 0u; + exiFrag->EVSEPeakCurrentRipple_isUsed = 0u; + exiFrag->ConsumptionCost_isUsed = 0u; + exiFrag->DigestMethod_isUsed = 0u; + exiFrag->SPKISexp_isUsed = 0u; + exiFrag->SessionSetupRes_isUsed = 0u; + exiFrag->EVSECurrentLimitAchieved_isUsed = 0u; + exiFrag->ServiceDetailReq_isUsed = 0u; + exiFrag->EVSEMaximumVoltageLimit_isUsed = 0u; + exiFrag->ServiceDetailRes_isUsed = 0u; + exiFrag->SignatureProperties_isUsed = 0u; + exiFrag->EPriceLevel_isUsed = 0u; + exiFrag->EVTargetCurrent_isUsed = 0u; + exiFrag->RemainingTimeToBulkSoC_isUsed = 0u; + exiFrag->EVTargetCurrent_isUsed = 0u; + exiFrag->stringValue_isUsed = 0u; + exiFrag->SessionSetupReq_isUsed = 0u; + exiFrag->Multiplier_isUsed = 0u; + exiFrag->CertificateUpdateRes_isUsed = 0u; + exiFrag->PGPKeyID_isUsed = 0u; + exiFrag->EVTargetVoltage_isUsed = 0u; + exiFrag->EVTargetVoltage_isUsed = 0u; + exiFrag->DSAKeyValue_isUsed = 0u; + exiFrag->CertificateUpdateReq_isUsed = 0u; + exiFrag->EVMaximumCurrentLimit_isUsed = 0u; + exiFrag->CanonicalizationMethod_isUsed = 0u; + exiFrag->X509Certificate_isUsed = 0u; + exiFrag->CertificateInstallationReq_isUsed = 0u; + exiFrag->CertificateInstallationRes_isUsed = 0u; + exiFrag->EVStatus_isUsed = 0u; + exiFrag->SupportedEnergyTransferMode_isUsed = 0u; + exiFrag->SignedInfo_isUsed = 0u; + exiFrag->eMAID_isUsed = 0u; + exiFrag->eMAID_isUsed = 0u; + exiFrag->eMAID_isUsed = 0u; + exiFrag->eMAID_isUsed = 0u; + exiFrag->MaxEntriesSAScheduleTuple_isUsed = 0u; + exiFrag->PaymentOption_isUsed = 0u; + exiFrag->SubCertificates_isUsed = 0u; + exiFrag->PaymentDetailsReq_isUsed = 0u; + exiFrag->AuthorizationReq_isUsed = 0u; + exiFrag->PaymentDetailsRes_isUsed = 0u; + exiFrag->AuthorizationRes_isUsed = 0u; + exiFrag->EVSEStatusCode_isUsed = 0u; + exiFrag->PaymentOptionList_isUsed = 0u; + exiFrag->SelectedServiceList_isUsed = 0u; + exiFrag->ContractSignatureEncryptedPrivateKey_isUsed = 0u; + exiFrag->ContractSignatureEncryptedPrivateKey_isUsed = 0u; + exiFrag->SAScheduleTupleID_isUsed = 0u; + exiFrag->WeldingDetectionReq_isUsed = 0u; + exiFrag->FaultMsg_isUsed = 0u; + exiFrag->WeldingDetectionRes_isUsed = 0u; + exiFrag->ChargeProgress_isUsed = 0u; + exiFrag->SelectedPaymentOption_isUsed = 0u; + exiFrag->BulkChargingComplete_isUsed = 0u; + exiFrag->EVSEID_isUsed = 0u; + exiFrag->EVSEID_isUsed = 0u; + exiFrag->ParameterSet_isUsed = 0u; + exiFrag->EVSEID_isUsed = 0u; + exiFrag->EVSEChargeParameter_isUsed = 0u; + exiFrag->SigMeterReading_isUsed = 0u; + exiFrag->SignatureValue_isUsed = 0u; + exiFrag->SASchedules_isUsed = 0u; + exiFrag->SalesTariffID_isUsed = 0u; + exiFrag->DHpublickey_isUsed = 0u; + exiFrag->DHpublickey_isUsed = 0u; + exiFrag->ServiceParameterList_isUsed = 0u; + exiFrag->ListOfRootCertificateIDs_isUsed = 0u; + exiFrag->ListOfRootCertificateIDs_isUsed = 0u; + exiFrag->MeterID_isUsed = 0u; + exiFrag->EVSEMaximumCurrentLimit_isUsed = 0u; + exiFrag->ChargeService_isUsed = 0u; + exiFrag->amountMultiplier_isUsed = 0u; + exiFrag->RCD_isUsed = 0u; + exiFrag->EVMaximumPowerLimit_isUsed = 0u; + exiFrag->startValue_isUsed = 0u; + exiFrag->CurrentDemandReq_isUsed = 0u; + exiFrag->KeyName_isUsed = 0u; + exiFrag->DC_EVPowerDeliveryParameter_isUsed = 0u; + exiFrag->Body_isUsed = 0u; + exiFrag->ChargingComplete_isUsed = 0u; + exiFrag->EVSENotification_isUsed = 0u; + exiFrag->Value_isUsed = 0u; + exiFrag->KeyInfo_isUsed = 0u; + exiFrag->GenChallenge_isUsed = 0u; + exiFrag->GenChallenge_isUsed = 0u; + exiFrag->AC_EVChargeParameter_isUsed = 0u; + exiFrag->PMaxScheduleEntry_isUsed = 0u; + exiFrag->Parameter_isUsed = 0u; + exiFrag->X509SKI_isUsed = 0u; + exiFrag->EVSEMaximumVoltageLimit_isUsed = 0u; + exiFrag->SelectedService_isUsed = 0u; + exiFrag->PaymentServiceSelectionReq_isUsed = 0u; + exiFrag->PaymentServiceSelectionRes_isUsed = 0u; + exiFrag->Certificate_isUsed = 0u; + exiFrag->Certificate_isUsed = 0u; + exiFrag->CurrentDemandRes_isUsed = 0u; + exiFrag->EVReady_isUsed = 0u; + exiFrag->EVSEMaximumPowerLimit_isUsed = 0u; + exiFrag->SignatureMethod_isUsed = 0u; + exiFrag->PMaxSchedule_isUsed = 0u; + exiFrag->ServiceCategory_isUsed = 0u; + exiFrag->Unit_isUsed = 0u; + exiFrag->X509IssuerName_isUsed = 0u; + exiFrag->Reference_isUsed = 0u; + exiFrag->ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed = 0u; + exiFrag->EVPowerDeliveryParameter_isUsed = 0u; + exiFrag->ChargingProfileEntryMaxPower_isUsed = 0u; + exiFrag->ChargeParameterDiscoveryReq_isUsed = 0u; + exiFrag->duration_isUsed = 0u; + exiFrag->TMeter_isUsed = 0u; + exiFrag->ChargeParameterDiscoveryRes_isUsed = 0u; + exiFrag->EVMaximumCurrentLimit_isUsed = 0u; + exiFrag->ServiceList_isUsed = 0u; + exiFrag->AC_EVSEStatus_isUsed = 0u; + exiFrag->EVMaximumVoltageLimit_isUsed = 0u; + exiFrag->DC_EVStatus_isUsed = 0u; + exiFrag->SAScheduleTuple_isUsed = 0u; + exiFrag->DC_EVStatus_isUsed = 0u; + exiFrag->DC_EVStatus_isUsed = 0u; + exiFrag->BodyElement_isUsed = 0u; + exiFrag->RemainingTimeToFullSoC_isUsed = 0u; + exiFrag->RelativeTimeInterval_isUsed = 0u; + exiFrag->Transform_isUsed = 0u; + exiFrag->DepartureTime_isUsed = 0u; + exiFrag->Object_isUsed = 0u; + exiFrag->EVEnergyRequest_isUsed = 0u; + exiFrag->ServiceScope_isUsed = 0u; + exiFrag->Modulus_isUsed = 0u; + exiFrag->ChargingSession_isUsed = 0u; + exiFrag->RequestedEnergyTransferMode_isUsed = 0u; + exiFrag->SessionID_isUsed = 0u; +} +void init_iso1EXISchemaInformedElementFragmentGrammar(struct iso1EXISchemaInformedElementFragmentGrammar* exiFrag) { + exiFrag->Id_isUsed = 0u; + exiFrag->CHARACTERS_GENERIC_isUsed = 0u; +} +#endif /* DEPLOY_ISO1_CODEC_FRAGMENT */ + +void init_iso1MessageHeaderType(struct iso1MessageHeaderType* iso1MessageHeaderType) { + iso1MessageHeaderType->Notification_isUsed = 0u; + iso1MessageHeaderType->Signature_isUsed = 0u; +} + +void init_iso1SignatureType(struct iso1SignatureType* iso1SignatureType) { + iso1SignatureType->Id_isUsed = 0u; + iso1SignatureType->KeyInfo_isUsed = 0u; + iso1SignatureType->Object.arrayLen = 0u; +} + +void init_iso1PowerDeliveryReqType(struct iso1PowerDeliveryReqType* iso1PowerDeliveryReqType) { + iso1PowerDeliveryReqType->ChargingProfile_isUsed = 0u; + iso1PowerDeliveryReqType->EVPowerDeliveryParameter_isUsed = 0u; + iso1PowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed = 0u; +} + +void init_iso1ParameterType(struct iso1ParameterType* iso1ParameterType) { + iso1ParameterType->boolValue_isUsed = 0u; + iso1ParameterType->byteValue_isUsed = 0u; + iso1ParameterType->shortValue_isUsed = 0u; + iso1ParameterType->intValue_isUsed = 0u; + iso1ParameterType->physicalValue_isUsed = 0u; + iso1ParameterType->stringValue_isUsed = 0u; +} + +void init_iso1CertificateInstallationReqType(struct iso1CertificateInstallationReqType* iso1CertificateInstallationReqType) { + (void)iso1CertificateInstallationReqType; /* avoid unused warning */ +} + +void init_iso1SessionSetupResType(struct iso1SessionSetupResType* iso1SessionSetupResType) { + iso1SessionSetupResType->EVSETimeStamp_isUsed = 0u; +} + +void init_iso1EVChargeParameterType(struct iso1EVChargeParameterType* iso1EVChargeParameterType) { + iso1EVChargeParameterType->DepartureTime_isUsed = 0u; +} + +void init_iso1DiffieHellmanPublickeyType(struct iso1DiffieHellmanPublickeyType* iso1DiffieHellmanPublickeyType) { + (void)iso1DiffieHellmanPublickeyType; /* avoid unused warning */ +} + +void init_iso1ServiceDiscoveryResType(struct iso1ServiceDiscoveryResType* iso1ServiceDiscoveryResType) { + iso1ServiceDiscoveryResType->ServiceList_isUsed = 0u; +} + +void init_iso1ServiceParameterListType(struct iso1ServiceParameterListType* iso1ServiceParameterListType) { + iso1ServiceParameterListType->ParameterSet.arrayLen = 0u; +} + +void init_iso1CertificateChainType(struct iso1CertificateChainType* iso1CertificateChainType) { + iso1CertificateChainType->Id_isUsed = 0u; + iso1CertificateChainType->SubCertificates_isUsed = 0u; +} + +void init_iso1SASchedulesType(struct iso1SASchedulesType* iso1SASchedulesType) { + (void)iso1SASchedulesType; /* avoid unused warning */ +} + +void init_iso1DC_EVSEStatusType(struct iso1DC_EVSEStatusType* iso1DC_EVSEStatusType) { + iso1DC_EVSEStatusType->EVSEIsolationStatus_isUsed = 0u; +} + +void init_iso1PreChargeResType(struct iso1PreChargeResType* iso1PreChargeResType) { + (void)iso1PreChargeResType; /* avoid unused warning */ +} + +void init_iso1ParameterSetType(struct iso1ParameterSetType* iso1ParameterSetType) { + iso1ParameterSetType->Parameter.arrayLen = 0u; +} + +void init_iso1ServiceDetailReqType(struct iso1ServiceDetailReqType* iso1ServiceDetailReqType) { + (void)iso1ServiceDetailReqType; /* avoid unused warning */ +} + +void init_iso1RelativeTimeIntervalType(struct iso1RelativeTimeIntervalType* iso1RelativeTimeIntervalType) { + iso1RelativeTimeIntervalType->duration_isUsed = 0u; +} + +void init_iso1SignedInfoType(struct iso1SignedInfoType* iso1SignedInfoType) { + iso1SignedInfoType->Id_isUsed = 0u; + iso1SignedInfoType->Reference.arrayLen = 0u; +} + +void init_iso1EMAIDType(struct iso1EMAIDType* iso1EMAIDType) { + (void)iso1EMAIDType; /* avoid unused warning */ +} + +void init_iso1EVStatusType(struct iso1EVStatusType* iso1EVStatusType) { + (void)iso1EVStatusType; /* avoid unused warning */ +} + +void init_iso1ServiceListType(struct iso1ServiceListType* iso1ServiceListType) { + iso1ServiceListType->Service.arrayLen = 0u; +} + +void init_iso1EVSEChargeParameterType(struct iso1EVSEChargeParameterType* iso1EVSEChargeParameterType) { + (void)iso1EVSEChargeParameterType; /* avoid unused warning */ +} + +void init_iso1EVPowerDeliveryParameterType(struct iso1EVPowerDeliveryParameterType* iso1EVPowerDeliveryParameterType) { + (void)iso1EVPowerDeliveryParameterType; /* avoid unused warning */ +} + +void init_iso1ProfileEntryType(struct iso1ProfileEntryType* iso1ProfileEntryType) { + iso1ProfileEntryType->ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed = 0u; +} + +void init_iso1AuthorizationReqType(struct iso1AuthorizationReqType* iso1AuthorizationReqType) { + iso1AuthorizationReqType->Id_isUsed = 0u; + iso1AuthorizationReqType->GenChallenge_isUsed = 0u; +} + +void init_iso1MeterInfoType(struct iso1MeterInfoType* iso1MeterInfoType) { + iso1MeterInfoType->MeterReading_isUsed = 0u; + iso1MeterInfoType->SigMeterReading_isUsed = 0u; + iso1MeterInfoType->MeterStatus_isUsed = 0u; + iso1MeterInfoType->TMeter_isUsed = 0u; +} + +void init_iso1ManifestType(struct iso1ManifestType* iso1ManifestType) { + iso1ManifestType->Id_isUsed = 0u; + iso1ManifestType->Reference.arrayLen = 0u; +} + +void init_iso1ChargeParameterDiscoveryResType(struct iso1ChargeParameterDiscoveryResType* iso1ChargeParameterDiscoveryResType) { + iso1ChargeParameterDiscoveryResType->SASchedules_isUsed = 0u; + iso1ChargeParameterDiscoveryResType->SAScheduleList_isUsed = 0u; + iso1ChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed = 0u; + iso1ChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed = 0u; + iso1ChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed = 0u; +} + +void init_iso1PowerDeliveryResType(struct iso1PowerDeliveryResType* iso1PowerDeliveryResType) { + iso1PowerDeliveryResType->EVSEStatus_isUsed = 0u; + iso1PowerDeliveryResType->AC_EVSEStatus_isUsed = 0u; + iso1PowerDeliveryResType->DC_EVSEStatus_isUsed = 0u; +} + +void init_iso1DC_EVChargeParameterType(struct iso1DC_EVChargeParameterType* iso1DC_EVChargeParameterType) { + iso1DC_EVChargeParameterType->DepartureTime_isUsed = 0u; + iso1DC_EVChargeParameterType->EVMaximumPowerLimit_isUsed = 0u; + iso1DC_EVChargeParameterType->EVEnergyCapacity_isUsed = 0u; + iso1DC_EVChargeParameterType->EVEnergyRequest_isUsed = 0u; + iso1DC_EVChargeParameterType->FullSOC_isUsed = 0u; + iso1DC_EVChargeParameterType->BulkSOC_isUsed = 0u; +} + +void init_iso1ConsumptionCostType(struct iso1ConsumptionCostType* iso1ConsumptionCostType) { + iso1ConsumptionCostType->Cost.arrayLen = 0u; +} + +void init_iso1PMaxScheduleType(struct iso1PMaxScheduleType* iso1PMaxScheduleType) { + iso1PMaxScheduleType->PMaxScheduleEntry.arrayLen = 0u; +} + +void init_iso1PaymentOptionListType(struct iso1PaymentOptionListType* iso1PaymentOptionListType) { + iso1PaymentOptionListType->PaymentOption.arrayLen = 0u; +} + +void init_iso1ObjectType(struct iso1ObjectType* iso1ObjectType) { + iso1ObjectType->Id_isUsed = 0u; + iso1ObjectType->MimeType_isUsed = 0u; + iso1ObjectType->Encoding_isUsed = 0u; + iso1ObjectType->ANY_isUsed = 0u; +} + +void init_iso1PhysicalValueType(struct iso1PhysicalValueType* iso1PhysicalValueType) { + (void)iso1PhysicalValueType; /* avoid unused warning */ +} + +void init_iso1RSAKeyValueType(struct iso1RSAKeyValueType* iso1RSAKeyValueType) { + (void)iso1RSAKeyValueType; /* avoid unused warning */ +} + +void init_iso1SessionStopResType(struct iso1SessionStopResType* iso1SessionStopResType) { + (void)iso1SessionStopResType; /* avoid unused warning */ +} + +void init_iso1CertificateUpdateReqType(struct iso1CertificateUpdateReqType* iso1CertificateUpdateReqType) { + (void)iso1CertificateUpdateReqType; /* avoid unused warning */ +} + +void init_iso1SignatureValueType(struct iso1SignatureValueType* iso1SignatureValueType) { + iso1SignatureValueType->Id_isUsed = 0u; +} + +void init_iso1PaymentDetailsReqType(struct iso1PaymentDetailsReqType* iso1PaymentDetailsReqType) { + (void)iso1PaymentDetailsReqType; /* avoid unused warning */ +} + +void init_iso1AuthorizationResType(struct iso1AuthorizationResType* iso1AuthorizationResType) { + (void)iso1AuthorizationResType; /* avoid unused warning */ +} + +void init_iso1DC_EVSEChargeParameterType(struct iso1DC_EVSEChargeParameterType* iso1DC_EVSEChargeParameterType) { + iso1DC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed = 0u; + iso1DC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed = 0u; +} + +void init_iso1SubCertificatesType(struct iso1SubCertificatesType* iso1SubCertificatesType) { + iso1SubCertificatesType->Certificate.arrayLen = 0u; +} + +void init_iso1ChargingStatusResType(struct iso1ChargingStatusResType* iso1ChargingStatusResType) { + iso1ChargingStatusResType->EVSEMaxCurrent_isUsed = 0u; + iso1ChargingStatusResType->MeterInfo_isUsed = 0u; + iso1ChargingStatusResType->ReceiptRequired_isUsed = 0u; +} + +void init_iso1DSAKeyValueType(struct iso1DSAKeyValueType* iso1DSAKeyValueType) { + iso1DSAKeyValueType->P_isUsed = 0u; + iso1DSAKeyValueType->Q_isUsed = 0u; + iso1DSAKeyValueType->G_isUsed = 0u; + iso1DSAKeyValueType->J_isUsed = 0u; + iso1DSAKeyValueType->Seed_isUsed = 0u; + iso1DSAKeyValueType->PgenCounter_isUsed = 0u; +} + +void init_iso1ListOfRootCertificateIDsType(struct iso1ListOfRootCertificateIDsType* iso1ListOfRootCertificateIDsType) { + iso1ListOfRootCertificateIDsType->RootCertificateID.arrayLen = 0u; +} + +void init_iso1ChargeServiceType(struct iso1ChargeServiceType* iso1ChargeServiceType) { + iso1ChargeServiceType->ServiceName_isUsed = 0u; + iso1ChargeServiceType->ServiceScope_isUsed = 0u; +} + +void init_iso1IntervalType(struct iso1IntervalType* iso1IntervalType) { + (void)iso1IntervalType; /* avoid unused warning */ +} + +void init_iso1MeteringReceiptReqType(struct iso1MeteringReceiptReqType* iso1MeteringReceiptReqType) { + iso1MeteringReceiptReqType->Id_isUsed = 0u; + iso1MeteringReceiptReqType->SAScheduleTupleID_isUsed = 0u; +} + +void init_iso1ServiceDetailResType(struct iso1ServiceDetailResType* iso1ServiceDetailResType) { + iso1ServiceDetailResType->ServiceParameterList_isUsed = 0u; +} + +void init_iso1KeyValueType(struct iso1KeyValueType* iso1KeyValueType) { + iso1KeyValueType->DSAKeyValue_isUsed = 0u; + iso1KeyValueType->RSAKeyValue_isUsed = 0u; + iso1KeyValueType->ANY_isUsed = 0u; +} + +void init_iso1SelectedServiceListType(struct iso1SelectedServiceListType* iso1SelectedServiceListType) { + iso1SelectedServiceListType->SelectedService.arrayLen = 0u; +} + +void init_iso1CableCheckResType(struct iso1CableCheckResType* iso1CableCheckResType) { + (void)iso1CableCheckResType; /* avoid unused warning */ +} + +void init_iso1X509IssuerSerialType(struct iso1X509IssuerSerialType* iso1X509IssuerSerialType) { + (void)iso1X509IssuerSerialType; /* avoid unused warning */ +} + +void init_iso1KeyInfoType(struct iso1KeyInfoType* iso1KeyInfoType) { + iso1KeyInfoType->Id_isUsed = 0u; + iso1KeyInfoType->KeyName.arrayLen = 0u; + iso1KeyInfoType->KeyValue.arrayLen = 0u; + iso1KeyInfoType->RetrievalMethod.arrayLen = 0u; + iso1KeyInfoType->X509Data.arrayLen = 0u; + iso1KeyInfoType->PGPData.arrayLen = 0u; + iso1KeyInfoType->SPKIData.arrayLen = 0u; + iso1KeyInfoType->MgmtData.arrayLen = 0u; + iso1KeyInfoType->ANY_isUsed = 0u; +} + +void init_iso1TransformsType(struct iso1TransformsType* iso1TransformsType) { + iso1TransformsType->Transform.arrayLen = 0u; +} + +void init_iso1ChargeParameterDiscoveryReqType(struct iso1ChargeParameterDiscoveryReqType* iso1ChargeParameterDiscoveryReqType) { + iso1ChargeParameterDiscoveryReqType->MaxEntriesSAScheduleTuple_isUsed = 0u; + iso1ChargeParameterDiscoveryReqType->EVChargeParameter_isUsed = 0u; + iso1ChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed = 0u; + iso1ChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed = 0u; +} + +void init_iso1PreChargeReqType(struct iso1PreChargeReqType* iso1PreChargeReqType) { + (void)iso1PreChargeReqType; /* avoid unused warning */ +} + +void init_iso1EVSEStatusType(struct iso1EVSEStatusType* iso1EVSEStatusType) { + (void)iso1EVSEStatusType; /* avoid unused warning */ +} + +void init_iso1SignatureMethodType(struct iso1SignatureMethodType* iso1SignatureMethodType) { + iso1SignatureMethodType->HMACOutputLength_isUsed = 0u; + iso1SignatureMethodType->ANY_isUsed = 0u; +} + +void init_iso1X509DataType(struct iso1X509DataType* iso1X509DataType) { + iso1X509DataType->X509IssuerSerial.arrayLen = 0u; + iso1X509DataType->X509SKI.arrayLen = 0u; + iso1X509DataType->X509SubjectName.arrayLen = 0u; + iso1X509DataType->X509Certificate.arrayLen = 0u; + iso1X509DataType->X509CRL.arrayLen = 0u; + iso1X509DataType->ANY_isUsed = 0u; +} + +void init_iso1NotificationType(struct iso1NotificationType* iso1NotificationType) { + iso1NotificationType->FaultMsg_isUsed = 0u; +} + +void init_iso1SAScheduleListType(struct iso1SAScheduleListType* iso1SAScheduleListType) { + iso1SAScheduleListType->SAScheduleTuple.arrayLen = 0u; +} + +void init_iso1BodyType(struct iso1BodyType* iso1BodyType) { + iso1BodyType->BodyElement_isUsed = 0u; + iso1BodyType->SessionSetupReq_isUsed = 0u; + iso1BodyType->SessionSetupRes_isUsed = 0u; + iso1BodyType->ServiceDiscoveryReq_isUsed = 0u; + iso1BodyType->ServiceDiscoveryRes_isUsed = 0u; + iso1BodyType->ServiceDetailReq_isUsed = 0u; + iso1BodyType->ServiceDetailRes_isUsed = 0u; + iso1BodyType->PaymentServiceSelectionReq_isUsed = 0u; + iso1BodyType->PaymentServiceSelectionRes_isUsed = 0u; + iso1BodyType->PaymentDetailsReq_isUsed = 0u; + iso1BodyType->PaymentDetailsRes_isUsed = 0u; + iso1BodyType->AuthorizationReq_isUsed = 0u; + iso1BodyType->AuthorizationRes_isUsed = 0u; + iso1BodyType->ChargeParameterDiscoveryReq_isUsed = 0u; + iso1BodyType->ChargeParameterDiscoveryRes_isUsed = 0u; + iso1BodyType->PowerDeliveryReq_isUsed = 0u; + iso1BodyType->PowerDeliveryRes_isUsed = 0u; + iso1BodyType->MeteringReceiptReq_isUsed = 0u; + iso1BodyType->MeteringReceiptRes_isUsed = 0u; + iso1BodyType->SessionStopReq_isUsed = 0u; + iso1BodyType->SessionStopRes_isUsed = 0u; + iso1BodyType->CertificateUpdateReq_isUsed = 0u; + iso1BodyType->CertificateUpdateRes_isUsed = 0u; + iso1BodyType->CertificateInstallationReq_isUsed = 0u; + iso1BodyType->CertificateInstallationRes_isUsed = 0u; + iso1BodyType->ChargingStatusReq_isUsed = 0u; + iso1BodyType->ChargingStatusRes_isUsed = 0u; + iso1BodyType->CableCheckReq_isUsed = 0u; + iso1BodyType->CableCheckRes_isUsed = 0u; + iso1BodyType->PreChargeReq_isUsed = 0u; + iso1BodyType->PreChargeRes_isUsed = 0u; + iso1BodyType->CurrentDemandReq_isUsed = 0u; + iso1BodyType->CurrentDemandRes_isUsed = 0u; + iso1BodyType->WeldingDetectionReq_isUsed = 0u; + iso1BodyType->WeldingDetectionRes_isUsed = 0u; +} + +void init_iso1ChargingProfileType(struct iso1ChargingProfileType* iso1ChargingProfileType) { + iso1ChargingProfileType->ProfileEntry.arrayLen = 0u; +} + +void init_iso1TransformType(struct iso1TransformType* iso1TransformType) { + iso1TransformType->ANY_isUsed = 0u; + iso1TransformType->XPath.arrayLen = 0u; +} + +void init_iso1SAScheduleTupleType(struct iso1SAScheduleTupleType* iso1SAScheduleTupleType) { + iso1SAScheduleTupleType->SalesTariff_isUsed = 0u; +} + +void init_iso1AC_EVChargeParameterType(struct iso1AC_EVChargeParameterType* iso1AC_EVChargeParameterType) { + iso1AC_EVChargeParameterType->DepartureTime_isUsed = 0u; +} + +void init_iso1AnonType_V2G_Message(struct iso1AnonType_V2G_Message* iso1AnonType_V2G_Message) { + (void)iso1AnonType_V2G_Message; /* avoid unused warning */ +} + +void init_iso1PaymentDetailsResType(struct iso1PaymentDetailsResType* iso1PaymentDetailsResType) { + (void)iso1PaymentDetailsResType; /* avoid unused warning */ +} + +void init_iso1ContractSignatureEncryptedPrivateKeyType(struct iso1ContractSignatureEncryptedPrivateKeyType* iso1ContractSignatureEncryptedPrivateKeyType) { + (void)iso1ContractSignatureEncryptedPrivateKeyType; /* avoid unused warning */ +} + +void init_iso1PMaxScheduleEntryType(struct iso1PMaxScheduleEntryType* iso1PMaxScheduleEntryType) { + iso1PMaxScheduleEntryType->TimeInterval_isUsed = 0u; + iso1PMaxScheduleEntryType->RelativeTimeInterval_isUsed = 0u; +} + +void init_iso1SPKIDataType(struct iso1SPKIDataType* iso1SPKIDataType) { + iso1SPKIDataType->SPKISexp.arrayLen = 0u; + iso1SPKIDataType->ANY_isUsed = 0u; +} + +void init_iso1MeteringReceiptResType(struct iso1MeteringReceiptResType* iso1MeteringReceiptResType) { + iso1MeteringReceiptResType->EVSEStatus_isUsed = 0u; + iso1MeteringReceiptResType->AC_EVSEStatus_isUsed = 0u; + iso1MeteringReceiptResType->DC_EVSEStatus_isUsed = 0u; +} + +void init_iso1SessionStopReqType(struct iso1SessionStopReqType* iso1SessionStopReqType) { + (void)iso1SessionStopReqType; /* avoid unused warning */ +} + +void init_iso1WeldingDetectionResType(struct iso1WeldingDetectionResType* iso1WeldingDetectionResType) { + (void)iso1WeldingDetectionResType; /* avoid unused warning */ +} + +void init_iso1ReferenceType(struct iso1ReferenceType* iso1ReferenceType) { + iso1ReferenceType->Id_isUsed = 0u; + iso1ReferenceType->URI_isUsed = 0u; + iso1ReferenceType->Type_isUsed = 0u; + iso1ReferenceType->Transforms_isUsed = 0u; +} + +void init_iso1CurrentDemandReqType(struct iso1CurrentDemandReqType* iso1CurrentDemandReqType) { + iso1CurrentDemandReqType->EVMaximumVoltageLimit_isUsed = 0u; + iso1CurrentDemandReqType->EVMaximumCurrentLimit_isUsed = 0u; + iso1CurrentDemandReqType->EVMaximumPowerLimit_isUsed = 0u; + iso1CurrentDemandReqType->BulkChargingComplete_isUsed = 0u; + iso1CurrentDemandReqType->RemainingTimeToFullSoC_isUsed = 0u; + iso1CurrentDemandReqType->RemainingTimeToBulkSoC_isUsed = 0u; +} + +void init_iso1SalesTariffEntryType(struct iso1SalesTariffEntryType* iso1SalesTariffEntryType) { + iso1SalesTariffEntryType->TimeInterval_isUsed = 0u; + iso1SalesTariffEntryType->RelativeTimeInterval_isUsed = 0u; + iso1SalesTariffEntryType->EPriceLevel_isUsed = 0u; + iso1SalesTariffEntryType->ConsumptionCost.arrayLen = 0u; +} + +void init_iso1EntryType(struct iso1EntryType* iso1EntryType) { + iso1EntryType->TimeInterval_isUsed = 0u; + iso1EntryType->RelativeTimeInterval_isUsed = 0u; +} + +void init_iso1SessionSetupReqType(struct iso1SessionSetupReqType* iso1SessionSetupReqType) { + (void)iso1SessionSetupReqType; /* avoid unused warning */ +} + +void init_iso1CostType(struct iso1CostType* iso1CostType) { + iso1CostType->amountMultiplier_isUsed = 0u; +} + +void init_iso1DC_EVPowerDeliveryParameterType(struct iso1DC_EVPowerDeliveryParameterType* iso1DC_EVPowerDeliveryParameterType) { + iso1DC_EVPowerDeliveryParameterType->BulkChargingComplete_isUsed = 0u; +} + +void init_iso1RetrievalMethodType(struct iso1RetrievalMethodType* iso1RetrievalMethodType) { + iso1RetrievalMethodType->URI_isUsed = 0u; + iso1RetrievalMethodType->Type_isUsed = 0u; + iso1RetrievalMethodType->Transforms_isUsed = 0u; +} + +void init_iso1CertificateUpdateResType(struct iso1CertificateUpdateResType* iso1CertificateUpdateResType) { + iso1CertificateUpdateResType->RetryCounter_isUsed = 0u; +} + +void init_iso1CertificateInstallationResType(struct iso1CertificateInstallationResType* iso1CertificateInstallationResType) { + (void)iso1CertificateInstallationResType; /* avoid unused warning */ +} + +void init_iso1CanonicalizationMethodType(struct iso1CanonicalizationMethodType* iso1CanonicalizationMethodType) { + iso1CanonicalizationMethodType->ANY_isUsed = 0u; +} + +void init_iso1WeldingDetectionReqType(struct iso1WeldingDetectionReqType* iso1WeldingDetectionReqType) { + (void)iso1WeldingDetectionReqType; /* avoid unused warning */ +} + +void init_iso1DC_EVStatusType(struct iso1DC_EVStatusType* iso1DC_EVStatusType) { + (void)iso1DC_EVStatusType; /* avoid unused warning */ +} + +void init_iso1CurrentDemandResType(struct iso1CurrentDemandResType* iso1CurrentDemandResType) { + iso1CurrentDemandResType->EVSEMaximumVoltageLimit_isUsed = 0u; + iso1CurrentDemandResType->EVSEMaximumCurrentLimit_isUsed = 0u; + iso1CurrentDemandResType->EVSEMaximumPowerLimit_isUsed = 0u; + iso1CurrentDemandResType->MeterInfo_isUsed = 0u; + iso1CurrentDemandResType->ReceiptRequired_isUsed = 0u; +} + +void init_iso1ServiceType(struct iso1ServiceType* iso1ServiceType) { + iso1ServiceType->ServiceName_isUsed = 0u; + iso1ServiceType->ServiceScope_isUsed = 0u; +} + +void init_iso1ServiceDiscoveryReqType(struct iso1ServiceDiscoveryReqType* iso1ServiceDiscoveryReqType) { + iso1ServiceDiscoveryReqType->ServiceScope_isUsed = 0u; + iso1ServiceDiscoveryReqType->ServiceCategory_isUsed = 0u; +} + +void init_iso1AC_EVSEChargeParameterType(struct iso1AC_EVSEChargeParameterType* iso1AC_EVSEChargeParameterType) { + (void)iso1AC_EVSEChargeParameterType; /* avoid unused warning */ +} + +void init_iso1CableCheckReqType(struct iso1CableCheckReqType* iso1CableCheckReqType) { + (void)iso1CableCheckReqType; /* avoid unused warning */ +} + +void init_iso1SelectedServiceType(struct iso1SelectedServiceType* iso1SelectedServiceType) { + iso1SelectedServiceType->ParameterSetID_isUsed = 0u; +} + +void init_iso1AC_EVSEStatusType(struct iso1AC_EVSEStatusType* iso1AC_EVSEStatusType) { + (void)iso1AC_EVSEStatusType; /* avoid unused warning */ +} + +void init_iso1SalesTariffType(struct iso1SalesTariffType* iso1SalesTariffType) { + iso1SalesTariffType->Id_isUsed = 0u; + iso1SalesTariffType->SalesTariffDescription_isUsed = 0u; + iso1SalesTariffType->NumEPriceLevels_isUsed = 0u; + iso1SalesTariffType->SalesTariffEntry.arrayLen = 0u; +} + +void init_iso1PaymentServiceSelectionReqType(struct iso1PaymentServiceSelectionReqType* iso1PaymentServiceSelectionReqType) { + (void)iso1PaymentServiceSelectionReqType; /* avoid unused warning */ +} + +void init_iso1SignaturePropertiesType(struct iso1SignaturePropertiesType* iso1SignaturePropertiesType) { + iso1SignaturePropertiesType->Id_isUsed = 0u; + iso1SignaturePropertiesType->SignatureProperty.arrayLen = 0u; +} + +void init_iso1BodyBaseType(struct iso1BodyBaseType* iso1BodyBaseType) { + (void)iso1BodyBaseType; /* avoid unused warning */ +} + +void init_iso1SupportedEnergyTransferModeType(struct iso1SupportedEnergyTransferModeType* iso1SupportedEnergyTransferModeType) { + iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen = 0u; +} + +void init_iso1ChargingStatusReqType(struct iso1ChargingStatusReqType* iso1ChargingStatusReqType) { + (void)iso1ChargingStatusReqType; /* avoid unused warning */ +} + +void init_iso1PaymentServiceSelectionResType(struct iso1PaymentServiceSelectionResType* iso1PaymentServiceSelectionResType) { + (void)iso1PaymentServiceSelectionResType; /* avoid unused warning */ +} + +void init_iso1DigestMethodType(struct iso1DigestMethodType* iso1DigestMethodType) { + iso1DigestMethodType->ANY_isUsed = 0u; +} + +void init_iso1SignaturePropertyType(struct iso1SignaturePropertyType* iso1SignaturePropertyType) { + iso1SignaturePropertyType->Id_isUsed = 0u; + iso1SignaturePropertyType->ANY_isUsed = 0u; +} + +void init_iso1PGPDataType(struct iso1PGPDataType* iso1PGPDataType) { + iso1PGPDataType->PGPKeyID_isUsed = 0u; + iso1PGPDataType->PGPKeyPacket_isUsed = 0u; + iso1PGPDataType->ANY_isUsed = 0u; +} + + + +#endif /* DEPLOY_ISO1_CODEC */ + +#endif + diff --git a/csharp/vc2022/src/iso1/iso1EXIDatatypes.h b/csharp/vc2022/src/iso1/iso1EXIDatatypes.h new file mode 100644 index 0000000..94b9142 --- /dev/null +++ b/csharp/vc2022/src/iso1/iso1EXIDatatypes.h @@ -0,0 +1,2992 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIDatatypes.h + * \brief Datatype definitions and structs for given XML Schema definitions and initialization methods + * + */ + +#ifndef EXI_iso1_DATATYPES_H +#define EXI_iso1_DATATYPES_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define SUPPORT_YES 1 +#define SUPPORT_NO 2 +#define DEPLOY_ISO1_CODEC SUPPORT_YES +#define DEPLOY_ISO1_CODEC_FRAGMENT SUPPORT_YES + +#if DEPLOY_ISO1_CODEC == SUPPORT_YES + +#include + +#include "EXITypes.h" + + +/* Datatype definitions and structs for given XML Schema definitions */ + +#define UNION_YES 1 +#define UNION_NO 2 +#define SAVE_MEMORY_WITH_UNNAMED_UNION UNION_YES + +/* Note: Please find below a list of occurrence limits that have been applied */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial from unbounded to 1 (see #define iso1X509DataType_X509IssuerSerial_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":X509SKI from unbounded to 1 (see #define iso1X509DataType_X509SKI_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":X509SubjectName from unbounded to 1 (see #define iso1X509DataType_X509SubjectName_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":X509Certificate from unbounded to 1 (see #define iso1X509DataType_X509Certificate_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":X509CRL from unbounded to 1 (see #define iso1X509DataType_X509CRL_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":XPath from unbounded to 1 (see #define iso1TransformType_XPath_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":SPKISexp from unbounded to 1 (see #define iso1SPKIDataType_SPKISexp_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2013:MsgDataTypes":RootCertificateID from unbounded to 5 (see #define iso1ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":Transform from unbounded to 1 (see #define iso1TransformsType_Transform_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":SignatureProperty from unbounded to 1 (see #define iso1SignaturePropertiesType_SignatureProperty_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":Reference from unbounded to 1 (see #define iso1SignedInfoType_Reference_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":Reference from unbounded to 1 (see #define iso1ManifestType_Reference_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2013:MsgDataTypes":PMaxScheduleEntry from unbounded to 5 (see #define iso1PMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":KeyName from unbounded to 1 (see #define iso1KeyInfoType_KeyName_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":KeyValue from unbounded to 1 (see #define iso1KeyInfoType_KeyValue_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":RetrievalMethod from unbounded to 1 (see #define iso1KeyInfoType_RetrievalMethod_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":X509Data from unbounded to 1 (see #define iso1KeyInfoType_X509Data_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":PGPData from unbounded to 1 (see #define iso1KeyInfoType_PGPData_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":SPKIData from unbounded to 1 (see #define iso1KeyInfoType_SPKIData_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":MgmtData from unbounded to 1 (see #define iso1KeyInfoType_MgmtData_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2013:MsgDataTypes":SalesTariffEntry from unbounded to 5 (see #define iso1SalesTariffType_SalesTariffEntry_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":Object from unbounded to 1 (see #define iso1SignatureType_Object_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2013:MsgDataTypes":ParameterSet from unbounded to 5 (see #define iso1ServiceParameterListType_ParameterSet_ARRAY_SIZE) */ + + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVChargeParameterType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1})', derivedBy='RESTRICTION'. */ +struct iso1EVChargeParameterType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":DepartureTime, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t DepartureTime ; + unsigned int DepartureTime_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DiffieHellmanPublickeyType', base type name='dHpublickeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +#define iso1DiffieHellmanPublickeyType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1DiffieHellmanPublickeyType_CONTENT_BYTES_SIZE 350 +struct iso1DiffieHellmanPublickeyType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso1DiffieHellmanPublickeyType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + /* simple content: urn:iso:15118:2:2013:MsgDataTypes,dHpublickeyType */ + struct { + uint8_t bytes[iso1DiffieHellmanPublickeyType_CONTENT_BYTES_SIZE]; + uint16_t bytesLen; + } CONTENT ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SASchedulesType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct iso1SASchedulesType { + int noContent; /* avoid warning */ +}; + +typedef enum { + iso1DC_EVErrorCodeType_NO_ERROR = 0, + iso1DC_EVErrorCodeType_FAILED_RESSTemperatureInhibit = 1, + iso1DC_EVErrorCodeType_FAILED_EVShiftPosition = 2, + iso1DC_EVErrorCodeType_FAILED_ChargerConnectorLockFault = 3, + iso1DC_EVErrorCodeType_FAILED_EVRESSMalfunction = 4, + iso1DC_EVErrorCodeType_FAILED_ChargingCurrentdifferential = 5, + iso1DC_EVErrorCodeType_FAILED_ChargingVoltageOutOfRange = 6, + iso1DC_EVErrorCodeType_Reserved_A = 7, + iso1DC_EVErrorCodeType_Reserved_B = 8, + iso1DC_EVErrorCodeType_Reserved_C = 9, + iso1DC_EVErrorCodeType_FAILED_ChargingSystemIncompatibility = 10, + iso1DC_EVErrorCodeType_NoData = 11 +} iso1DC_EVErrorCodeType; + +typedef enum { + iso1EVSENotificationType_None = 0, + iso1EVSENotificationType_StopCharging = 1, + iso1EVSENotificationType_ReNegotiation = 2 +} iso1EVSENotificationType; + +typedef enum { + iso1responseCodeType_OK = 0, + iso1responseCodeType_OK_NewSessionEstablished = 1, + iso1responseCodeType_OK_OldSessionJoined = 2, + iso1responseCodeType_OK_CertificateExpiresSoon = 3, + iso1responseCodeType_FAILED = 4, + iso1responseCodeType_FAILED_SequenceError = 5, + iso1responseCodeType_FAILED_ServiceIDInvalid = 6, + iso1responseCodeType_FAILED_UnknownSession = 7, + iso1responseCodeType_FAILED_ServiceSelectionInvalid = 8, + iso1responseCodeType_FAILED_PaymentSelectionInvalid = 9, + iso1responseCodeType_FAILED_CertificateExpired = 10, + iso1responseCodeType_FAILED_SignatureError = 11, + iso1responseCodeType_FAILED_NoCertificateAvailable = 12, + iso1responseCodeType_FAILED_CertChainError = 13, + iso1responseCodeType_FAILED_ChallengeInvalid = 14, + iso1responseCodeType_FAILED_ContractCanceled = 15, + iso1responseCodeType_FAILED_WrongChargeParameter = 16, + iso1responseCodeType_FAILED_PowerDeliveryNotApplied = 17, + iso1responseCodeType_FAILED_TariffSelectionInvalid = 18, + iso1responseCodeType_FAILED_ChargingProfileInvalid = 19, + iso1responseCodeType_FAILED_MeteringSignatureNotValid = 20, + iso1responseCodeType_FAILED_NoChargeServiceSelected = 21, + iso1responseCodeType_FAILED_WrongEnergyTransferMode = 22, + iso1responseCodeType_FAILED_ContactorError = 23, + iso1responseCodeType_FAILED_CertificateNotAllowedAtThisEVSE = 24, + iso1responseCodeType_FAILED_CertificateRevoked = 25 +} iso1responseCodeType; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDetailReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ServiceID)', derivedBy='EXTENSION'. */ +struct iso1ServiceDetailReqType { + /* element: "urn:iso:15118:2:2013:MsgBody":ServiceID, urn:iso:15118:2:2013:MsgDataTypes,serviceIDType */ + uint16_t ServiceID ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":start,"urn:iso:15118:2:2013:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */ +struct iso1RelativeTimeIntervalType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":start, urn:iso:15118:2:2013:MsgDataTypes,#AnonType_startRelativeTimeIntervalType */ + uint32_t start ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":duration, urn:iso:15118:2:2013:MsgDataTypes,#AnonType_durationRelativeTimeIntervalType */ + uint32_t duration ; + unsigned int duration_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EMAIDType', base type name='eMAIDType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +#define iso1EMAIDType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1EMAIDType_CONTENT_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso1EMAIDType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso1EMAIDType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + /* simple content: urn:iso:15118:2:2013:MsgDataTypes,eMAIDType */ + struct { + exi_string_character_t characters[iso1EMAIDType_CONTENT_CHARACTERS_SIZE]; + uint16_t charactersLen; + } CONTENT ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVStatusType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct iso1EVStatusType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEChargeParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct iso1EVSEChargeParameterType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVPowerDeliveryParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct iso1EVPowerDeliveryParameterType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,AuthorizationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":GenChallenge{0-1})', derivedBy='EXTENSION'. */ +#define iso1AuthorizationReqType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1AuthorizationReqType_GenChallenge_BYTES_SIZE 16 /* XML schema facet length for urn:iso:15118:2:2013:MsgDataTypes,genChallengeType is 16 */ +struct iso1AuthorizationReqType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso1AuthorizationReqType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgBody":GenChallenge, urn:iso:15118:2:2013:MsgDataTypes,genChallengeType */ + struct { + uint8_t bytes[iso1AuthorizationReqType_GenChallenge_BYTES_SIZE]; + uint16_t bytesLen; + } GenChallenge ; + unsigned int GenChallenge_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":MeterID,"urn:iso:15118:2:2013:MsgDataTypes":MeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ +#define iso1MeterInfoType_MeterID_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,meterIDType is 32 */ +#define iso1MeterInfoType_SigMeterReading_BYTES_SIZE 64 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,sigMeterReadingType is 64 */ +struct iso1MeterInfoType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":MeterID, urn:iso:15118:2:2013:MsgDataTypes,meterIDType */ + struct { + exi_string_character_t characters[iso1MeterInfoType_MeterID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } MeterID ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":MeterReading, http://www.w3.org/2001/XMLSchema,unsignedLong */ + uint64_t MeterReading ; + unsigned int MeterReading_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":SigMeterReading, urn:iso:15118:2:2013:MsgDataTypes,sigMeterReadingType */ + struct { + uint8_t bytes[iso1MeterInfoType_SigMeterReading_BYTES_SIZE]; + uint16_t bytesLen; + } SigMeterReading ; + unsigned int SigMeterReading_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":MeterStatus, urn:iso:15118:2:2013:MsgDataTypes,meterStatusType */ + int16_t MeterStatus ; + unsigned int MeterStatus_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":TMeter, http://www.w3.org/2001/XMLSchema,long */ + int64_t TMeter ; + unsigned int TMeter_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define iso1ObjectType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1ObjectType_MimeType_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1ObjectType_Encoding_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1ObjectType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso1ObjectType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso1ObjectType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* attribute: MimeType {http://www.w3.org/2001/XMLSchema,string} */ + struct { + exi_string_character_t characters[iso1ObjectType_MimeType_CHARACTERS_SIZE]; + uint16_t charactersLen; + } MimeType ; + unsigned int MimeType_isUsed:1; + /* attribute: Encoding {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso1ObjectType_Encoding_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Encoding ; + unsigned int Encoding_isUsed:1; + /* element: WC[##any] */ + struct { + exi_string_character_t characters[iso1ObjectType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */ +#define iso1RSAKeyValueType_Modulus_BYTES_SIZE 350 +#define iso1RSAKeyValueType_Exponent_BYTES_SIZE 350 +struct iso1RSAKeyValueType { + /* element: "http://www.w3.org/2000/09/xmldsig#":Modulus, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[iso1RSAKeyValueType_Modulus_BYTES_SIZE]; + uint16_t bytesLen; + } Modulus ; + /* element: "http://www.w3.org/2000/09/xmldsig#":Exponent, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[iso1RSAKeyValueType_Exponent_BYTES_SIZE]; + uint16_t bytesLen; + } Exponent ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionStopResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */ +struct iso1SessionStopResType { + /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */ + iso1responseCodeType ResponseCode ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +#define iso1SignatureValueType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1SignatureValueType_CONTENT_BYTES_SIZE 350 +struct iso1SignatureValueType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso1SignatureValueType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* simple content: http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + uint8_t bytes[iso1SignatureValueType_CONTENT_BYTES_SIZE]; + uint16_t bytesLen; + } CONTENT ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SubCertificatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate{1-4})', derivedBy='RESTRICTION'. */ +#define iso1SubCertificatesType_Certificate_BYTES_SIZE 800 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,certificateType is 800 */ +#define iso1SubCertificatesType_Certificate_ARRAY_SIZE 4 +struct iso1SubCertificatesType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":Certificate, urn:iso:15118:2:2013:MsgDataTypes,certificateType */ + struct { + struct { + uint8_t bytes[iso1SubCertificatesType_Certificate_BYTES_SIZE]; + uint16_t bytesLen; + } array[iso1SubCertificatesType_Certificate_ARRAY_SIZE]; + uint16_t arrayLen; + } Certificate; +}; + +typedef enum { + iso1faultCodeType_ParsingError = 0, + iso1faultCodeType_NoTLSRootCertificatAvailable = 1, + iso1faultCodeType_UnknownError = 2 +} iso1faultCodeType; + +typedef enum { + iso1DC_EVSEStatusCodeType_EVSE_NotReady = 0, + iso1DC_EVSEStatusCodeType_EVSE_Ready = 1, + iso1DC_EVSEStatusCodeType_EVSE_Shutdown = 2, + iso1DC_EVSEStatusCodeType_EVSE_UtilityInterruptEvent = 3, + iso1DC_EVSEStatusCodeType_EVSE_IsolationMonitoringActive = 4, + iso1DC_EVSEStatusCodeType_EVSE_EmergencyShutdown = 5, + iso1DC_EVSEStatusCodeType_EVSE_Malfunction = 6, + iso1DC_EVSEStatusCodeType_Reserved_8 = 7, + iso1DC_EVSEStatusCodeType_Reserved_9 = 8, + iso1DC_EVSEStatusCodeType_Reserved_A = 9, + iso1DC_EVSEStatusCodeType_Reserved_B = 10, + iso1DC_EVSEStatusCodeType_Reserved_C = 11 +} iso1DC_EVSEStatusCodeType; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */ +#define iso1DSAKeyValueType_P_BYTES_SIZE 350 +#define iso1DSAKeyValueType_Q_BYTES_SIZE 350 +#define iso1DSAKeyValueType_G_BYTES_SIZE 350 +#define iso1DSAKeyValueType_Y_BYTES_SIZE 350 +#define iso1DSAKeyValueType_J_BYTES_SIZE 350 +#define iso1DSAKeyValueType_Seed_BYTES_SIZE 350 +#define iso1DSAKeyValueType_PgenCounter_BYTES_SIZE 350 +struct iso1DSAKeyValueType { + /* element: "http://www.w3.org/2000/09/xmldsig#":P, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[iso1DSAKeyValueType_P_BYTES_SIZE]; + uint16_t bytesLen; + } P ; + unsigned int P_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Q, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[iso1DSAKeyValueType_Q_BYTES_SIZE]; + uint16_t bytesLen; + } Q ; + unsigned int Q_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":G, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[iso1DSAKeyValueType_G_BYTES_SIZE]; + uint16_t bytesLen; + } G ; + unsigned int G_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Y, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[iso1DSAKeyValueType_Y_BYTES_SIZE]; + uint16_t bytesLen; + } Y ; + /* element: "http://www.w3.org/2000/09/xmldsig#":J, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[iso1DSAKeyValueType_J_BYTES_SIZE]; + uint16_t bytesLen; + } J ; + unsigned int J_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Seed, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[iso1DSAKeyValueType_Seed_BYTES_SIZE]; + uint16_t bytesLen; + } Seed ; + unsigned int Seed_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":PgenCounter, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[iso1DSAKeyValueType_PgenCounter_BYTES_SIZE]; + uint16_t bytesLen; + } PgenCounter ; + unsigned int PgenCounter_isUsed:1; +}; + +typedef enum { + iso1EVSEProcessingType_Finished = 0, + iso1EVSEProcessingType_Ongoing = 1, + iso1EVSEProcessingType_Ongoing_WaitingForCustomerInteraction = 2 +} iso1EVSEProcessingType; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct iso1IntervalType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,MeteringReceiptReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":SessionID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2013:MsgBody":MeterInfo)', derivedBy='EXTENSION'. */ +#define iso1MeteringReceiptReqType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1MeteringReceiptReqType_SessionID_BYTES_SIZE 8 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,sessionIDType is 8 */ +struct iso1MeteringReceiptReqType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso1MeteringReceiptReqType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgBody":SessionID, urn:iso:15118:2:2013:MsgDataTypes,sessionIDType */ + struct { + uint8_t bytes[iso1MeteringReceiptReqType_SessionID_BYTES_SIZE]; + uint16_t bytesLen; + } SessionID ; + /* element: "urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID, urn:iso:15118:2:2013:MsgDataTypes,SAIDType */ + uint8_t SAScheduleTupleID ; + unsigned int SAScheduleTupleID_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgBody":MeterInfo, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":MeterID,"urn:iso:15118:2:2013:MsgDataTypes":MeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ + struct iso1MeterInfoType MeterInfo ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */ +#define iso1KeyValueType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso1KeyValueType { + /* element: "http://www.w3.org/2000/09/xmldsig#":DSAKeyValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */ + struct iso1DSAKeyValueType DSAKeyValue ; + unsigned int DSAKeyValue_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":RSAKeyValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */ + struct iso1RSAKeyValueType RSAKeyValue ; + unsigned int RSAKeyValue_isUsed:1; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[iso1KeyValueType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */ +#define iso1X509IssuerSerialType_X509IssuerName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1X509IssuerSerialType_X509SerialNumber_BYTES_SIZE 20 +struct iso1X509IssuerSerialType { + /* element: "http://www.w3.org/2000/09/xmldsig#":X509IssuerName, http://www.w3.org/2001/XMLSchema,string */ + struct { + exi_string_character_t characters[iso1X509IssuerSerialType_X509IssuerName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } X509IssuerName ; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509SerialNumber, http://www.w3.org/2001/XMLSchema,integer */ + /* int64_t X509SerialNumber; */ + struct { + /** a sign value */ + int negative; + /* container size */ + /* size_t size; iso1X509IssuerSerialType_X509SerialNumber_BYTES_SIZE */ + /** array data container */ + /* For negative values, the Unsigned Integer holds the + * magnitude of the value minus 1 */ + uint8_t data[iso1X509IssuerSerialType_X509SerialNumber_BYTES_SIZE]; + /** array length (len <= size) */ + size_t len; + } X509SerialNumber; +}; + +typedef enum { + iso1chargingSessionType_Terminate = 0, + iso1chargingSessionType_Pause = 1 +} iso1chargingSessionType; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ +struct iso1EVSEStatusType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay, http://www.w3.org/2001/XMLSchema,unsignedShort */ + uint16_t NotificationMaxDelay ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSENotification, urn:iso:15118:2:2013:MsgDataTypes,EVSENotificationType */ + iso1EVSENotificationType EVSENotification ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso1SignatureMethodType_Algorithm_CHARACTERS_SIZE 65 + EXTRA_CHAR +#define iso1SignatureMethodType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso1SignatureMethodType { + /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso1SignatureMethodType_Algorithm_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Algorithm ; + /* element: "http://www.w3.org/2000/09/xmldsig#":HMACOutputLength, http://www.w3.org/2000/09/xmldsig#,HMACOutputLengthType */ + int64_t HMACOutputLength ; + unsigned int HMACOutputLength_isUsed:1; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[iso1SignatureMethodType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define iso1X509DataType_X509IssuerSerial_ARRAY_SIZE 1 +#define iso1X509DataType_X509SKI_BYTES_SIZE 350 +#define iso1X509DataType_X509SKI_ARRAY_SIZE 1 +#define iso1X509DataType_X509SubjectName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1X509DataType_X509SubjectName_ARRAY_SIZE 1 +#define iso1X509DataType_X509Certificate_BYTES_SIZE 350 +#define iso1X509DataType_X509Certificate_ARRAY_SIZE 1 +#define iso1X509DataType_X509CRL_BYTES_SIZE 350 +#define iso1X509DataType_X509CRL_ARRAY_SIZE 1 +#define iso1X509DataType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso1X509DataType { + /* element: "http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial, Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */ + struct { + struct iso1X509IssuerSerialType array[iso1X509DataType_X509IssuerSerial_ARRAY_SIZE]; + uint16_t arrayLen; + } X509IssuerSerial; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509SKI, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + struct { + uint8_t bytes[iso1X509DataType_X509SKI_BYTES_SIZE]; + uint16_t bytesLen; + } array[iso1X509DataType_X509SKI_ARRAY_SIZE]; + uint16_t arrayLen; + } X509SKI; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509SubjectName, http://www.w3.org/2001/XMLSchema,string */ + struct { + struct { + exi_string_character_t characters[iso1X509DataType_X509SubjectName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } array[iso1X509DataType_X509SubjectName_ARRAY_SIZE]; + uint16_t arrayLen; + } X509SubjectName; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509Certificate, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + struct { + uint8_t bytes[iso1X509DataType_X509Certificate_BYTES_SIZE]; + uint16_t bytesLen; + } array[iso1X509DataType_X509Certificate_ARRAY_SIZE]; + uint16_t arrayLen; + } X509Certificate; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509CRL, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + struct { + uint8_t bytes[iso1X509DataType_X509CRL_BYTES_SIZE]; + uint16_t bytesLen; + } array[iso1X509DataType_X509CRL_ARRAY_SIZE]; + uint16_t arrayLen; + } X509CRL; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[iso1X509DataType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +typedef enum { + iso1serviceCategoryType_EVCharging = 0, + iso1serviceCategoryType_Internet = 1, + iso1serviceCategoryType_ContractCertificate = 2, + iso1serviceCategoryType_OtherCustom = 3 +} iso1serviceCategoryType; + +typedef enum { + iso1paymentOptionType_Contract = 0, + iso1paymentOptionType_ExternalPayment = 1 +} iso1paymentOptionType; + +typedef enum { + iso1EnergyTransferModeType_AC_single_phase_core = 0, + iso1EnergyTransferModeType_AC_three_phase_core = 1, + iso1EnergyTransferModeType_DC_core = 2, + iso1EnergyTransferModeType_DC_extended = 3, + iso1EnergyTransferModeType_DC_combo_core = 4, + iso1EnergyTransferModeType_DC_unique = 5 +} iso1EnergyTransferModeType; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,NotificationType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":FaultCode,"urn:iso:15118:2:2013:MsgDataTypes":FaultMsg{0-1})', derivedBy='RESTRICTION'. */ +#define iso1NotificationType_FaultMsg_CHARACTERS_SIZE 64 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,faultMsgType is 64 */ +struct iso1NotificationType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":FaultCode, urn:iso:15118:2:2013:MsgDataTypes,faultCodeType */ + iso1faultCodeType FaultCode ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":FaultMsg, urn:iso:15118:2:2013:MsgDataTypes,faultMsgType */ + struct { + exi_string_character_t characters[iso1NotificationType_FaultMsg_CHARACTERS_SIZE]; + uint16_t charactersLen; + } FaultMsg ; + unsigned int FaultMsg_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define iso1TransformType_Algorithm_CHARACTERS_SIZE 65 + EXTRA_CHAR +#define iso1TransformType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1TransformType_XPath_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1TransformType_XPath_ARRAY_SIZE 1 +struct iso1TransformType { + /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso1TransformType_Algorithm_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Algorithm ; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[iso1TransformType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":XPath, http://www.w3.org/2001/XMLSchema,string */ + struct { + struct { + exi_string_character_t characters[iso1TransformType_XPath_CHARACTERS_SIZE]; + uint16_t charactersLen; + } array[iso1TransformType_XPath_ARRAY_SIZE]; + uint16_t arrayLen; + } XPath; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentDetailsResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":GenChallenge,"urn:iso:15118:2:2013:MsgBody":EVSETimeStamp)', derivedBy='EXTENSION'. */ +#define iso1PaymentDetailsResType_GenChallenge_BYTES_SIZE 16 /* XML schema facet length for urn:iso:15118:2:2013:MsgDataTypes,genChallengeType is 16 */ +struct iso1PaymentDetailsResType { + /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */ + iso1responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2013:MsgBody":GenChallenge, urn:iso:15118:2:2013:MsgDataTypes,genChallengeType */ + struct { + uint8_t bytes[iso1PaymentDetailsResType_GenChallenge_BYTES_SIZE]; + uint16_t bytesLen; + } GenChallenge ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSETimeStamp, http://www.w3.org/2001/XMLSchema,long */ + int64_t EVSETimeStamp ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ContractSignatureEncryptedPrivateKeyType', base type name='privateKeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +#define iso1ContractSignatureEncryptedPrivateKeyType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1ContractSignatureEncryptedPrivateKeyType_CONTENT_BYTES_SIZE 350 +struct iso1ContractSignatureEncryptedPrivateKeyType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso1ContractSignatureEncryptedPrivateKeyType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + /* simple content: urn:iso:15118:2:2013:MsgDataTypes,privateKeyType */ + struct { + uint8_t bytes[iso1ContractSignatureEncryptedPrivateKeyType_CONTENT_BYTES_SIZE]; + uint16_t bytesLen; + } CONTENT ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define iso1SPKIDataType_SPKISexp_BYTES_SIZE 350 +#define iso1SPKIDataType_SPKISexp_ARRAY_SIZE 1 +#define iso1SPKIDataType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso1SPKIDataType { + /* element: "http://www.w3.org/2000/09/xmldsig#":SPKISexp, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + struct { + uint8_t bytes[iso1SPKIDataType_SPKISexp_BYTES_SIZE]; + uint16_t bytesLen; + } array[iso1SPKIDataType_SPKISexp_ARRAY_SIZE]; + uint16_t arrayLen; + } SPKISexp; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[iso1SPKIDataType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionStopReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ChargingSession)', derivedBy='EXTENSION'. */ +struct iso1SessionStopReqType { + /* element: "urn:iso:15118:2:2013:MsgBody":ChargingSession, urn:iso:15118:2:2013:MsgDataTypes,chargingSessionType */ + iso1chargingSessionType ChargingSession ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EntryType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval)', derivedBy='RESTRICTION'. */ +struct iso1EntryType { + /* substitutionGroup */ +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + union { +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + /* element: "urn:iso:15118:2:2013:MsgDataTypes":TimeInterval, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct iso1IntervalType TimeInterval ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":RelativeTimeInterval, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":start,"urn:iso:15118:2:2013:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */ + struct iso1RelativeTimeIntervalType RelativeTimeInterval ; +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + }; +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + unsigned int TimeInterval_isUsed:1; + unsigned int RelativeTimeInterval_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":EVCCID)', derivedBy='EXTENSION'. */ +#define iso1SessionSetupReqType_EVCCID_BYTES_SIZE 6 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,evccIDType is 6 */ +struct iso1SessionSetupReqType { + /* element: "urn:iso:15118:2:2013:MsgBody":EVCCID, urn:iso:15118:2:2013:MsgDataTypes,evccIDType */ + struct { + uint8_t bytes[iso1SessionSetupReqType_EVCCID_BYTES_SIZE]; + uint16_t bytesLen; + } EVCCID ; +}; + +typedef enum { + iso1isolationLevelType_Invalid = 0, + iso1isolationLevelType_Valid = 1, + iso1isolationLevelType_Warning = 2, + iso1isolationLevelType_Fault = 3, + iso1isolationLevelType_No_IMD = 4 +} iso1isolationLevelType; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso1CanonicalizationMethodType_Algorithm_CHARACTERS_SIZE 65 + EXTRA_CHAR +#define iso1CanonicalizationMethodType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso1CanonicalizationMethodType { + /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso1CanonicalizationMethodType_Algorithm_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Algorithm ; + /* element: WC[##any] */ + struct { + exi_string_character_t characters[iso1CanonicalizationMethodType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */ +struct iso1DC_EVStatusType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVReady, http://www.w3.org/2001/XMLSchema,boolean */ + int EVReady ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode, urn:iso:15118:2:2013:MsgDataTypes,DC_EVErrorCodeType */ + iso1DC_EVErrorCodeType EVErrorCode ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC, urn:iso:15118:2:2013:MsgDataTypes,percentValueType */ + int8_t EVRESSSOC ; +}; + +typedef enum { + iso1costKindType_relativePricePercentage = 0, + iso1costKindType_RenewableGenerationPercentage = 1, + iso1costKindType_CarbonDioxideEmission = 2 +} iso1costKindType; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2013:MsgDataTypes":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FreeService)', derivedBy='RESTRICTION'. */ +#define iso1ServiceType_ServiceName_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,serviceNameType is 32 */ +#define iso1ServiceType_ServiceScope_CHARACTERS_SIZE 64 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,serviceScopeType is 64 */ +struct iso1ServiceType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":ServiceID, urn:iso:15118:2:2013:MsgDataTypes,serviceIDType */ + uint16_t ServiceID ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":ServiceName, urn:iso:15118:2:2013:MsgDataTypes,serviceNameType */ + struct { + exi_string_character_t characters[iso1ServiceType_ServiceName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ServiceName ; + unsigned int ServiceName_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory, urn:iso:15118:2:2013:MsgDataTypes,serviceCategoryType */ + iso1serviceCategoryType ServiceCategory ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":ServiceScope, urn:iso:15118:2:2013:MsgDataTypes,serviceScopeType */ + struct { + exi_string_character_t characters[iso1ServiceType_ServiceScope_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ServiceScope ; + unsigned int ServiceScope_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":FreeService, http://www.w3.org/2001/XMLSchema,boolean */ + int FreeService ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgBody":ServiceCategory{0-1})', derivedBy='EXTENSION'. */ +#define iso1ServiceDiscoveryReqType_ServiceScope_CHARACTERS_SIZE 64 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,serviceScopeType is 64 */ +struct iso1ServiceDiscoveryReqType { + /* element: "urn:iso:15118:2:2013:MsgBody":ServiceScope, urn:iso:15118:2:2013:MsgDataTypes,serviceScopeType */ + struct { + exi_string_character_t characters[iso1ServiceDiscoveryReqType_ServiceScope_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ServiceScope ; + unsigned int ServiceScope_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgBody":ServiceCategory, urn:iso:15118:2:2013:MsgDataTypes,serviceCategoryType */ + iso1serviceCategoryType ServiceCategory ; + unsigned int ServiceCategory_isUsed:1; +}; + +typedef enum { + iso1chargeProgressType_Start = 0, + iso1chargeProgressType_Stop = 1, + iso1chargeProgressType_Renegotiate = 2 +} iso1chargeProgressType; + +typedef enum { + iso1valueType_bool = 0, + iso1valueType_byte = 1, + iso1valueType_short = 2, + iso1valueType_int = 3, + iso1valueType_physicalValue = 4, + iso1valueType_string = 5 +} iso1valueType; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CableCheckReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */ +struct iso1CableCheckReqType { + /* element: "urn:iso:15118:2:2013:MsgBody":DC_EVStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */ + struct iso1DC_EVStatusType DC_EVStatus ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SelectedServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID{0-1})', derivedBy='RESTRICTION'. */ +struct iso1SelectedServiceType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":ServiceID, urn:iso:15118:2:2013:MsgDataTypes,serviceIDType */ + uint16_t ServiceID ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID, http://www.w3.org/2001/XMLSchema,short */ + int16_t ParameterSetID ; + unsigned int ParameterSetID_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":RCD))', derivedBy='EXTENSION'. */ +struct iso1AC_EVSEStatusType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay, http://www.w3.org/2001/XMLSchema,unsignedShort */ + uint16_t NotificationMaxDelay ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSENotification, urn:iso:15118:2:2013:MsgDataTypes,EVSENotificationType */ + iso1EVSENotificationType EVSENotification ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":RCD, http://www.w3.org/2001/XMLSchema,boolean */ + int RCD ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,BodyBaseType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct iso1BodyBaseType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SupportedEnergyTransferModeType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EnergyTransferMode{1-6})', derivedBy='RESTRICTION'. */ +#define iso1SupportedEnergyTransferModeType_EnergyTransferMode_ARRAY_SIZE 6 +struct iso1SupportedEnergyTransferModeType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EnergyTransferMode, urn:iso:15118:2:2013:MsgDataTypes,EnergyTransferModeType */ + struct { + iso1EnergyTransferModeType array[iso1SupportedEnergyTransferModeType_EnergyTransferMode_ARRAY_SIZE]; + uint16_t arrayLen; + } EnergyTransferMode; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargingStatusReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +struct iso1ChargingStatusReqType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentServiceSelectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */ +struct iso1PaymentServiceSelectionResType { + /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */ + iso1responseCodeType ResponseCode ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso1DigestMethodType_Algorithm_CHARACTERS_SIZE 65 + EXTRA_CHAR +#define iso1DigestMethodType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso1DigestMethodType { + /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso1DigestMethodType_Algorithm_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Algorithm ; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[iso1DigestMethodType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define iso1SignaturePropertyType_Target_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1SignaturePropertyType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1SignaturePropertyType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso1SignaturePropertyType { + /* attribute: Target {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso1SignaturePropertyType_Target_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Target ; + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso1SignaturePropertyType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[iso1SignaturePropertyType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +typedef enum { + iso1unitSymbolType_h = 0, + iso1unitSymbolType_m = 1, + iso1unitSymbolType_s = 2, + iso1unitSymbolType_A = 3, + iso1unitSymbolType_V = 4, + iso1unitSymbolType_W = 5, + iso1unitSymbolType_Wh = 6 +} iso1unitSymbolType; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */ +#define iso1PGPDataType_PGPKeyID_BYTES_SIZE 350 +#define iso1PGPDataType_PGPKeyPacket_BYTES_SIZE 350 +#define iso1PGPDataType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso1PGPDataType { + /* element: "http://www.w3.org/2000/09/xmldsig#":PGPKeyID, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + uint8_t bytes[iso1PGPDataType_PGPKeyID_BYTES_SIZE]; + uint16_t bytesLen; + } PGPKeyID ; + unsigned int PGPKeyID_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + uint8_t bytes[iso1PGPDataType_PGPKeyPacket_BYTES_SIZE]; + uint16_t bytesLen; + } PGPKeyPacket ; + unsigned int PGPKeyPacket_isUsed:1; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[iso1PGPDataType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionSetupResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":EVSETimeStamp{0-1})', derivedBy='EXTENSION'. */ +#define iso1SessionSetupResType_EVSEID_CHARACTERS_SIZE 37 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,evseIDType is 37 */ +struct iso1SessionSetupResType { + /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */ + iso1responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSEID, urn:iso:15118:2:2013:MsgDataTypes,evseIDType */ + struct { + exi_string_character_t characters[iso1SessionSetupResType_EVSEID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } EVSEID ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSETimeStamp, http://www.w3.org/2001/XMLSchema,long */ + int64_t EVSETimeStamp ; + unsigned int EVSETimeStamp_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ +#define iso1CertificateChainType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1CertificateChainType_Certificate_BYTES_SIZE 800 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,certificateType is 800 */ +struct iso1CertificateChainType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso1CertificateChainType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":Certificate, urn:iso:15118:2:2013:MsgDataTypes,certificateType */ + struct { + uint8_t bytes[iso1CertificateChainType_Certificate_BYTES_SIZE]; + uint16_t bytesLen; + } Certificate ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":SubCertificates, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SubCertificatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate{1-4})', derivedBy='RESTRICTION'. */ + struct iso1SubCertificatesType SubCertificates ; + unsigned int SubCertificates_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */ +struct iso1DC_EVSEStatusType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay, http://www.w3.org/2001/XMLSchema,unsignedShort */ + uint16_t NotificationMaxDelay ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSENotification, urn:iso:15118:2:2013:MsgDataTypes,EVSENotificationType */ + iso1EVSENotificationType EVSENotification ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus, urn:iso:15118:2:2013:MsgDataTypes,isolationLevelType */ + iso1isolationLevelType EVSEIsolationStatus ; + unsigned int EVSEIsolationStatus_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode, urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusCodeType */ + iso1DC_EVSEStatusCodeType EVSEStatusCode ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Service{1-8})', derivedBy='RESTRICTION'. */ +#define iso1ServiceListType_Service_ARRAY_SIZE 8 +struct iso1ServiceListType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":Service, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2013:MsgDataTypes":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FreeService)', derivedBy='RESTRICTION'. */ + struct { + struct iso1ServiceType array[iso1ServiceListType_Service_ARRAY_SIZE]; + uint16_t arrayLen; + } Service; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PowerDeliveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */ +struct iso1PowerDeliveryResType { + /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */ + iso1responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso1EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":AC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":RCD))', derivedBy='EXTENSION'. */ + struct iso1AC_EVSEStatusType AC_EVSEStatus ; + unsigned int AC_EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */ + struct iso1DC_EVSEStatusType DC_EVSEStatus ; + unsigned int DC_EVSEStatus_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PaymentOptionListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":PaymentOption{1-2})', derivedBy='RESTRICTION'. */ +#define iso1PaymentOptionListType_PaymentOption_ARRAY_SIZE 2 +struct iso1PaymentOptionListType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":PaymentOption, urn:iso:15118:2:2013:MsgDataTypes,paymentOptionType */ + struct { + iso1paymentOptionType array[iso1PaymentOptionListType_PaymentOption_ARRAY_SIZE]; + uint16_t arrayLen; + } PaymentOption; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ +struct iso1PhysicalValueType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":Multiplier, urn:iso:15118:2:2013:MsgDataTypes,unitMultiplierType */ + int8_t Multiplier ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":Unit, urn:iso:15118:2:2013:MsgDataTypes,unitSymbolType */ + iso1unitSymbolType Unit ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":Value, http://www.w3.org/2001/XMLSchema,short */ + int16_t Value ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentDetailsReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain)', derivedBy='EXTENSION'. */ +#define iso1PaymentDetailsReqType_eMAID_CHARACTERS_SIZE 15 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,eMAIDType is 15 */ +struct iso1PaymentDetailsReqType { + /* element: "urn:iso:15118:2:2013:MsgBody":eMAID, urn:iso:15118:2:2013:MsgDataTypes,eMAIDType */ + struct { + exi_string_character_t characters[iso1PaymentDetailsReqType_eMAID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } eMAID ; + /* element: "urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ + struct iso1CertificateChainType ContractSignatureCertChain ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,AuthorizationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */ +struct iso1AuthorizationResType { + /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */ + iso1responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSEProcessing, urn:iso:15118:2:2013:MsgDataTypes,EVSEProcessingType */ + iso1EVSEProcessingType EVSEProcessing ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumPowerLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2013:MsgDataTypes":EVSEEnergyToBeDelivered{0-1})', derivedBy='EXTENSION'. */ +struct iso1DC_EVSEChargeParameterType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */ + struct iso1DC_EVSEStatusType DC_EVSEStatus ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumCurrentLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVSEMaximumCurrentLimit ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumPowerLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVSEMaximumPowerLimit ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumVoltageLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVSEMaximumVoltageLimit ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumCurrentLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVSEMinimumCurrentLimit ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumVoltageLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVSEMinimumVoltageLimit ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSECurrentRegulationTolerance, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVSECurrentRegulationTolerance ; + unsigned int EVSECurrentRegulationTolerance_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEPeakCurrentRipple, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVSEPeakCurrentRipple ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEEnergyToBeDelivered, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVSEEnergyToBeDelivered ; + unsigned int EVSEEnergyToBeDelivered_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargingStatusResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":EVSEMaxCurrent{0-1},"urn:iso:15118:2:2013:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2013:MsgBody":ReceiptRequired{0-1},"urn:iso:15118:2:2013:MsgBody":AC_EVSEStatus)', derivedBy='EXTENSION'. */ +#define iso1ChargingStatusResType_EVSEID_CHARACTERS_SIZE 37 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,evseIDType is 37 */ +struct iso1ChargingStatusResType { + /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */ + iso1responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSEID, urn:iso:15118:2:2013:MsgDataTypes,evseIDType */ + struct { + exi_string_character_t characters[iso1ChargingStatusResType_EVSEID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } EVSEID ; + /* element: "urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID, urn:iso:15118:2:2013:MsgDataTypes,SAIDType */ + uint8_t SAScheduleTupleID ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSEMaxCurrent, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVSEMaxCurrent ; + unsigned int EVSEMaxCurrent_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgBody":MeterInfo, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":MeterID,"urn:iso:15118:2:2013:MsgDataTypes":MeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ + struct iso1MeterInfoType MeterInfo ; + unsigned int MeterInfo_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgBody":ReceiptRequired, http://www.w3.org/2001/XMLSchema,boolean */ + int ReceiptRequired ; + unsigned int ReceiptRequired_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgBody":AC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":RCD))', derivedBy='EXTENSION'. */ + struct iso1AC_EVSEStatusType AC_EVSEStatus ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":RootCertificateID{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso1ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE 5 +struct iso1ListOfRootCertificateIDsType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":RootCertificateID, Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */ + struct { + struct iso1X509IssuerSerialType array[iso1ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE]; + uint16_t arrayLen; + } RootCertificateID; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ChargeServiceType', base type name='ServiceType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2013:MsgDataTypes":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FreeService),("urn:iso:15118:2:2013:MsgDataTypes":SupportedEnergyTransferMode))', derivedBy='EXTENSION'. */ +#define iso1ChargeServiceType_ServiceName_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,serviceNameType is 32 */ +#define iso1ChargeServiceType_ServiceScope_CHARACTERS_SIZE 64 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,serviceScopeType is 64 */ +struct iso1ChargeServiceType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":ServiceID, urn:iso:15118:2:2013:MsgDataTypes,serviceIDType */ + uint16_t ServiceID ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":ServiceName, urn:iso:15118:2:2013:MsgDataTypes,serviceNameType */ + struct { + exi_string_character_t characters[iso1ChargeServiceType_ServiceName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ServiceName ; + unsigned int ServiceName_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory, urn:iso:15118:2:2013:MsgDataTypes,serviceCategoryType */ + iso1serviceCategoryType ServiceCategory ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":ServiceScope, urn:iso:15118:2:2013:MsgDataTypes,serviceScopeType */ + struct { + exi_string_character_t characters[iso1ChargeServiceType_ServiceScope_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ServiceScope ; + unsigned int ServiceScope_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":FreeService, http://www.w3.org/2001/XMLSchema,boolean */ + int FreeService ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":SupportedEnergyTransferMode, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SupportedEnergyTransferModeType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EnergyTransferMode{1-6})', derivedBy='RESTRICTION'. */ + struct iso1SupportedEnergyTransferModeType SupportedEnergyTransferMode ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SelectedServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SelectedService{1-16})', derivedBy='RESTRICTION'. */ +#define iso1SelectedServiceListType_SelectedService_ARRAY_SIZE 16 +struct iso1SelectedServiceListType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":SelectedService, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SelectedServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID{0-1})', derivedBy='RESTRICTION'. */ + struct { + struct iso1SelectedServiceType array[iso1SelectedServiceListType_SelectedService_ARRAY_SIZE]; + uint16_t arrayLen; + } SelectedService; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CableCheckResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */ +struct iso1CableCheckResType { + /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */ + iso1responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */ + struct iso1DC_EVSEStatusType DC_EVSEStatus ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSEProcessing, urn:iso:15118:2:2013:MsgDataTypes,EVSEProcessingType */ + iso1EVSEProcessingType EVSEProcessing ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso1TransformsType_Transform_ARRAY_SIZE 1 +struct iso1TransformsType { + /* element: "http://www.w3.org/2000/09/xmldsig#":Transform, Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct iso1TransformType array[iso1TransformsType_Transform_ARRAY_SIZE]; + uint16_t arrayLen; + } Transform; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PreChargeReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus,"urn:iso:15118:2:2013:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2013:MsgBody":EVTargetCurrent)', derivedBy='EXTENSION'. */ +struct iso1PreChargeReqType { + /* element: "urn:iso:15118:2:2013:MsgBody":DC_EVStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */ + struct iso1DC_EVStatusType DC_EVStatus ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVTargetVoltage, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVTargetVoltage ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVTargetCurrent, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVTargetCurrent ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1}),("urn:iso:15118:2:2013:MsgDataTypes":EAmount,"urn:iso:15118:2:2013:MsgDataTypes":EVMaxVoltage,"urn:iso:15118:2:2013:MsgDataTypes":EVMaxCurrent,"urn:iso:15118:2:2013:MsgDataTypes":EVMinCurrent))', derivedBy='EXTENSION'. */ +struct iso1AC_EVChargeParameterType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":DepartureTime, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t DepartureTime ; + unsigned int DepartureTime_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EAmount, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EAmount ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVMaxVoltage, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVMaxVoltage ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVMaxCurrent, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVMaxCurrent ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVMinCurrent, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVMinCurrent ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2013:MsgDataTypes":PMax))', derivedBy='EXTENSION'. */ +struct iso1PMaxScheduleEntryType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":TimeInterval, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct iso1IntervalType TimeInterval ; + unsigned int TimeInterval_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":RelativeTimeInterval, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":start,"urn:iso:15118:2:2013:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */ + struct iso1RelativeTimeIntervalType RelativeTimeInterval ; + unsigned int RelativeTimeInterval_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":PMax, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType PMax ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,MeteringReceiptResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */ +struct iso1MeteringReceiptResType { + /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */ + iso1responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso1EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":AC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":RCD))', derivedBy='EXTENSION'. */ + struct iso1AC_EVSEStatusType AC_EVSEStatus ; + unsigned int AC_EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */ + struct iso1DC_EVSEStatusType DC_EVSEStatus ; + unsigned int DC_EVSEStatus_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,WeldingDetectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */ +struct iso1WeldingDetectionResType { + /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */ + iso1responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */ + struct iso1DC_EVSEStatusType DC_EVSEStatus ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVSEPresentVoltage ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ +#define iso1ReferenceType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1ReferenceType_URI_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1ReferenceType_Type_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1ReferenceType_DigestValue_BYTES_SIZE 350 +struct iso1ReferenceType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso1ReferenceType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* attribute: URI {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso1ReferenceType_URI_CHARACTERS_SIZE]; + uint16_t charactersLen; + } URI ; + unsigned int URI_isUsed:1; + /* attribute: Type {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso1ReferenceType_Type_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Type ; + unsigned int Type_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Transforms, Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso1TransformsType Transforms ; + unsigned int Transforms_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":DigestMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso1DigestMethodType DigestMethod ; + /* element: "http://www.w3.org/2000/09/xmldsig#":DigestValue, http://www.w3.org/2000/09/xmldsig#,DigestValueType */ + struct { + uint8_t bytes[iso1ReferenceType_DigestValue_BYTES_SIZE]; + uint16_t bytesLen; + } DigestValue ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CurrentDemandReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus,"urn:iso:15118:2:2013:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2013:MsgBody":EVMaximumVoltageLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVMaximumCurrentLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgBody":BulkChargingComplete{0-1},"urn:iso:15118:2:2013:MsgBody":ChargingComplete,"urn:iso:15118:2:2013:MsgBody":RemainingTimeToFullSoC{0-1},"urn:iso:15118:2:2013:MsgBody":RemainingTimeToBulkSoC{0-1},"urn:iso:15118:2:2013:MsgBody":EVTargetVoltage)', derivedBy='EXTENSION'. */ +struct iso1CurrentDemandReqType { + /* element: "urn:iso:15118:2:2013:MsgBody":DC_EVStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */ + struct iso1DC_EVStatusType DC_EVStatus ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVTargetCurrent, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVTargetCurrent ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVMaximumVoltageLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVMaximumVoltageLimit ; + unsigned int EVMaximumVoltageLimit_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgBody":EVMaximumCurrentLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVMaximumCurrentLimit ; + unsigned int EVMaximumCurrentLimit_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgBody":EVMaximumPowerLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVMaximumPowerLimit ; + unsigned int EVMaximumPowerLimit_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgBody":BulkChargingComplete, http://www.w3.org/2001/XMLSchema,boolean */ + int BulkChargingComplete ; + unsigned int BulkChargingComplete_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgBody":ChargingComplete, http://www.w3.org/2001/XMLSchema,boolean */ + int ChargingComplete ; + /* element: "urn:iso:15118:2:2013:MsgBody":RemainingTimeToFullSoC, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType RemainingTimeToFullSoC ; + unsigned int RemainingTimeToFullSoC_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgBody":RemainingTimeToBulkSoC, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType RemainingTimeToBulkSoC ; + unsigned int RemainingTimeToBulkSoC_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgBody":EVTargetVoltage, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVTargetVoltage ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":costKind,"urn:iso:15118:2:2013:MsgDataTypes":amount,"urn:iso:15118:2:2013:MsgDataTypes":amountMultiplier{0-1})', derivedBy='RESTRICTION'. */ +struct iso1CostType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":costKind, urn:iso:15118:2:2013:MsgDataTypes,costKindType */ + iso1costKindType costKind ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":amount, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t amount ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":amountMultiplier, urn:iso:15118:2:2013:MsgDataTypes,unitMultiplierType */ + int8_t amountMultiplier ; + unsigned int amountMultiplier_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVPowerDeliveryParameterType', base type name='EVPowerDeliveryParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2013:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ChargingComplete)', derivedBy='EXTENSION'. */ +struct iso1DC_EVPowerDeliveryParameterType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */ + struct iso1DC_EVStatusType DC_EVStatus ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":BulkChargingComplete, http://www.w3.org/2001/XMLSchema,boolean */ + int BulkChargingComplete ; + unsigned int BulkChargingComplete_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":ChargingComplete, http://www.w3.org/2001/XMLSchema,boolean */ + int ChargingComplete ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */ +#define iso1RetrievalMethodType_URI_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1RetrievalMethodType_Type_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso1RetrievalMethodType { + /* attribute: URI {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso1RetrievalMethodType_URI_CHARACTERS_SIZE]; + uint16_t charactersLen; + } URI ; + unsigned int URI_isUsed:1; + /* attribute: Type {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso1RetrievalMethodType_Type_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Type ; + unsigned int Type_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Transforms, Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso1TransformsType Transforms ; + unsigned int Transforms_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateUpdateResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2013:MsgBody":DHpublickey,"urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":RetryCounter{0-1})', derivedBy='EXTENSION'. */ +struct iso1CertificateUpdateResType { + /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */ + iso1responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ + struct iso1CertificateChainType SAProvisioningCertificateChain ; + /* element: "urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ + struct iso1CertificateChainType ContractSignatureCertChain ; + /* element: "urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ContractSignatureEncryptedPrivateKeyType', base type name='privateKeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct iso1ContractSignatureEncryptedPrivateKeyType ContractSignatureEncryptedPrivateKey ; + /* element: "urn:iso:15118:2:2013:MsgBody":DHpublickey, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DiffieHellmanPublickeyType', base type name='dHpublickeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct iso1DiffieHellmanPublickeyType DHpublickey ; + /* element: "urn:iso:15118:2:2013:MsgBody":eMAID, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EMAIDType', base type name='eMAIDType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct iso1EMAIDType eMAID ; + /* element: "urn:iso:15118:2:2013:MsgBody":RetryCounter, http://www.w3.org/2001/XMLSchema,short */ + int16_t RetryCounter ; + unsigned int RetryCounter_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateInstallationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2013:MsgBody":DHpublickey,"urn:iso:15118:2:2013:MsgBody":eMAID)', derivedBy='EXTENSION'. */ +struct iso1CertificateInstallationResType { + /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */ + iso1responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ + struct iso1CertificateChainType SAProvisioningCertificateChain ; + /* element: "urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ + struct iso1CertificateChainType ContractSignatureCertChain ; + /* element: "urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ContractSignatureEncryptedPrivateKeyType', base type name='privateKeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct iso1ContractSignatureEncryptedPrivateKeyType ContractSignatureEncryptedPrivateKey ; + /* element: "urn:iso:15118:2:2013:MsgBody":DHpublickey, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DiffieHellmanPublickeyType', base type name='dHpublickeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct iso1DiffieHellmanPublickeyType DHpublickey ; + /* element: "urn:iso:15118:2:2013:MsgBody":eMAID, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EMAIDType', base type name='eMAIDType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct iso1EMAIDType eMAID ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,WeldingDetectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */ +struct iso1WeldingDetectionReqType { + /* element: "urn:iso:15118:2:2013:MsgBody":DC_EVStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */ + struct iso1DC_EVStatusType DC_EVStatus ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CurrentDemandResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2013:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2013:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEMaximumVoltageLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEMaximumCurrentLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2013:MsgBody":ReceiptRequired{0-1})', derivedBy='EXTENSION'. */ +#define iso1CurrentDemandResType_EVSEID_CHARACTERS_SIZE 37 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,evseIDType is 37 */ +struct iso1CurrentDemandResType { + /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */ + iso1responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */ + struct iso1DC_EVSEStatusType DC_EVSEStatus ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVSEPresentVoltage ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSEPresentCurrent, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVSEPresentCurrent ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSECurrentLimitAchieved, http://www.w3.org/2001/XMLSchema,boolean */ + int EVSECurrentLimitAchieved ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSEVoltageLimitAchieved, http://www.w3.org/2001/XMLSchema,boolean */ + int EVSEVoltageLimitAchieved ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSEPowerLimitAchieved, http://www.w3.org/2001/XMLSchema,boolean */ + int EVSEPowerLimitAchieved ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSEMaximumVoltageLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVSEMaximumVoltageLimit ; + unsigned int EVSEMaximumVoltageLimit_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSEMaximumCurrentLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVSEMaximumCurrentLimit ; + unsigned int EVSEMaximumCurrentLimit_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSEMaximumPowerLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVSEMaximumPowerLimit ; + unsigned int EVSEMaximumPowerLimit_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSEID, urn:iso:15118:2:2013:MsgDataTypes,evseIDType */ + struct { + exi_string_character_t characters[iso1CurrentDemandResType_EVSEID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } EVSEID ; + /* element: "urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID, urn:iso:15118:2:2013:MsgDataTypes,SAIDType */ + uint8_t SAScheduleTupleID ; + /* element: "urn:iso:15118:2:2013:MsgBody":MeterInfo, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":MeterID,"urn:iso:15118:2:2013:MsgDataTypes":MeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ + struct iso1MeterInfoType MeterInfo ; + unsigned int MeterInfo_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgBody":ReceiptRequired, http://www.w3.org/2001/XMLSchema,boolean */ + int ReceiptRequired ; + unsigned int ReceiptRequired_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":AC_EVSEStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVSENominalVoltage,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaxCurrent)', derivedBy='EXTENSION'. */ +struct iso1AC_EVSEChargeParameterType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":AC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":RCD))', derivedBy='EXTENSION'. */ + struct iso1AC_EVSEStatusType AC_EVSEStatus ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSENominalVoltage, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVSENominalVoltage ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEMaxCurrent, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVSEMaxCurrent ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentServiceSelectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":SelectedPaymentOption,"urn:iso:15118:2:2013:MsgBody":SelectedServiceList)', derivedBy='EXTENSION'. */ +struct iso1PaymentServiceSelectionReqType { + /* element: "urn:iso:15118:2:2013:MsgBody":SelectedPaymentOption, urn:iso:15118:2:2013:MsgDataTypes,paymentOptionType */ + iso1paymentOptionType SelectedPaymentOption ; + /* element: "urn:iso:15118:2:2013:MsgBody":SelectedServiceList, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SelectedServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SelectedService{1-16})', derivedBy='RESTRICTION'. */ + struct iso1SelectedServiceListType SelectedServiceList ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertiesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignatureProperty{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso1SignaturePropertiesType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1SignaturePropertiesType_SignatureProperty_ARRAY_SIZE 1 +struct iso1SignaturePropertiesType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso1SignaturePropertiesType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":SignatureProperty, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct iso1SignaturePropertyType array[iso1SignaturePropertiesType_SignatureProperty_ARRAY_SIZE]; + uint16_t arrayLen; + } SignatureProperty; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ParameterType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":boolValue|"urn:iso:15118:2:2013:MsgDataTypes":byteValue|"urn:iso:15118:2:2013:MsgDataTypes":shortValue|"urn:iso:15118:2:2013:MsgDataTypes":intValue|"urn:iso:15118:2:2013:MsgDataTypes":physicalValue|"urn:iso:15118:2:2013:MsgDataTypes":stringValue)', derivedBy='RESTRICTION'. */ +#define iso1ParameterType_Name_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1ParameterType_stringValue_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso1ParameterType { + /* attribute: Name {http://www.w3.org/2001/XMLSchema,string} */ + struct { + exi_string_character_t characters[iso1ParameterType_Name_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Name ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":boolValue, http://www.w3.org/2001/XMLSchema,boolean */ + int boolValue ; + unsigned int boolValue_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":byteValue, http://www.w3.org/2001/XMLSchema,byte */ + int8_t byteValue ; + unsigned int byteValue_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":shortValue, http://www.w3.org/2001/XMLSchema,short */ + int16_t shortValue ; + unsigned int shortValue_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":intValue, http://www.w3.org/2001/XMLSchema,int */ + int32_t intValue ; + unsigned int intValue_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":physicalValue, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType physicalValue ; + unsigned int physicalValue_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":stringValue, http://www.w3.org/2001/XMLSchema,string */ + struct { + exi_string_character_t characters[iso1ParameterType_stringValue_CHARACTERS_SIZE]; + uint16_t charactersLen; + } stringValue ; + unsigned int stringValue_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateInstallationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":OEMProvisioningCert,"urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */ +#define iso1CertificateInstallationReqType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1CertificateInstallationReqType_OEMProvisioningCert_BYTES_SIZE 800 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,certificateType is 800 */ +struct iso1CertificateInstallationReqType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso1CertificateInstallationReqType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + /* element: "urn:iso:15118:2:2013:MsgBody":OEMProvisioningCert, urn:iso:15118:2:2013:MsgDataTypes,certificateType */ + struct { + uint8_t bytes[iso1CertificateInstallationReqType_OEMProvisioningCert_BYTES_SIZE]; + uint16_t bytesLen; + } OEMProvisioningCert ; + /* element: "urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":RootCertificateID{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso1ListOfRootCertificateIDsType ListOfRootCertificateIDs ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":PaymentOptionList,"urn:iso:15118:2:2013:MsgBody":ChargeService,"urn:iso:15118:2:2013:MsgBody":ServiceList{0-1})', derivedBy='EXTENSION'. */ +struct iso1ServiceDiscoveryResType { + /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */ + iso1responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2013:MsgBody":PaymentOptionList, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PaymentOptionListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":PaymentOption{1-2})', derivedBy='RESTRICTION'. */ + struct iso1PaymentOptionListType PaymentOptionList ; + /* element: "urn:iso:15118:2:2013:MsgBody":ChargeService, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ChargeServiceType', base type name='ServiceType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2013:MsgDataTypes":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FreeService),("urn:iso:15118:2:2013:MsgDataTypes":SupportedEnergyTransferMode))', derivedBy='EXTENSION'. */ + struct iso1ChargeServiceType ChargeService ; + /* element: "urn:iso:15118:2:2013:MsgBody":ServiceList, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Service{1-8})', derivedBy='RESTRICTION'. */ + struct iso1ServiceListType ServiceList ; + unsigned int ServiceList_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PreChargeResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */ +struct iso1PreChargeResType { + /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */ + iso1responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */ + struct iso1DC_EVSEStatusType DC_EVSEStatus ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVSEPresentVoltage ; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2013:MsgDataTypes":Parameter{1-16})', derivedBy='RESTRICTION'. */ +#define iso1ParameterSetType_Parameter_ARRAY_SIZE 16 +struct iso1ParameterSetType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID, http://www.w3.org/2001/XMLSchema,short */ + int16_t ParameterSetID ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":Parameter, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ParameterType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":boolValue|"urn:iso:15118:2:2013:MsgDataTypes":byteValue|"urn:iso:15118:2:2013:MsgDataTypes":shortValue|"urn:iso:15118:2:2013:MsgDataTypes":intValue|"urn:iso:15118:2:2013:MsgDataTypes":physicalValue|"urn:iso:15118:2:2013:MsgDataTypes":stringValue)', derivedBy='RESTRICTION'. */ + struct { + struct iso1ParameterType array[iso1ParameterSetType_Parameter_ARRAY_SIZE]; + uint16_t arrayLen; + } Parameter; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso1SignedInfoType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1SignedInfoType_Reference_ARRAY_SIZE 1 +struct iso1SignedInfoType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso1SignedInfoType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso1CanonicalizationMethodType CanonicalizationMethod ; + /* element: "http://www.w3.org/2000/09/xmldsig#":SignatureMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso1SignatureMethodType SignatureMethod ; + /* element: "http://www.w3.org/2000/09/xmldsig#":Reference, Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ + struct { + struct iso1ReferenceType array[iso1SignedInfoType_Reference_ARRAY_SIZE]; + uint16_t arrayLen; + } Reference; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ProfileEntryType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryStart,"urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxPower,"urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxNumberOfPhasesInUse{0-1})', derivedBy='RESTRICTION'. */ +struct iso1ProfileEntryType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryStart, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t ChargingProfileEntryStart ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxPower, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType ChargingProfileEntryMaxPower ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxNumberOfPhasesInUse, urn:iso:15118:2:2013:MsgDataTypes,maxNumPhasesType */ + int8_t ChargingProfileEntryMaxNumberOfPhasesInUse ; + unsigned int ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ManifestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso1ManifestType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1ManifestType_Reference_ARRAY_SIZE 1 +struct iso1ManifestType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso1ManifestType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Reference, Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ + struct { + struct iso1ReferenceType array[iso1ManifestType_Reference_ARRAY_SIZE]; + uint16_t arrayLen; + } Reference; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1}),("urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVEnergyCapacity{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVEnergyRequest{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FullSOC{0-1},"urn:iso:15118:2:2013:MsgDataTypes":BulkSOC{0-1}))', derivedBy='EXTENSION'. */ +struct iso1DC_EVChargeParameterType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":DepartureTime, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t DepartureTime ; + unsigned int DepartureTime_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */ + struct iso1DC_EVStatusType DC_EVStatus ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVMaximumCurrentLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVMaximumCurrentLimit ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVMaximumPowerLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVMaximumPowerLimit ; + unsigned int EVMaximumPowerLimit_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVMaximumVoltageLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVMaximumVoltageLimit ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVEnergyCapacity, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVEnergyCapacity ; + unsigned int EVEnergyCapacity_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVEnergyRequest, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType EVEnergyRequest ; + unsigned int EVEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":FullSOC, urn:iso:15118:2:2013:MsgDataTypes,percentValueType */ + int8_t FullSOC ; + unsigned int FullSOC_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":BulkSOC, urn:iso:15118:2:2013:MsgDataTypes,percentValueType */ + int8_t BulkSOC ; + unsigned int BulkSOC_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ConsumptionCostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":startValue,"urn:iso:15118:2:2013:MsgDataTypes":Cost{1-3})', derivedBy='RESTRICTION'. */ +#define iso1ConsumptionCostType_Cost_ARRAY_SIZE 3 +struct iso1ConsumptionCostType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":startValue, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso1PhysicalValueType startValue ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":Cost, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":costKind,"urn:iso:15118:2:2013:MsgDataTypes":amount,"urn:iso:15118:2:2013:MsgDataTypes":amountMultiplier{0-1})', derivedBy='RESTRICTION'. */ + struct { + struct iso1CostType array[iso1ConsumptionCostType_Cost_ARRAY_SIZE]; + uint16_t arrayLen; + } Cost; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PMaxScheduleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":PMaxScheduleEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso1PMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE 5 +struct iso1PMaxScheduleType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":PMaxScheduleEntry, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2013:MsgDataTypes":PMax))', derivedBy='EXTENSION'. */ + struct { + struct iso1PMaxScheduleEntryType array[iso1PMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE]; + uint16_t arrayLen; + } PMaxScheduleEntry; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateUpdateReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */ +#define iso1CertificateUpdateReqType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1CertificateUpdateReqType_eMAID_CHARACTERS_SIZE 15 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,eMAIDType is 15 */ +struct iso1CertificateUpdateReqType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso1CertificateUpdateReqType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + /* element: "urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ + struct iso1CertificateChainType ContractSignatureCertChain ; + /* element: "urn:iso:15118:2:2013:MsgBody":eMAID, urn:iso:15118:2:2013:MsgDataTypes,eMAIDType */ + struct { + exi_string_character_t characters[iso1CertificateUpdateReqType_eMAID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } eMAID ; + /* element: "urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":RootCertificateID{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso1ListOfRootCertificateIDsType ListOfRootCertificateIDs ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define iso1KeyInfoType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1KeyInfoType_KeyName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1KeyInfoType_KeyName_ARRAY_SIZE 1 +#define iso1KeyInfoType_KeyValue_ARRAY_SIZE 1 +#define iso1KeyInfoType_RetrievalMethod_ARRAY_SIZE 1 +#define iso1KeyInfoType_X509Data_ARRAY_SIZE 1 +#define iso1KeyInfoType_PGPData_ARRAY_SIZE 1 +#define iso1KeyInfoType_SPKIData_ARRAY_SIZE 1 +#define iso1KeyInfoType_MgmtData_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1KeyInfoType_MgmtData_ARRAY_SIZE 1 +#define iso1KeyInfoType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso1KeyInfoType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso1KeyInfoType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":KeyName, http://www.w3.org/2001/XMLSchema,string */ + struct { + struct { + exi_string_character_t characters[iso1KeyInfoType_KeyName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } array[iso1KeyInfoType_KeyName_ARRAY_SIZE]; + uint16_t arrayLen; + } KeyName; + /* element: "http://www.w3.org/2000/09/xmldsig#":KeyValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */ + struct { + struct iso1KeyValueType array[iso1KeyInfoType_KeyValue_ARRAY_SIZE]; + uint16_t arrayLen; + } KeyValue; + /* element: "http://www.w3.org/2000/09/xmldsig#":RetrievalMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */ + struct { + struct iso1RetrievalMethodType array[iso1KeyInfoType_RetrievalMethod_ARRAY_SIZE]; + uint16_t arrayLen; + } RetrievalMethod; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509Data, Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct iso1X509DataType array[iso1KeyInfoType_X509Data_ARRAY_SIZE]; + uint16_t arrayLen; + } X509Data; + /* element: "http://www.w3.org/2000/09/xmldsig#":PGPData, Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */ + struct { + struct iso1PGPDataType array[iso1KeyInfoType_PGPData_ARRAY_SIZE]; + uint16_t arrayLen; + } PGPData; + /* element: "http://www.w3.org/2000/09/xmldsig#":SPKIData, Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct iso1SPKIDataType array[iso1KeyInfoType_SPKIData_ARRAY_SIZE]; + uint16_t arrayLen; + } SPKIData; + /* element: "http://www.w3.org/2000/09/xmldsig#":MgmtData, http://www.w3.org/2001/XMLSchema,string */ + struct { + struct { + exi_string_character_t characters[iso1KeyInfoType_MgmtData_CHARACTERS_SIZE]; + uint16_t charactersLen; + } array[iso1KeyInfoType_MgmtData_ARRAY_SIZE]; + uint16_t arrayLen; + } MgmtData; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[iso1KeyInfoType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargeParameterDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":MaxEntriesSAScheduleTuple{0-1},"urn:iso:15118:2:2013:MsgBody":RequestedEnergyTransferMode,"urn:iso:15118:2:2013:MsgDataTypes":EVChargeParameter)', derivedBy='EXTENSION'. */ +struct iso1ChargeParameterDiscoveryReqType { + /* element: "urn:iso:15118:2:2013:MsgBody":MaxEntriesSAScheduleTuple, http://www.w3.org/2001/XMLSchema,unsignedShort */ + uint16_t MaxEntriesSAScheduleTuple ; + unsigned int MaxEntriesSAScheduleTuple_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgBody":RequestedEnergyTransferMode, urn:iso:15118:2:2013:MsgDataTypes,EnergyTransferModeType */ + iso1EnergyTransferModeType RequestedEnergyTransferMode ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVChargeParameter, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVChargeParameterType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1})', derivedBy='RESTRICTION'. */ + struct iso1EVChargeParameterType EVChargeParameter ; + unsigned int EVChargeParameter_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":AC_EVChargeParameter, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1}),("urn:iso:15118:2:2013:MsgDataTypes":EAmount,"urn:iso:15118:2:2013:MsgDataTypes":EVMaxVoltage,"urn:iso:15118:2:2013:MsgDataTypes":EVMaxCurrent,"urn:iso:15118:2:2013:MsgDataTypes":EVMinCurrent))', derivedBy='EXTENSION'. */ + struct iso1AC_EVChargeParameterType AC_EVChargeParameter ; + unsigned int AC_EVChargeParameter_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":DC_EVChargeParameter, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1}),("urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVEnergyCapacity{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVEnergyRequest{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FullSOC{0-1},"urn:iso:15118:2:2013:MsgDataTypes":BulkSOC{0-1}))', derivedBy='EXTENSION'. */ + struct iso1DC_EVChargeParameterType DC_EVChargeParameter ; + unsigned int DC_EVChargeParameter_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ChargingProfileType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ProfileEntry{1-24})', derivedBy='RESTRICTION'. */ +#define iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE 24 +struct iso1ChargingProfileType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":ProfileEntry, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ProfileEntryType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryStart,"urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxPower,"urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxNumberOfPhasesInUse{0-1})', derivedBy='RESTRICTION'. */ + struct { + struct iso1ProfileEntryType array[iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE]; + uint16_t arrayLen; + } ProfileEntry; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SalesTariffEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2013:MsgDataTypes":EPriceLevel{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ConsumptionCost{0-3}))', derivedBy='EXTENSION'. */ +#define iso1SalesTariffEntryType_ConsumptionCost_ARRAY_SIZE 3 +struct iso1SalesTariffEntryType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":TimeInterval, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct iso1IntervalType TimeInterval ; + unsigned int TimeInterval_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":RelativeTimeInterval, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":start,"urn:iso:15118:2:2013:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */ + struct iso1RelativeTimeIntervalType RelativeTimeInterval ; + unsigned int RelativeTimeInterval_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EPriceLevel, http://www.w3.org/2001/XMLSchema,unsignedByte */ + uint8_t EPriceLevel ; + unsigned int EPriceLevel_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":ConsumptionCost, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ConsumptionCostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":startValue,"urn:iso:15118:2:2013:MsgDataTypes":Cost{1-3})', derivedBy='RESTRICTION'. */ + struct { + struct iso1ConsumptionCostType array[iso1SalesTariffEntryType_ConsumptionCost_ARRAY_SIZE]; + uint16_t arrayLen; + } ConsumptionCost; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SalesTariffType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SalesTariffID,"urn:iso:15118:2:2013:MsgDataTypes":SalesTariffDescription{0-1},"urn:iso:15118:2:2013:MsgDataTypes":NumEPriceLevels{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SalesTariffEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso1SalesTariffType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1SalesTariffType_SalesTariffDescription_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,tariffDescriptionType is 32 */ +#define iso1SalesTariffType_SalesTariffEntry_ARRAY_SIZE 5 +struct iso1SalesTariffType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso1SalesTariffType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":SalesTariffID, urn:iso:15118:2:2013:MsgDataTypes,SAIDType */ + uint8_t SalesTariffID ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":SalesTariffDescription, urn:iso:15118:2:2013:MsgDataTypes,tariffDescriptionType */ + struct { + exi_string_character_t characters[iso1SalesTariffType_SalesTariffDescription_CHARACTERS_SIZE]; + uint16_t charactersLen; + } SalesTariffDescription ; + unsigned int SalesTariffDescription_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":NumEPriceLevels, http://www.w3.org/2001/XMLSchema,unsignedByte */ + uint8_t NumEPriceLevels ; + unsigned int NumEPriceLevels_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":SalesTariffEntry, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SalesTariffEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2013:MsgDataTypes":EPriceLevel{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ConsumptionCost{0-3}))', derivedBy='EXTENSION'. */ + struct { + struct iso1SalesTariffEntryType array[iso1SalesTariffType_SalesTariffEntry_ARRAY_SIZE]; + uint16_t arrayLen; + } SalesTariffEntry; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso1SignatureType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1SignatureType_Object_ARRAY_SIZE 1 +struct iso1SignatureType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso1SignatureType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":SignedInfo, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso1SignedInfoType SignedInfo ; + /* element: "http://www.w3.org/2000/09/xmldsig#":SignatureValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct iso1SignatureValueType SignatureValue ; + /* element: "http://www.w3.org/2000/09/xmldsig#":KeyInfo, Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct iso1KeyInfoType KeyInfo ; + unsigned int KeyInfo_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Object, Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct iso1ObjectType array[iso1SignatureType_Object_ARRAY_SIZE]; + uint16_t arrayLen; + } Object; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PowerDeliveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ChargeProgress,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":ChargingProfile{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVPowerDeliveryParameter{0-1})', derivedBy='EXTENSION'. */ +struct iso1PowerDeliveryReqType { + /* element: "urn:iso:15118:2:2013:MsgBody":ChargeProgress, urn:iso:15118:2:2013:MsgDataTypes,chargeProgressType */ + iso1chargeProgressType ChargeProgress ; + /* element: "urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID, urn:iso:15118:2:2013:MsgDataTypes,SAIDType */ + uint8_t SAScheduleTupleID ; + /* element: "urn:iso:15118:2:2013:MsgBody":ChargingProfile, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ChargingProfileType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ProfileEntry{1-24})', derivedBy='RESTRICTION'. */ + struct iso1ChargingProfileType ChargingProfile ; + unsigned int ChargingProfile_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVPowerDeliveryParameter, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVPowerDeliveryParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct iso1EVPowerDeliveryParameterType EVPowerDeliveryParameter ; + unsigned int EVPowerDeliveryParameter_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":DC_EVPowerDeliveryParameter, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVPowerDeliveryParameterType', base type name='EVPowerDeliveryParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2013:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ChargingComplete)', derivedBy='EXTENSION'. */ + struct iso1DC_EVPowerDeliveryParameterType DC_EVPowerDeliveryParameter ; + unsigned int DC_EVPowerDeliveryParameter_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceParameterListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ParameterSet{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso1ServiceParameterListType_ParameterSet_ARRAY_SIZE 5 +struct iso1ServiceParameterListType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":ParameterSet, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2013:MsgDataTypes":Parameter{1-16})', derivedBy='RESTRICTION'. */ + struct { + struct iso1ParameterSetType array[iso1ServiceParameterListType_ParameterSet_ARRAY_SIZE]; + uint16_t arrayLen; + } ParameterSet; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDetailResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":ServiceID,"urn:iso:15118:2:2013:MsgBody":ServiceParameterList{0-1})', derivedBy='EXTENSION'. */ +struct iso1ServiceDetailResType { + /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */ + iso1responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2013:MsgBody":ServiceID, urn:iso:15118:2:2013:MsgDataTypes,serviceIDType */ + uint16_t ServiceID ; + /* element: "urn:iso:15118:2:2013:MsgBody":ServiceParameterList, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceParameterListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ParameterSet{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso1ServiceParameterListType ServiceParameterList ; + unsigned int ServiceParameterList_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SAScheduleTupleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgDataTypes":PMaxSchedule,"urn:iso:15118:2:2013:MsgDataTypes":SalesTariff{0-1})', derivedBy='RESTRICTION'. */ +struct iso1SAScheduleTupleType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTupleID, urn:iso:15118:2:2013:MsgDataTypes,SAIDType */ + uint8_t SAScheduleTupleID ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":PMaxSchedule, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PMaxScheduleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":PMaxScheduleEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso1PMaxScheduleType PMaxSchedule ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":SalesTariff, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SalesTariffType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SalesTariffID,"urn:iso:15118:2:2013:MsgDataTypes":SalesTariffDescription{0-1},"urn:iso:15118:2:2013:MsgDataTypes":NumEPriceLevels{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SalesTariffEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso1SalesTariffType SalesTariff ; + unsigned int SalesTariff_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgHeader,MessageHeaderType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgHeader":SessionID,"urn:iso:15118:2:2013:MsgHeader":Notification{0-1},"http://www.w3.org/2000/09/xmldsig#":Signature{0-1})', derivedBy='RESTRICTION'. */ +#define iso1MessageHeaderType_SessionID_BYTES_SIZE 8 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,sessionIDType is 8 */ +struct iso1MessageHeaderType { + /* element: "urn:iso:15118:2:2013:MsgHeader":SessionID, urn:iso:15118:2:2013:MsgDataTypes,sessionIDType */ + struct { + uint8_t bytes[iso1MessageHeaderType_SessionID_BYTES_SIZE]; + uint16_t bytesLen; + } SessionID ; + /* element: "urn:iso:15118:2:2013:MsgHeader":Notification, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,NotificationType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":FaultCode,"urn:iso:15118:2:2013:MsgDataTypes":FaultMsg{0-1})', derivedBy='RESTRICTION'. */ + struct iso1NotificationType Notification ; + unsigned int Notification_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Signature, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso1SignatureType Signature ; + unsigned int Signature_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SAScheduleListType', base type name='SASchedulesType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTuple{1-3})', derivedBy='EXTENSION'. */ +#define iso1SAScheduleListType_SAScheduleTuple_ARRAY_SIZE 3 +struct iso1SAScheduleListType { + /* element: "urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTuple, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SAScheduleTupleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgDataTypes":PMaxSchedule,"urn:iso:15118:2:2013:MsgDataTypes":SalesTariff{0-1})', derivedBy='RESTRICTION'. */ + struct { + struct iso1SAScheduleTupleType array[iso1SAScheduleListType_SAScheduleTuple_ARRAY_SIZE]; + uint16_t arrayLen; + } SAScheduleTuple; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargeParameterDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing,"urn:iso:15118:2:2013:MsgDataTypes":SASchedules{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEChargeParameter)', derivedBy='EXTENSION'. */ +struct iso1ChargeParameterDiscoveryResType { + /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */ + iso1responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2013:MsgBody":EVSEProcessing, urn:iso:15118:2:2013:MsgDataTypes,EVSEProcessingType */ + iso1EVSEProcessingType EVSEProcessing ; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":SASchedules, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SASchedulesType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct iso1SASchedulesType SASchedules ; + unsigned int SASchedules_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":SAScheduleList, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SAScheduleListType', base type name='SASchedulesType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTuple{1-3})', derivedBy='EXTENSION'. */ + struct iso1SAScheduleListType SAScheduleList ; + unsigned int SAScheduleList_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEChargeParameter, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEChargeParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct iso1EVSEChargeParameterType EVSEChargeParameter ; + unsigned int EVSEChargeParameter_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":AC_EVSEChargeParameter, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":AC_EVSEStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVSENominalVoltage,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaxCurrent)', derivedBy='EXTENSION'. */ + struct iso1AC_EVSEChargeParameterType AC_EVSEChargeParameter ; + unsigned int AC_EVSEChargeParameter_isUsed:1; + /* element: "urn:iso:15118:2:2013:MsgDataTypes":DC_EVSEChargeParameter, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumPowerLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2013:MsgDataTypes":EVSEEnergyToBeDelivered{0-1})', derivedBy='EXTENSION'. */ + struct iso1DC_EVSEChargeParameterType DC_EVSEChargeParameter ; + unsigned int DC_EVSEChargeParameter_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,BodyType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":BodyElement{0-1})', derivedBy='RESTRICTION'. */ +struct iso1BodyType { + /* substitutionGroup */ +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + union { +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + /* element: "urn:iso:15118:2:2013:MsgBody":BodyElement, Complex type name='urn:iso:15118:2:2013:MsgBody,BodyBaseType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct iso1BodyBaseType BodyElement ; + /* element: "urn:iso:15118:2:2013:MsgBody":SessionSetupReq, Complex type name='urn:iso:15118:2:2013:MsgBody,SessionSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":EVCCID)', derivedBy='EXTENSION'. */ + struct iso1SessionSetupReqType SessionSetupReq ; + /* element: "urn:iso:15118:2:2013:MsgBody":SessionSetupRes, Complex type name='urn:iso:15118:2:2013:MsgBody,SessionSetupResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":EVSETimeStamp{0-1})', derivedBy='EXTENSION'. */ + struct iso1SessionSetupResType SessionSetupRes ; + /* element: "urn:iso:15118:2:2013:MsgBody":ServiceDiscoveryReq, Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgBody":ServiceCategory{0-1})', derivedBy='EXTENSION'. */ + struct iso1ServiceDiscoveryReqType ServiceDiscoveryReq ; + /* element: "urn:iso:15118:2:2013:MsgBody":ServiceDiscoveryRes, Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":PaymentOptionList,"urn:iso:15118:2:2013:MsgBody":ChargeService,"urn:iso:15118:2:2013:MsgBody":ServiceList{0-1})', derivedBy='EXTENSION'. */ + struct iso1ServiceDiscoveryResType ServiceDiscoveryRes ; + /* element: "urn:iso:15118:2:2013:MsgBody":ServiceDetailReq, Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDetailReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ServiceID)', derivedBy='EXTENSION'. */ + struct iso1ServiceDetailReqType ServiceDetailReq ; + /* element: "urn:iso:15118:2:2013:MsgBody":ServiceDetailRes, Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDetailResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":ServiceID,"urn:iso:15118:2:2013:MsgBody":ServiceParameterList{0-1})', derivedBy='EXTENSION'. */ + struct iso1ServiceDetailResType ServiceDetailRes ; + /* element: "urn:iso:15118:2:2013:MsgBody":PaymentServiceSelectionReq, Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentServiceSelectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":SelectedPaymentOption,"urn:iso:15118:2:2013:MsgBody":SelectedServiceList)', derivedBy='EXTENSION'. */ + struct iso1PaymentServiceSelectionReqType PaymentServiceSelectionReq ; + /* element: "urn:iso:15118:2:2013:MsgBody":PaymentServiceSelectionRes, Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentServiceSelectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */ + struct iso1PaymentServiceSelectionResType PaymentServiceSelectionRes ; + /* element: "urn:iso:15118:2:2013:MsgBody":PaymentDetailsReq, Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentDetailsReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain)', derivedBy='EXTENSION'. */ + struct iso1PaymentDetailsReqType PaymentDetailsReq ; + /* element: "urn:iso:15118:2:2013:MsgBody":PaymentDetailsRes, Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentDetailsResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":GenChallenge,"urn:iso:15118:2:2013:MsgBody":EVSETimeStamp)', derivedBy='EXTENSION'. */ + struct iso1PaymentDetailsResType PaymentDetailsRes ; + /* element: "urn:iso:15118:2:2013:MsgBody":AuthorizationReq, Complex type name='urn:iso:15118:2:2013:MsgBody,AuthorizationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":GenChallenge{0-1})', derivedBy='EXTENSION'. */ + struct iso1AuthorizationReqType AuthorizationReq ; + /* element: "urn:iso:15118:2:2013:MsgBody":AuthorizationRes, Complex type name='urn:iso:15118:2:2013:MsgBody,AuthorizationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */ + struct iso1AuthorizationResType AuthorizationRes ; + /* element: "urn:iso:15118:2:2013:MsgBody":ChargeParameterDiscoveryReq, Complex type name='urn:iso:15118:2:2013:MsgBody,ChargeParameterDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":MaxEntriesSAScheduleTuple{0-1},"urn:iso:15118:2:2013:MsgBody":RequestedEnergyTransferMode,"urn:iso:15118:2:2013:MsgDataTypes":EVChargeParameter)', derivedBy='EXTENSION'. */ + struct iso1ChargeParameterDiscoveryReqType ChargeParameterDiscoveryReq ; + /* element: "urn:iso:15118:2:2013:MsgBody":ChargeParameterDiscoveryRes, Complex type name='urn:iso:15118:2:2013:MsgBody,ChargeParameterDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing,"urn:iso:15118:2:2013:MsgDataTypes":SASchedules{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEChargeParameter)', derivedBy='EXTENSION'. */ + struct iso1ChargeParameterDiscoveryResType ChargeParameterDiscoveryRes ; + /* element: "urn:iso:15118:2:2013:MsgBody":PowerDeliveryReq, Complex type name='urn:iso:15118:2:2013:MsgBody,PowerDeliveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ChargeProgress,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":ChargingProfile{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVPowerDeliveryParameter{0-1})', derivedBy='EXTENSION'. */ + struct iso1PowerDeliveryReqType PowerDeliveryReq ; + /* element: "urn:iso:15118:2:2013:MsgBody":PowerDeliveryRes, Complex type name='urn:iso:15118:2:2013:MsgBody,PowerDeliveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */ + struct iso1PowerDeliveryResType PowerDeliveryRes ; + /* element: "urn:iso:15118:2:2013:MsgBody":MeteringReceiptReq, Complex type name='urn:iso:15118:2:2013:MsgBody,MeteringReceiptReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":SessionID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2013:MsgBody":MeterInfo)', derivedBy='EXTENSION'. */ + struct iso1MeteringReceiptReqType MeteringReceiptReq ; + /* element: "urn:iso:15118:2:2013:MsgBody":MeteringReceiptRes, Complex type name='urn:iso:15118:2:2013:MsgBody,MeteringReceiptResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */ + struct iso1MeteringReceiptResType MeteringReceiptRes ; + /* element: "urn:iso:15118:2:2013:MsgBody":SessionStopReq, Complex type name='urn:iso:15118:2:2013:MsgBody,SessionStopReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ChargingSession)', derivedBy='EXTENSION'. */ + struct iso1SessionStopReqType SessionStopReq ; + /* element: "urn:iso:15118:2:2013:MsgBody":SessionStopRes, Complex type name='urn:iso:15118:2:2013:MsgBody,SessionStopResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */ + struct iso1SessionStopResType SessionStopRes ; + /* element: "urn:iso:15118:2:2013:MsgBody":CertificateUpdateReq, Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateUpdateReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */ + struct iso1CertificateUpdateReqType CertificateUpdateReq ; + /* element: "urn:iso:15118:2:2013:MsgBody":CertificateUpdateRes, Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateUpdateResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2013:MsgBody":DHpublickey,"urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":RetryCounter{0-1})', derivedBy='EXTENSION'. */ + struct iso1CertificateUpdateResType CertificateUpdateRes ; + /* element: "urn:iso:15118:2:2013:MsgBody":CertificateInstallationReq, Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateInstallationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":OEMProvisioningCert,"urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */ + struct iso1CertificateInstallationReqType CertificateInstallationReq ; + /* element: "urn:iso:15118:2:2013:MsgBody":CertificateInstallationRes, Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateInstallationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2013:MsgBody":DHpublickey,"urn:iso:15118:2:2013:MsgBody":eMAID)', derivedBy='EXTENSION'. */ + struct iso1CertificateInstallationResType CertificateInstallationRes ; + /* element: "urn:iso:15118:2:2013:MsgBody":ChargingStatusReq, Complex type name='urn:iso:15118:2:2013:MsgBody,ChargingStatusReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct iso1ChargingStatusReqType ChargingStatusReq ; + /* element: "urn:iso:15118:2:2013:MsgBody":ChargingStatusRes, Complex type name='urn:iso:15118:2:2013:MsgBody,ChargingStatusResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":EVSEMaxCurrent{0-1},"urn:iso:15118:2:2013:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2013:MsgBody":ReceiptRequired{0-1},"urn:iso:15118:2:2013:MsgBody":AC_EVSEStatus)', derivedBy='EXTENSION'. */ + struct iso1ChargingStatusResType ChargingStatusRes ; + /* element: "urn:iso:15118:2:2013:MsgBody":CableCheckReq, Complex type name='urn:iso:15118:2:2013:MsgBody,CableCheckReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */ + struct iso1CableCheckReqType CableCheckReq ; + /* element: "urn:iso:15118:2:2013:MsgBody":CableCheckRes, Complex type name='urn:iso:15118:2:2013:MsgBody,CableCheckResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */ + struct iso1CableCheckResType CableCheckRes ; + /* element: "urn:iso:15118:2:2013:MsgBody":PreChargeReq, Complex type name='urn:iso:15118:2:2013:MsgBody,PreChargeReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus,"urn:iso:15118:2:2013:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2013:MsgBody":EVTargetCurrent)', derivedBy='EXTENSION'. */ + struct iso1PreChargeReqType PreChargeReq ; + /* element: "urn:iso:15118:2:2013:MsgBody":PreChargeRes, Complex type name='urn:iso:15118:2:2013:MsgBody,PreChargeResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */ + struct iso1PreChargeResType PreChargeRes ; + /* element: "urn:iso:15118:2:2013:MsgBody":CurrentDemandReq, Complex type name='urn:iso:15118:2:2013:MsgBody,CurrentDemandReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus,"urn:iso:15118:2:2013:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2013:MsgBody":EVMaximumVoltageLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVMaximumCurrentLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgBody":BulkChargingComplete{0-1},"urn:iso:15118:2:2013:MsgBody":ChargingComplete,"urn:iso:15118:2:2013:MsgBody":RemainingTimeToFullSoC{0-1},"urn:iso:15118:2:2013:MsgBody":RemainingTimeToBulkSoC{0-1},"urn:iso:15118:2:2013:MsgBody":EVTargetVoltage)', derivedBy='EXTENSION'. */ + struct iso1CurrentDemandReqType CurrentDemandReq ; + /* element: "urn:iso:15118:2:2013:MsgBody":CurrentDemandRes, Complex type name='urn:iso:15118:2:2013:MsgBody,CurrentDemandResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2013:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2013:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEMaximumVoltageLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEMaximumCurrentLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2013:MsgBody":ReceiptRequired{0-1})', derivedBy='EXTENSION'. */ + struct iso1CurrentDemandResType CurrentDemandRes ; + /* element: "urn:iso:15118:2:2013:MsgBody":WeldingDetectionReq, Complex type name='urn:iso:15118:2:2013:MsgBody,WeldingDetectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */ + struct iso1WeldingDetectionReqType WeldingDetectionReq ; + /* element: "urn:iso:15118:2:2013:MsgBody":WeldingDetectionRes, Complex type name='urn:iso:15118:2:2013:MsgBody,WeldingDetectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */ + struct iso1WeldingDetectionResType WeldingDetectionRes ; +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + }; +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + unsigned int BodyElement_isUsed:1; + unsigned int SessionSetupReq_isUsed:1; + unsigned int SessionSetupRes_isUsed:1; + unsigned int ServiceDiscoveryReq_isUsed:1; + unsigned int ServiceDiscoveryRes_isUsed:1; + unsigned int ServiceDetailReq_isUsed:1; + unsigned int ServiceDetailRes_isUsed:1; + unsigned int PaymentServiceSelectionReq_isUsed:1; + unsigned int PaymentServiceSelectionRes_isUsed:1; + unsigned int PaymentDetailsReq_isUsed:1; + unsigned int PaymentDetailsRes_isUsed:1; + unsigned int AuthorizationReq_isUsed:1; + unsigned int AuthorizationRes_isUsed:1; + unsigned int ChargeParameterDiscoveryReq_isUsed:1; + unsigned int ChargeParameterDiscoveryRes_isUsed:1; + unsigned int PowerDeliveryReq_isUsed:1; + unsigned int PowerDeliveryRes_isUsed:1; + unsigned int MeteringReceiptReq_isUsed:1; + unsigned int MeteringReceiptRes_isUsed:1; + unsigned int SessionStopReq_isUsed:1; + unsigned int SessionStopRes_isUsed:1; + unsigned int CertificateUpdateReq_isUsed:1; + unsigned int CertificateUpdateRes_isUsed:1; + unsigned int CertificateInstallationReq_isUsed:1; + unsigned int CertificateInstallationRes_isUsed:1; + unsigned int ChargingStatusReq_isUsed:1; + unsigned int ChargingStatusRes_isUsed:1; + unsigned int CableCheckReq_isUsed:1; + unsigned int CableCheckRes_isUsed:1; + unsigned int PreChargeReq_isUsed:1; + unsigned int PreChargeRes_isUsed:1; + unsigned int CurrentDemandReq_isUsed:1; + unsigned int CurrentDemandRes_isUsed:1; + unsigned int WeldingDetectionReq_isUsed:1; + unsigned int WeldingDetectionRes_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2013:MsgDef,#AnonType_V2G_Message', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDef":Header,"urn:iso:15118:2:2013:MsgDef":Body)', derivedBy='RESTRICTION'. */ +struct iso1AnonType_V2G_Message { + /* element: "urn:iso:15118:2:2013:MsgDef":Header, Complex type name='urn:iso:15118:2:2013:MsgHeader,MessageHeaderType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgHeader":SessionID,"urn:iso:15118:2:2013:MsgHeader":Notification{0-1},"http://www.w3.org/2000/09/xmldsig#":Signature{0-1})', derivedBy='RESTRICTION'. */ + struct iso1MessageHeaderType Header ; + /* element: "urn:iso:15118:2:2013:MsgDef":Body, Complex type name='urn:iso:15118:2:2013:MsgBody,BodyType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":BodyElement{0-1})', derivedBy='RESTRICTION'. */ + struct iso1BodyType Body ; +}; + + + +#define iso1EXIDocument_MgmtData_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1EXIDocument_KeyName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1EXIDocument_DigestValue_BYTES_SIZE 350 +#define iso1EXIFragment_Exponent_BYTES_SIZE 350 +#define iso1EXIFragment_PgenCounter_BYTES_SIZE 350 +#define iso1EXIFragment_SessionID_BYTES_SIZE 8 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,sessionIDType is 8 */ +#define iso1EXIFragment_PGPKeyPacket_BYTES_SIZE 350 +#define iso1EXIFragment_Seed_BYTES_SIZE 350 +#define iso1EXIFragment_XPath_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1EXIFragment_OEMProvisioningCert_BYTES_SIZE 800 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,certificateType is 800 */ +#define iso1EXIFragment_SalesTariffDescription_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,tariffDescriptionType is 32 */ +#define iso1EXIFragment_EVCCID_BYTES_SIZE 6 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,evccIDType is 6 */ +#define iso1EXIFragment_MgmtData_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1EXIFragment_P_BYTES_SIZE 350 +#define iso1EXIFragment_Q_BYTES_SIZE 350 +#define iso1EXIFragment_X509SubjectName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1EXIFragment_G_BYTES_SIZE 350 +#define iso1EXIFragment_J_BYTES_SIZE 350 +#define iso1EXIFragment_ServiceScope_CHARACTERS_SIZE 64 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,serviceScopeType is 64 */ +#define iso1EXIFragment_ServiceName_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,serviceNameType is 32 */ +#define iso1EXIFragment_X509CRL_BYTES_SIZE 350 +#define iso1EXIFragment_Y_BYTES_SIZE 350 +#define iso1EXIFragment_DigestValue_BYTES_SIZE 350 +#define iso1EXIFragment_SPKISexp_BYTES_SIZE 350 +#define iso1EXIFragment_stringValue_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1EXIFragment_PGPKeyID_BYTES_SIZE 350 +#define iso1EXIFragment_X509Certificate_BYTES_SIZE 350 +#define iso1EXIFragment_FaultMsg_CHARACTERS_SIZE 64 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,faultMsgType is 64 */ +#define iso1EXIFragment_EVSEID_CHARACTERS_SIZE 37 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,evseIDType is 37 */ +#define iso1EXIFragment_SigMeterReading_BYTES_SIZE 64 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,sigMeterReadingType is 64 */ +#define iso1EXIFragment_MeterID_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,meterIDType is 32 */ +#define iso1EXIFragment_KeyName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1EXIFragment_GenChallenge_BYTES_SIZE 16 /* XML schema facet length for urn:iso:15118:2:2013:MsgDataTypes,genChallengeType is 16 */ +#define iso1EXIFragment_X509SKI_BYTES_SIZE 350 +#define iso1EXIFragment_Certificate_BYTES_SIZE 800 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,certificateType is 800 */ +#define iso1EXIFragment_X509IssuerName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1EXIFragment_Modulus_BYTES_SIZE 350 +#define iso1exiElementFrag_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso1exiElementFrag_CHARACTERS_GENERIC_CHARACTERS_SIZE 50 + EXTRA_CHAR + + +/* Global elements of EXI Document */ +struct iso1EXIDocument { +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + union { +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + struct iso1AnonType_V2G_Message V2G_Message ; + struct iso1ServiceDiscoveryReqType ServiceDiscoveryReq ; + struct iso1ServiceDiscoveryResType ServiceDiscoveryRes ; + struct iso1MeteringReceiptReqType MeteringReceiptReq ; + struct iso1PaymentDetailsReqType PaymentDetailsReq ; + struct iso1MeteringReceiptResType MeteringReceiptRes ; + struct iso1PaymentDetailsResType PaymentDetailsRes ; + struct iso1SessionSetupReqType SessionSetupReq ; + struct iso1SessionSetupResType SessionSetupRes ; + struct iso1CableCheckReqType CableCheckReq ; + struct iso1CableCheckResType CableCheckRes ; + struct iso1CertificateInstallationReqType CertificateInstallationReq ; + struct iso1CertificateInstallationResType CertificateInstallationRes ; + struct iso1WeldingDetectionReqType WeldingDetectionReq ; + struct iso1WeldingDetectionResType WeldingDetectionRes ; + struct iso1CertificateUpdateReqType CertificateUpdateReq ; + struct iso1CertificateUpdateResType CertificateUpdateRes ; + struct iso1PaymentServiceSelectionReqType PaymentServiceSelectionReq ; + struct iso1PowerDeliveryReqType PowerDeliveryReq ; + struct iso1PaymentServiceSelectionResType PaymentServiceSelectionRes ; + struct iso1PowerDeliveryResType PowerDeliveryRes ; + struct iso1ChargingStatusReqType ChargingStatusReq ; + struct iso1ChargingStatusResType ChargingStatusRes ; + struct iso1BodyBaseType BodyElement ; + struct iso1CurrentDemandReqType CurrentDemandReq ; + struct iso1PreChargeReqType PreChargeReq ; + struct iso1CurrentDemandResType CurrentDemandRes ; + struct iso1PreChargeResType PreChargeRes ; + struct iso1SessionStopReqType SessionStopReq ; + struct iso1AuthorizationReqType AuthorizationReq ; + struct iso1SessionStopResType SessionStopRes ; + struct iso1AuthorizationResType AuthorizationRes ; + struct iso1ChargeParameterDiscoveryReqType ChargeParameterDiscoveryReq ; + struct iso1ChargeParameterDiscoveryResType ChargeParameterDiscoveryRes ; + struct iso1ServiceDetailReqType ServiceDetailReq ; + struct iso1ServiceDetailResType ServiceDetailRes ; + struct iso1DC_EVSEStatusType DC_EVSEStatus ; + struct iso1RelativeTimeIntervalType RelativeTimeInterval ; + struct iso1SalesTariffEntryType SalesTariffEntry ; + struct iso1DC_EVPowerDeliveryParameterType DC_EVPowerDeliveryParameter ; + struct iso1SASchedulesType SASchedules ; + struct iso1AC_EVChargeParameterType AC_EVChargeParameter ; + struct iso1SAScheduleListType SAScheduleList ; + struct iso1DC_EVStatusType DC_EVStatus ; + struct iso1EVStatusType EVStatus ; + struct iso1DC_EVChargeParameterType DC_EVChargeParameter ; + struct iso1DC_EVSEChargeParameterType DC_EVSEChargeParameter ; + struct iso1EVSEStatusType EVSEStatus ; + struct iso1IntervalType TimeInterval ; + struct iso1EVPowerDeliveryParameterType EVPowerDeliveryParameter ; + struct iso1EVSEChargeParameterType EVSEChargeParameter ; + struct iso1AC_EVSEStatusType AC_EVSEStatus ; + struct iso1EntryType Entry ; + struct iso1AC_EVSEChargeParameterType AC_EVSEChargeParameter ; + struct iso1PMaxScheduleEntryType PMaxScheduleEntry ; + struct iso1EVChargeParameterType EVChargeParameter ; + struct iso1SignaturePropertyType SignatureProperty ; + struct iso1DSAKeyValueType DSAKeyValue ; + struct iso1SignaturePropertiesType SignatureProperties ; + struct iso1KeyValueType KeyValue ; + struct iso1TransformsType Transforms ; + struct iso1DigestMethodType DigestMethod ; + struct iso1SignatureType Signature ; + struct iso1RetrievalMethodType RetrievalMethod ; + struct iso1ManifestType Manifest ; + struct iso1ReferenceType Reference ; + struct iso1CanonicalizationMethodType CanonicalizationMethod ; + struct iso1RSAKeyValueType RSAKeyValue ; + struct iso1TransformType Transform ; + struct iso1PGPDataType PGPData ; + struct { + exi_string_character_t characters[iso1EXIDocument_MgmtData_CHARACTERS_SIZE]; + uint16_t charactersLen; + } MgmtData ; + struct iso1SignatureMethodType SignatureMethod ; + struct iso1KeyInfoType KeyInfo ; + struct iso1SPKIDataType SPKIData ; + struct iso1X509DataType X509Data ; + struct iso1SignatureValueType SignatureValue ; + struct { + exi_string_character_t characters[iso1EXIDocument_KeyName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } KeyName ; + struct { + uint8_t bytes[iso1EXIDocument_DigestValue_BYTES_SIZE]; + uint16_t bytesLen; + } DigestValue ; + struct iso1SignedInfoType SignedInfo ; + struct iso1ObjectType Object ; +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + }; +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + unsigned int V2G_Message_isUsed:1; + unsigned int ServiceDiscoveryReq_isUsed:1; + unsigned int ServiceDiscoveryRes_isUsed:1; + unsigned int MeteringReceiptReq_isUsed:1; + unsigned int PaymentDetailsReq_isUsed:1; + unsigned int MeteringReceiptRes_isUsed:1; + unsigned int PaymentDetailsRes_isUsed:1; + unsigned int SessionSetupReq_isUsed:1; + unsigned int SessionSetupRes_isUsed:1; + unsigned int CableCheckReq_isUsed:1; + unsigned int CableCheckRes_isUsed:1; + unsigned int CertificateInstallationReq_isUsed:1; + unsigned int CertificateInstallationRes_isUsed:1; + unsigned int WeldingDetectionReq_isUsed:1; + unsigned int WeldingDetectionRes_isUsed:1; + unsigned int CertificateUpdateReq_isUsed:1; + unsigned int CertificateUpdateRes_isUsed:1; + unsigned int PaymentServiceSelectionReq_isUsed:1; + unsigned int PowerDeliveryReq_isUsed:1; + unsigned int PaymentServiceSelectionRes_isUsed:1; + unsigned int PowerDeliveryRes_isUsed:1; + unsigned int ChargingStatusReq_isUsed:1; + unsigned int ChargingStatusRes_isUsed:1; + unsigned int BodyElement_isUsed:1; + unsigned int CurrentDemandReq_isUsed:1; + unsigned int PreChargeReq_isUsed:1; + unsigned int CurrentDemandRes_isUsed:1; + unsigned int PreChargeRes_isUsed:1; + unsigned int SessionStopReq_isUsed:1; + unsigned int AuthorizationReq_isUsed:1; + unsigned int SessionStopRes_isUsed:1; + unsigned int AuthorizationRes_isUsed:1; + unsigned int ChargeParameterDiscoveryReq_isUsed:1; + unsigned int ChargeParameterDiscoveryRes_isUsed:1; + unsigned int ServiceDetailReq_isUsed:1; + unsigned int ServiceDetailRes_isUsed:1; + unsigned int DC_EVSEStatus_isUsed:1; + unsigned int RelativeTimeInterval_isUsed:1; + unsigned int SalesTariffEntry_isUsed:1; + unsigned int DC_EVPowerDeliveryParameter_isUsed:1; + unsigned int SASchedules_isUsed:1; + unsigned int AC_EVChargeParameter_isUsed:1; + unsigned int SAScheduleList_isUsed:1; + unsigned int DC_EVStatus_isUsed:1; + unsigned int EVStatus_isUsed:1; + unsigned int DC_EVChargeParameter_isUsed:1; + unsigned int DC_EVSEChargeParameter_isUsed:1; + unsigned int EVSEStatus_isUsed:1; + unsigned int TimeInterval_isUsed:1; + unsigned int EVPowerDeliveryParameter_isUsed:1; + unsigned int EVSEChargeParameter_isUsed:1; + unsigned int AC_EVSEStatus_isUsed:1; + unsigned int Entry_isUsed:1; + unsigned int AC_EVSEChargeParameter_isUsed:1; + unsigned int PMaxScheduleEntry_isUsed:1; + unsigned int EVChargeParameter_isUsed:1; + unsigned int SignatureProperty_isUsed:1; + unsigned int DSAKeyValue_isUsed:1; + unsigned int SignatureProperties_isUsed:1; + unsigned int KeyValue_isUsed:1; + unsigned int Transforms_isUsed:1; + unsigned int DigestMethod_isUsed:1; + unsigned int Signature_isUsed:1; + unsigned int RetrievalMethod_isUsed:1; + unsigned int Manifest_isUsed:1; + unsigned int Reference_isUsed:1; + unsigned int CanonicalizationMethod_isUsed:1; + unsigned int RSAKeyValue_isUsed:1; + unsigned int Transform_isUsed:1; + unsigned int PGPData_isUsed:1; + unsigned int MgmtData_isUsed:1; + unsigned int SignatureMethod_isUsed:1; + unsigned int KeyInfo_isUsed:1; + unsigned int SPKIData_isUsed:1; + unsigned int X509Data_isUsed:1; + unsigned int SignatureValue_isUsed:1; + unsigned int KeyName_isUsed:1; + unsigned int DigestValue_isUsed:1; + unsigned int SignedInfo_isUsed:1; + unsigned int Object_isUsed:1; + + + int _warning_; +}; + + +#if DEPLOY_ISO1_CODEC_FRAGMENT == SUPPORT_YES +struct iso1EXISchemaInformedElementFragmentGrammar { + /* Schema-informed Element Fragment Grammar for START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID) */ + /* 4 ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id) */ + unsigned int Id_isUsed:1; + struct { + exi_string_character_t characters[iso1exiElementFrag_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + /* 247 START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID) */ + unsigned int CHARACTERS_GENERIC_isUsed:1; + struct { + exi_string_character_t characters[iso1exiElementFrag_CHARACTERS_GENERIC_CHARACTERS_SIZE]; + uint16_t charactersLen; + } CHARACTERS_GENERIC ; + + + int _warning_; +}; +/* Possible elements of EXI Fragment */ +struct iso1EXIFragment { +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + union { +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + int ChargingComplete ; + struct iso1PhysicalValueType EVMaxVoltage ; + uint16_t ServiceID ; + int8_t EVRESSSOC ; + uint64_t MeterReading ; + struct iso1PhysicalValueType physicalValue ; + struct iso1IntervalType TimeInterval ; + struct iso1AC_EVSEStatusType AC_EVSEStatus ; + struct iso1PhysicalValueType EVMaxCurrent ; + uint32_t ChargingProfileEntryStart ; + struct iso1PhysicalValueType EVSEMaxCurrent ; + iso1costKindType costKind ; + struct iso1PhysicalValueType EAmount ; + iso1EnergyTransferModeType EnergyTransferMode ; + int64_t X509SerialNumber ; + uint8_t NumEPriceLevels ; + struct iso1RetrievalMethodType RetrievalMethod ; + struct iso1PhysicalValueType PMax ; + int16_t ParameterSetID ; + int8_t BulkSOC ; + struct iso1PhysicalValueType EVSEMinimumCurrentLimit ; + int EVSEPowerLimitAchieved ; + struct iso1SalesTariffEntryType SalesTariffEntry ; + struct iso1TransformsType Transforms ; + iso1EVSEProcessingType EVSEProcessing ; + iso1isolationLevelType EVSEIsolationStatus ; + int BulkChargingComplete ; + uint8_t SAScheduleTupleID ; + iso1faultCodeType FaultCode ; + struct iso1X509IssuerSerialType RootCertificateID ; + int64_t HMACOutputLength ; + struct { + uint8_t bytes[iso1EXIFragment_Exponent_BYTES_SIZE]; + uint16_t bytesLen; + } Exponent ; + struct iso1X509IssuerSerialType X509IssuerSerial ; + int8_t byteValue ; + struct iso1SPKIDataType SPKIData ; + struct iso1SAScheduleListType SAScheduleList ; + struct iso1PhysicalValueType EVMaximumPowerLimit ; + struct iso1DC_EVSEStatusType DC_EVSEStatus ; + int16_t RetryCounter ; + struct iso1PhysicalValueType EVSEMaximumCurrentLimit ; + struct iso1SalesTariffType SalesTariff ; + struct { + uint8_t bytes[iso1EXIFragment_PgenCounter_BYTES_SIZE]; + uint16_t bytesLen; + } PgenCounter ; + struct iso1X509DataType X509Data ; + struct iso1PhysicalValueType EVSECurrentRegulationTolerance ; + struct iso1KeyValueType KeyValue ; + struct iso1AnonType_V2G_Message V2G_Message ; + struct iso1PhysicalValueType EVSEMinimumVoltageLimit ; + iso1responseCodeType ResponseCode ; + struct iso1ProfileEntryType ProfileEntry ; + uint32_t start ; + iso1DC_EVErrorCodeType EVErrorCode ; + struct iso1EVChargeParameterType EVChargeParameter ; + struct iso1CertificateChainType ContractSignatureCertChain ; + struct iso1PhysicalValueType EVSEPresentCurrent ; + struct iso1PGPDataType PGPData ; + struct iso1PhysicalValueType EVMinCurrent ; + int8_t FullSOC ; + uint32_t amount ; + struct iso1DC_EVSEChargeParameterType DC_EVSEChargeParameter ; + struct iso1EntryType Entry ; + struct iso1SessionStopResType SessionStopRes ; + int16_t shortValue ; + struct iso1CertificateChainType SAProvisioningCertificateChain ; + struct iso1PowerDeliveryReqType PowerDeliveryReq ; + struct iso1PowerDeliveryResType PowerDeliveryRes ; + struct iso1SessionStopReqType SessionStopReq ; + struct iso1SignaturePropertyType SignatureProperty ; + struct { + uint8_t bytes[iso1EXIFragment_SessionID_BYTES_SIZE]; + uint16_t bytesLen; + } SessionID ; + struct { + uint8_t bytes[iso1EXIFragment_PGPKeyPacket_BYTES_SIZE]; + uint16_t bytesLen; + } PGPKeyPacket ; + struct iso1MessageHeaderType Header ; + struct { + uint8_t bytes[iso1EXIFragment_Seed_BYTES_SIZE]; + uint16_t bytesLen; + } Seed ; + struct iso1RSAKeyValueType RSAKeyValue ; + int FreeService ; + struct iso1PhysicalValueType EVSENominalVoltage ; + struct { + exi_string_character_t characters[iso1EXIFragment_XPath_CHARACTERS_SIZE]; + uint16_t charactersLen; + } XPath ; + struct iso1MeteringReceiptResType MeteringReceiptRes ; + struct iso1ServiceDiscoveryReqType ServiceDiscoveryReq ; + struct iso1MeteringReceiptReqType MeteringReceiptReq ; + struct iso1PreChargeResType PreChargeRes ; + struct { + uint8_t bytes[iso1EXIFragment_OEMProvisioningCert_BYTES_SIZE]; + uint16_t bytesLen; + } OEMProvisioningCert ; + struct iso1PhysicalValueType EVEnergyCapacity ; + struct iso1SignatureType Signature ; + struct iso1AC_EVSEChargeParameterType AC_EVSEChargeParameter ; + struct iso1ServiceDiscoveryResType ServiceDiscoveryRes ; + struct iso1PreChargeReqType PreChargeReq ; + uint16_t NotificationMaxDelay ; + struct iso1CableCheckReqType CableCheckReq ; + struct { + exi_string_character_t characters[iso1EXIFragment_SalesTariffDescription_CHARACTERS_SIZE]; + uint16_t charactersLen; + } SalesTariffDescription ; + int EVSEVoltageLimitAchieved ; + int boolValue ; + struct { + uint8_t bytes[iso1EXIFragment_EVCCID_BYTES_SIZE]; + uint16_t bytesLen; + } EVCCID ; + struct iso1DC_EVChargeParameterType DC_EVChargeParameter ; + struct iso1ChargingStatusReqType ChargingStatusReq ; + struct iso1CableCheckResType CableCheckRes ; + struct { + exi_string_character_t characters[iso1EXIFragment_MgmtData_CHARACTERS_SIZE]; + uint16_t charactersLen; + } MgmtData ; + struct iso1MeterInfoType MeterInfo ; + struct iso1PhysicalValueType EVSEEnergyToBeDelivered ; + struct iso1EVSEStatusType EVSEStatus ; + struct iso1ServiceType Service ; + struct iso1ManifestType Manifest ; + struct iso1PhysicalValueType EVMaximumVoltageLimit ; + struct { + uint8_t bytes[iso1EXIFragment_P_BYTES_SIZE]; + uint16_t bytesLen; + } P ; + struct { + uint8_t bytes[iso1EXIFragment_Q_BYTES_SIZE]; + uint16_t bytesLen; + } Q ; + struct { + exi_string_character_t characters[iso1EXIFragment_X509SubjectName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } X509SubjectName ; + int32_t intValue ; + struct iso1ChargingProfileType ChargingProfile ; + struct { + uint8_t bytes[iso1EXIFragment_G_BYTES_SIZE]; + uint16_t bytesLen; + } G ; + struct { + uint8_t bytes[iso1EXIFragment_J_BYTES_SIZE]; + uint16_t bytesLen; + } J ; + struct { + exi_string_character_t characters[iso1EXIFragment_ServiceScope_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ServiceScope ; + int ReceiptRequired ; + struct { + exi_string_character_t characters[iso1EXIFragment_ServiceName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ServiceName ; + int16_t MeterStatus ; + struct iso1DC_EVStatusType DC_EVStatus ; + struct iso1ChargingStatusResType ChargingStatusRes ; + iso1serviceCategoryType ServiceCategory ; + struct iso1NotificationType Notification ; + struct { + uint8_t bytes[iso1EXIFragment_X509CRL_BYTES_SIZE]; + uint16_t bytesLen; + } X509CRL ; + struct { + uint8_t bytes[iso1EXIFragment_Y_BYTES_SIZE]; + uint16_t bytesLen; + } Y ; + struct iso1PhysicalValueType EVSEPresentVoltage ; + struct { + uint8_t bytes[iso1EXIFragment_DigestValue_BYTES_SIZE]; + uint16_t bytesLen; + } DigestValue ; + struct iso1PhysicalValueType EVSEMaximumPowerLimit ; + int64_t EVSETimeStamp ; + struct iso1CostType Cost ; + struct iso1PhysicalValueType EVSEPeakCurrentRipple ; + struct iso1ConsumptionCostType ConsumptionCost ; + struct iso1DigestMethodType DigestMethod ; + struct { + uint8_t bytes[iso1EXIFragment_SPKISexp_BYTES_SIZE]; + uint16_t bytesLen; + } SPKISexp ; + struct iso1SessionSetupResType SessionSetupRes ; + int EVSECurrentLimitAchieved ; + struct iso1ServiceDetailReqType ServiceDetailReq ; + struct iso1PhysicalValueType EVSEMaximumVoltageLimit ; + struct iso1ServiceDetailResType ServiceDetailRes ; + struct iso1SignaturePropertiesType SignatureProperties ; + uint8_t EPriceLevel ; + struct iso1PhysicalValueType EVTargetCurrent ; + struct iso1PhysicalValueType RemainingTimeToBulkSoC ; + struct { + exi_string_character_t characters[iso1EXIFragment_stringValue_CHARACTERS_SIZE]; + uint16_t charactersLen; + } stringValue ; + struct iso1SessionSetupReqType SessionSetupReq ; + int8_t Multiplier ; + struct iso1CertificateUpdateResType CertificateUpdateRes ; + struct { + uint8_t bytes[iso1EXIFragment_PGPKeyID_BYTES_SIZE]; + uint16_t bytesLen; + } PGPKeyID ; + struct iso1PhysicalValueType EVTargetVoltage ; + struct iso1DSAKeyValueType DSAKeyValue ; + struct iso1CertificateUpdateReqType CertificateUpdateReq ; + struct iso1PhysicalValueType EVMaximumCurrentLimit ; + struct iso1CanonicalizationMethodType CanonicalizationMethod ; + struct { + uint8_t bytes[iso1EXIFragment_X509Certificate_BYTES_SIZE]; + uint16_t bytesLen; + } X509Certificate ; + struct iso1CertificateInstallationReqType CertificateInstallationReq ; + struct iso1CertificateInstallationResType CertificateInstallationRes ; + struct iso1EVStatusType EVStatus ; + struct iso1SupportedEnergyTransferModeType SupportedEnergyTransferMode ; + struct iso1SignedInfoType SignedInfo ; + /* Schema-informed Element Fragment Grammar for {urn:iso:15118:2:2013:MsgBody}eMAID */ + struct iso1EXISchemaInformedElementFragmentGrammar eMAID ; + uint16_t MaxEntriesSAScheduleTuple ; + iso1paymentOptionType PaymentOption ; + struct iso1SubCertificatesType SubCertificates ; + struct iso1PaymentDetailsReqType PaymentDetailsReq ; + struct iso1AuthorizationReqType AuthorizationReq ; + struct iso1PaymentDetailsResType PaymentDetailsRes ; + struct iso1AuthorizationResType AuthorizationRes ; + iso1DC_EVSEStatusCodeType EVSEStatusCode ; + struct iso1PaymentOptionListType PaymentOptionList ; + struct iso1SelectedServiceListType SelectedServiceList ; + struct iso1ContractSignatureEncryptedPrivateKeyType ContractSignatureEncryptedPrivateKey ; + struct iso1WeldingDetectionReqType WeldingDetectionReq ; + struct { + exi_string_character_t characters[iso1EXIFragment_FaultMsg_CHARACTERS_SIZE]; + uint16_t charactersLen; + } FaultMsg ; + struct iso1WeldingDetectionResType WeldingDetectionRes ; + iso1chargeProgressType ChargeProgress ; + iso1paymentOptionType SelectedPaymentOption ; + struct { + exi_string_character_t characters[iso1EXIFragment_EVSEID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } EVSEID ; + struct iso1ParameterSetType ParameterSet ; + struct iso1EVSEChargeParameterType EVSEChargeParameter ; + struct { + uint8_t bytes[iso1EXIFragment_SigMeterReading_BYTES_SIZE]; + uint16_t bytesLen; + } SigMeterReading ; + struct iso1SignatureValueType SignatureValue ; + struct iso1SASchedulesType SASchedules ; + uint8_t SalesTariffID ; + struct iso1DiffieHellmanPublickeyType DHpublickey ; + struct iso1ServiceParameterListType ServiceParameterList ; + struct iso1ListOfRootCertificateIDsType ListOfRootCertificateIDs ; + struct { + exi_string_character_t characters[iso1EXIFragment_MeterID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } MeterID ; + struct iso1ChargeServiceType ChargeService ; + int8_t amountMultiplier ; + int RCD ; + struct iso1PhysicalValueType startValue ; + struct iso1CurrentDemandReqType CurrentDemandReq ; + struct { + exi_string_character_t characters[iso1EXIFragment_KeyName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } KeyName ; + struct iso1DC_EVPowerDeliveryParameterType DC_EVPowerDeliveryParameter ; + struct iso1BodyType Body ; + iso1EVSENotificationType EVSENotification ; + int16_t Value ; + struct iso1KeyInfoType KeyInfo ; + struct { + uint8_t bytes[iso1EXIFragment_GenChallenge_BYTES_SIZE]; + uint16_t bytesLen; + } GenChallenge ; + struct iso1AC_EVChargeParameterType AC_EVChargeParameter ; + struct iso1PMaxScheduleEntryType PMaxScheduleEntry ; + struct iso1ParameterType Parameter ; + struct { + uint8_t bytes[iso1EXIFragment_X509SKI_BYTES_SIZE]; + uint16_t bytesLen; + } X509SKI ; + struct iso1SelectedServiceType SelectedService ; + struct iso1PaymentServiceSelectionReqType PaymentServiceSelectionReq ; + struct iso1PaymentServiceSelectionResType PaymentServiceSelectionRes ; + struct { + uint8_t bytes[iso1EXIFragment_Certificate_BYTES_SIZE]; + uint16_t bytesLen; + } Certificate ; + struct iso1CurrentDemandResType CurrentDemandRes ; + int EVReady ; + struct iso1SignatureMethodType SignatureMethod ; + struct iso1PMaxScheduleType PMaxSchedule ; + iso1unitSymbolType Unit ; + struct { + exi_string_character_t characters[iso1EXIFragment_X509IssuerName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } X509IssuerName ; + struct iso1ReferenceType Reference ; + int8_t ChargingProfileEntryMaxNumberOfPhasesInUse ; + struct iso1EVPowerDeliveryParameterType EVPowerDeliveryParameter ; + struct iso1PhysicalValueType ChargingProfileEntryMaxPower ; + struct iso1ChargeParameterDiscoveryReqType ChargeParameterDiscoveryReq ; + uint32_t duration ; + int64_t TMeter ; + struct iso1ChargeParameterDiscoveryResType ChargeParameterDiscoveryRes ; + struct iso1ServiceListType ServiceList ; + struct iso1SAScheduleTupleType SAScheduleTuple ; + struct iso1BodyBaseType BodyElement ; + struct iso1PhysicalValueType RemainingTimeToFullSoC ; + struct iso1RelativeTimeIntervalType RelativeTimeInterval ; + struct iso1TransformType Transform ; + uint32_t DepartureTime ; + struct iso1ObjectType Object ; + struct iso1PhysicalValueType EVEnergyRequest ; + struct { + uint8_t bytes[iso1EXIFragment_Modulus_BYTES_SIZE]; + uint16_t bytesLen; + } Modulus ; + iso1chargingSessionType ChargingSession ; + iso1EnergyTransferModeType RequestedEnergyTransferMode ; +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + }; +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + unsigned int ChargingComplete_isUsed:1; + unsigned int EVMaxVoltage_isUsed:1; + unsigned int ServiceID_isUsed:1; + unsigned int EVRESSSOC_isUsed:1; + unsigned int MeterReading_isUsed:1; + unsigned int physicalValue_isUsed:1; + unsigned int TimeInterval_isUsed:1; + unsigned int AC_EVSEStatus_isUsed:1; + unsigned int EVMaxCurrent_isUsed:1; + unsigned int ChargingProfileEntryStart_isUsed:1; + unsigned int EVSEMaxCurrent_isUsed:1; + unsigned int costKind_isUsed:1; + unsigned int EAmount_isUsed:1; + unsigned int EnergyTransferMode_isUsed:1; + unsigned int X509SerialNumber_isUsed:1; + unsigned int NumEPriceLevels_isUsed:1; + unsigned int RetrievalMethod_isUsed:1; + unsigned int PMax_isUsed:1; + unsigned int ParameterSetID_isUsed:1; + unsigned int BulkSOC_isUsed:1; + unsigned int EVSEMinimumCurrentLimit_isUsed:1; + unsigned int EVSEPowerLimitAchieved_isUsed:1; + unsigned int SalesTariffEntry_isUsed:1; + unsigned int Transforms_isUsed:1; + unsigned int EVSEProcessing_isUsed:1; + unsigned int EVSEIsolationStatus_isUsed:1; + unsigned int BulkChargingComplete_isUsed:1; + unsigned int SAScheduleTupleID_isUsed:1; + unsigned int FaultCode_isUsed:1; + unsigned int RootCertificateID_isUsed:1; + unsigned int HMACOutputLength_isUsed:1; + unsigned int Exponent_isUsed:1; + unsigned int X509IssuerSerial_isUsed:1; + unsigned int byteValue_isUsed:1; + unsigned int SPKIData_isUsed:1; + unsigned int SAScheduleList_isUsed:1; + unsigned int EVMaximumPowerLimit_isUsed:1; + unsigned int DC_EVSEStatus_isUsed:1; + unsigned int RetryCounter_isUsed:1; + unsigned int EVSEMaximumCurrentLimit_isUsed:1; + unsigned int SalesTariff_isUsed:1; + unsigned int PgenCounter_isUsed:1; + unsigned int X509Data_isUsed:1; + unsigned int EVSECurrentRegulationTolerance_isUsed:1; + unsigned int KeyValue_isUsed:1; + unsigned int V2G_Message_isUsed:1; + unsigned int EVSEMinimumVoltageLimit_isUsed:1; + unsigned int ResponseCode_isUsed:1; + unsigned int ProfileEntry_isUsed:1; + unsigned int start_isUsed:1; + unsigned int EVErrorCode_isUsed:1; + unsigned int EVChargeParameter_isUsed:1; + unsigned int ContractSignatureCertChain_isUsed:1; + unsigned int EVSEPresentCurrent_isUsed:1; + unsigned int PGPData_isUsed:1; + unsigned int EVMinCurrent_isUsed:1; + unsigned int FullSOC_isUsed:1; + unsigned int amount_isUsed:1; + unsigned int DC_EVSEChargeParameter_isUsed:1; + unsigned int Entry_isUsed:1; + unsigned int SessionStopRes_isUsed:1; + unsigned int shortValue_isUsed:1; + unsigned int SAProvisioningCertificateChain_isUsed:1; + unsigned int PowerDeliveryReq_isUsed:1; + unsigned int PowerDeliveryRes_isUsed:1; + unsigned int SessionStopReq_isUsed:1; + unsigned int SignatureProperty_isUsed:1; + unsigned int SessionID_isUsed:1; + unsigned int PGPKeyPacket_isUsed:1; + unsigned int Header_isUsed:1; + unsigned int Seed_isUsed:1; + unsigned int RSAKeyValue_isUsed:1; + unsigned int FreeService_isUsed:1; + unsigned int EVSENominalVoltage_isUsed:1; + unsigned int XPath_isUsed:1; + unsigned int MeteringReceiptRes_isUsed:1; + unsigned int ServiceDiscoveryReq_isUsed:1; + unsigned int MeteringReceiptReq_isUsed:1; + unsigned int PreChargeRes_isUsed:1; + unsigned int OEMProvisioningCert_isUsed:1; + unsigned int EVEnergyCapacity_isUsed:1; + unsigned int Signature_isUsed:1; + unsigned int AC_EVSEChargeParameter_isUsed:1; + unsigned int ServiceDiscoveryRes_isUsed:1; + unsigned int PreChargeReq_isUsed:1; + unsigned int NotificationMaxDelay_isUsed:1; + unsigned int CableCheckReq_isUsed:1; + unsigned int SalesTariffDescription_isUsed:1; + unsigned int EVSEVoltageLimitAchieved_isUsed:1; + unsigned int boolValue_isUsed:1; + unsigned int EVCCID_isUsed:1; + unsigned int DC_EVChargeParameter_isUsed:1; + unsigned int ChargingStatusReq_isUsed:1; + unsigned int CableCheckRes_isUsed:1; + unsigned int MgmtData_isUsed:1; + unsigned int MeterInfo_isUsed:1; + unsigned int EVSEEnergyToBeDelivered_isUsed:1; + unsigned int EVSEStatus_isUsed:1; + unsigned int Service_isUsed:1; + unsigned int Manifest_isUsed:1; + unsigned int EVMaximumVoltageLimit_isUsed:1; + unsigned int P_isUsed:1; + unsigned int Q_isUsed:1; + unsigned int X509SubjectName_isUsed:1; + unsigned int intValue_isUsed:1; + unsigned int ChargingProfile_isUsed:1; + unsigned int G_isUsed:1; + unsigned int J_isUsed:1; + unsigned int ServiceScope_isUsed:1; + unsigned int ReceiptRequired_isUsed:1; + unsigned int ServiceName_isUsed:1; + unsigned int MeterStatus_isUsed:1; + unsigned int DC_EVStatus_isUsed:1; + unsigned int ChargingStatusRes_isUsed:1; + unsigned int ServiceCategory_isUsed:1; + unsigned int Notification_isUsed:1; + unsigned int X509CRL_isUsed:1; + unsigned int Y_isUsed:1; + unsigned int EVSEPresentVoltage_isUsed:1; + unsigned int DigestValue_isUsed:1; + unsigned int EVSEMaximumPowerLimit_isUsed:1; + unsigned int EVSETimeStamp_isUsed:1; + unsigned int Cost_isUsed:1; + unsigned int EVSEPeakCurrentRipple_isUsed:1; + unsigned int ConsumptionCost_isUsed:1; + unsigned int DigestMethod_isUsed:1; + unsigned int SPKISexp_isUsed:1; + unsigned int SessionSetupRes_isUsed:1; + unsigned int EVSECurrentLimitAchieved_isUsed:1; + unsigned int ServiceDetailReq_isUsed:1; + unsigned int EVSEMaximumVoltageLimit_isUsed:1; + unsigned int ServiceDetailRes_isUsed:1; + unsigned int SignatureProperties_isUsed:1; + unsigned int EPriceLevel_isUsed:1; + unsigned int EVTargetCurrent_isUsed:1; + unsigned int RemainingTimeToBulkSoC_isUsed:1; + unsigned int stringValue_isUsed:1; + unsigned int SessionSetupReq_isUsed:1; + unsigned int Multiplier_isUsed:1; + unsigned int CertificateUpdateRes_isUsed:1; + unsigned int PGPKeyID_isUsed:1; + unsigned int EVTargetVoltage_isUsed:1; + unsigned int DSAKeyValue_isUsed:1; + unsigned int CertificateUpdateReq_isUsed:1; + unsigned int EVMaximumCurrentLimit_isUsed:1; + unsigned int CanonicalizationMethod_isUsed:1; + unsigned int X509Certificate_isUsed:1; + unsigned int CertificateInstallationReq_isUsed:1; + unsigned int CertificateInstallationRes_isUsed:1; + unsigned int EVStatus_isUsed:1; + unsigned int SupportedEnergyTransferMode_isUsed:1; + unsigned int SignedInfo_isUsed:1; + unsigned int eMAID_isUsed:1; + unsigned int MaxEntriesSAScheduleTuple_isUsed:1; + unsigned int PaymentOption_isUsed:1; + unsigned int SubCertificates_isUsed:1; + unsigned int PaymentDetailsReq_isUsed:1; + unsigned int AuthorizationReq_isUsed:1; + unsigned int PaymentDetailsRes_isUsed:1; + unsigned int AuthorizationRes_isUsed:1; + unsigned int EVSEStatusCode_isUsed:1; + unsigned int PaymentOptionList_isUsed:1; + unsigned int SelectedServiceList_isUsed:1; + unsigned int ContractSignatureEncryptedPrivateKey_isUsed:1; + unsigned int WeldingDetectionReq_isUsed:1; + unsigned int FaultMsg_isUsed:1; + unsigned int WeldingDetectionRes_isUsed:1; + unsigned int ChargeProgress_isUsed:1; + unsigned int SelectedPaymentOption_isUsed:1; + unsigned int EVSEID_isUsed:1; + unsigned int ParameterSet_isUsed:1; + unsigned int EVSEChargeParameter_isUsed:1; + unsigned int SigMeterReading_isUsed:1; + unsigned int SignatureValue_isUsed:1; + unsigned int SASchedules_isUsed:1; + unsigned int SalesTariffID_isUsed:1; + unsigned int DHpublickey_isUsed:1; + unsigned int ServiceParameterList_isUsed:1; + unsigned int ListOfRootCertificateIDs_isUsed:1; + unsigned int MeterID_isUsed:1; + unsigned int ChargeService_isUsed:1; + unsigned int amountMultiplier_isUsed:1; + unsigned int RCD_isUsed:1; + unsigned int startValue_isUsed:1; + unsigned int CurrentDemandReq_isUsed:1; + unsigned int KeyName_isUsed:1; + unsigned int DC_EVPowerDeliveryParameter_isUsed:1; + unsigned int Body_isUsed:1; + unsigned int EVSENotification_isUsed:1; + unsigned int Value_isUsed:1; + unsigned int KeyInfo_isUsed:1; + unsigned int GenChallenge_isUsed:1; + unsigned int AC_EVChargeParameter_isUsed:1; + unsigned int PMaxScheduleEntry_isUsed:1; + unsigned int Parameter_isUsed:1; + unsigned int X509SKI_isUsed:1; + unsigned int SelectedService_isUsed:1; + unsigned int PaymentServiceSelectionReq_isUsed:1; + unsigned int PaymentServiceSelectionRes_isUsed:1; + unsigned int Certificate_isUsed:1; + unsigned int CurrentDemandRes_isUsed:1; + unsigned int EVReady_isUsed:1; + unsigned int SignatureMethod_isUsed:1; + unsigned int PMaxSchedule_isUsed:1; + unsigned int Unit_isUsed:1; + unsigned int X509IssuerName_isUsed:1; + unsigned int Reference_isUsed:1; + unsigned int ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed:1; + unsigned int EVPowerDeliveryParameter_isUsed:1; + unsigned int ChargingProfileEntryMaxPower_isUsed:1; + unsigned int ChargeParameterDiscoveryReq_isUsed:1; + unsigned int duration_isUsed:1; + unsigned int TMeter_isUsed:1; + unsigned int ChargeParameterDiscoveryRes_isUsed:1; + unsigned int ServiceList_isUsed:1; + unsigned int SAScheduleTuple_isUsed:1; + unsigned int BodyElement_isUsed:1; + unsigned int RemainingTimeToFullSoC_isUsed:1; + unsigned int RelativeTimeInterval_isUsed:1; + unsigned int Transform_isUsed:1; + unsigned int DepartureTime_isUsed:1; + unsigned int Object_isUsed:1; + unsigned int EVEnergyRequest_isUsed:1; + unsigned int Modulus_isUsed:1; + unsigned int ChargingSession_isUsed:1; + unsigned int RequestedEnergyTransferMode_isUsed:1; + + + int _warning_; +}; +#endif /* DEPLOY_ISO1_CODEC_FRAGMENT */ + + +/* Initialization methods for structs */ + +void init_iso1EXIDocument(struct iso1EXIDocument* exiDoc); +#if DEPLOY_ISO1_CODEC_FRAGMENT == SUPPORT_YES +void init_iso1EXIFragment(struct iso1EXIFragment* exiFrag); +void init_iso1EXISchemaInformedElementFragmentGrammar(struct iso1EXISchemaInformedElementFragmentGrammar* exiFrag); +#endif /* DEPLOY_ISO1_CODEC_FRAGMENT */ +void init_iso1MessageHeaderType(struct iso1MessageHeaderType* iso1MessageHeaderType); +void init_iso1SignatureType(struct iso1SignatureType* iso1SignatureType); +void init_iso1PowerDeliveryReqType(struct iso1PowerDeliveryReqType* iso1PowerDeliveryReqType); +void init_iso1ParameterType(struct iso1ParameterType* iso1ParameterType); +void init_iso1CertificateInstallationReqType(struct iso1CertificateInstallationReqType* iso1CertificateInstallationReqType); +void init_iso1SessionSetupResType(struct iso1SessionSetupResType* iso1SessionSetupResType); +void init_iso1EVChargeParameterType(struct iso1EVChargeParameterType* iso1EVChargeParameterType); +void init_iso1DiffieHellmanPublickeyType(struct iso1DiffieHellmanPublickeyType* iso1DiffieHellmanPublickeyType); +void init_iso1ServiceDiscoveryResType(struct iso1ServiceDiscoveryResType* iso1ServiceDiscoveryResType); +void init_iso1ServiceParameterListType(struct iso1ServiceParameterListType* iso1ServiceParameterListType); +void init_iso1CertificateChainType(struct iso1CertificateChainType* iso1CertificateChainType); +void init_iso1SASchedulesType(struct iso1SASchedulesType* iso1SASchedulesType); +void init_iso1DC_EVSEStatusType(struct iso1DC_EVSEStatusType* iso1DC_EVSEStatusType); +void init_iso1PreChargeResType(struct iso1PreChargeResType* iso1PreChargeResType); +void init_iso1ParameterSetType(struct iso1ParameterSetType* iso1ParameterSetType); +void init_iso1ServiceDetailReqType(struct iso1ServiceDetailReqType* iso1ServiceDetailReqType); +void init_iso1RelativeTimeIntervalType(struct iso1RelativeTimeIntervalType* iso1RelativeTimeIntervalType); +void init_iso1SignedInfoType(struct iso1SignedInfoType* iso1SignedInfoType); +void init_iso1EMAIDType(struct iso1EMAIDType* iso1EMAIDType); +void init_iso1EVStatusType(struct iso1EVStatusType* iso1EVStatusType); +void init_iso1ServiceListType(struct iso1ServiceListType* iso1ServiceListType); +void init_iso1EVSEChargeParameterType(struct iso1EVSEChargeParameterType* iso1EVSEChargeParameterType); +void init_iso1EVPowerDeliveryParameterType(struct iso1EVPowerDeliveryParameterType* iso1EVPowerDeliveryParameterType); +void init_iso1ProfileEntryType(struct iso1ProfileEntryType* iso1ProfileEntryType); +void init_iso1AuthorizationReqType(struct iso1AuthorizationReqType* iso1AuthorizationReqType); +void init_iso1MeterInfoType(struct iso1MeterInfoType* iso1MeterInfoType); +void init_iso1ManifestType(struct iso1ManifestType* iso1ManifestType); +void init_iso1ChargeParameterDiscoveryResType(struct iso1ChargeParameterDiscoveryResType* iso1ChargeParameterDiscoveryResType); +void init_iso1PowerDeliveryResType(struct iso1PowerDeliveryResType* iso1PowerDeliveryResType); +void init_iso1DC_EVChargeParameterType(struct iso1DC_EVChargeParameterType* iso1DC_EVChargeParameterType); +void init_iso1ConsumptionCostType(struct iso1ConsumptionCostType* iso1ConsumptionCostType); +void init_iso1PMaxScheduleType(struct iso1PMaxScheduleType* iso1PMaxScheduleType); +void init_iso1PaymentOptionListType(struct iso1PaymentOptionListType* iso1PaymentOptionListType); +void init_iso1ObjectType(struct iso1ObjectType* iso1ObjectType); +void init_iso1PhysicalValueType(struct iso1PhysicalValueType* iso1PhysicalValueType); +void init_iso1RSAKeyValueType(struct iso1RSAKeyValueType* iso1RSAKeyValueType); +void init_iso1SessionStopResType(struct iso1SessionStopResType* iso1SessionStopResType); +void init_iso1CertificateUpdateReqType(struct iso1CertificateUpdateReqType* iso1CertificateUpdateReqType); +void init_iso1SignatureValueType(struct iso1SignatureValueType* iso1SignatureValueType); +void init_iso1PaymentDetailsReqType(struct iso1PaymentDetailsReqType* iso1PaymentDetailsReqType); +void init_iso1AuthorizationResType(struct iso1AuthorizationResType* iso1AuthorizationResType); +void init_iso1DC_EVSEChargeParameterType(struct iso1DC_EVSEChargeParameterType* iso1DC_EVSEChargeParameterType); +void init_iso1SubCertificatesType(struct iso1SubCertificatesType* iso1SubCertificatesType); +void init_iso1ChargingStatusResType(struct iso1ChargingStatusResType* iso1ChargingStatusResType); +void init_iso1DSAKeyValueType(struct iso1DSAKeyValueType* iso1DSAKeyValueType); +void init_iso1ListOfRootCertificateIDsType(struct iso1ListOfRootCertificateIDsType* iso1ListOfRootCertificateIDsType); +void init_iso1ChargeServiceType(struct iso1ChargeServiceType* iso1ChargeServiceType); +void init_iso1IntervalType(struct iso1IntervalType* iso1IntervalType); +void init_iso1MeteringReceiptReqType(struct iso1MeteringReceiptReqType* iso1MeteringReceiptReqType); +void init_iso1ServiceDetailResType(struct iso1ServiceDetailResType* iso1ServiceDetailResType); +void init_iso1KeyValueType(struct iso1KeyValueType* iso1KeyValueType); +void init_iso1SelectedServiceListType(struct iso1SelectedServiceListType* iso1SelectedServiceListType); +void init_iso1CableCheckResType(struct iso1CableCheckResType* iso1CableCheckResType); +void init_iso1X509IssuerSerialType(struct iso1X509IssuerSerialType* iso1X509IssuerSerialType); +void init_iso1KeyInfoType(struct iso1KeyInfoType* iso1KeyInfoType); +void init_iso1TransformsType(struct iso1TransformsType* iso1TransformsType); +void init_iso1ChargeParameterDiscoveryReqType(struct iso1ChargeParameterDiscoveryReqType* iso1ChargeParameterDiscoveryReqType); +void init_iso1PreChargeReqType(struct iso1PreChargeReqType* iso1PreChargeReqType); +void init_iso1EVSEStatusType(struct iso1EVSEStatusType* iso1EVSEStatusType); +void init_iso1SignatureMethodType(struct iso1SignatureMethodType* iso1SignatureMethodType); +void init_iso1X509DataType(struct iso1X509DataType* iso1X509DataType); +void init_iso1NotificationType(struct iso1NotificationType* iso1NotificationType); +void init_iso1SAScheduleListType(struct iso1SAScheduleListType* iso1SAScheduleListType); +void init_iso1BodyType(struct iso1BodyType* iso1BodyType); +void init_iso1ChargingProfileType(struct iso1ChargingProfileType* iso1ChargingProfileType); +void init_iso1TransformType(struct iso1TransformType* iso1TransformType); +void init_iso1SAScheduleTupleType(struct iso1SAScheduleTupleType* iso1SAScheduleTupleType); +void init_iso1AC_EVChargeParameterType(struct iso1AC_EVChargeParameterType* iso1AC_EVChargeParameterType); +void init_iso1AnonType_V2G_Message(struct iso1AnonType_V2G_Message* iso1AnonType_V2G_Message); +void init_iso1PaymentDetailsResType(struct iso1PaymentDetailsResType* iso1PaymentDetailsResType); +void init_iso1ContractSignatureEncryptedPrivateKeyType(struct iso1ContractSignatureEncryptedPrivateKeyType* iso1ContractSignatureEncryptedPrivateKeyType); +void init_iso1PMaxScheduleEntryType(struct iso1PMaxScheduleEntryType* iso1PMaxScheduleEntryType); +void init_iso1SPKIDataType(struct iso1SPKIDataType* iso1SPKIDataType); +void init_iso1MeteringReceiptResType(struct iso1MeteringReceiptResType* iso1MeteringReceiptResType); +void init_iso1SessionStopReqType(struct iso1SessionStopReqType* iso1SessionStopReqType); +void init_iso1WeldingDetectionResType(struct iso1WeldingDetectionResType* iso1WeldingDetectionResType); +void init_iso1ReferenceType(struct iso1ReferenceType* iso1ReferenceType); +void init_iso1CurrentDemandReqType(struct iso1CurrentDemandReqType* iso1CurrentDemandReqType); +void init_iso1SalesTariffEntryType(struct iso1SalesTariffEntryType* iso1SalesTariffEntryType); +void init_iso1EntryType(struct iso1EntryType* iso1EntryType); +void init_iso1SessionSetupReqType(struct iso1SessionSetupReqType* iso1SessionSetupReqType); +void init_iso1CostType(struct iso1CostType* iso1CostType); +void init_iso1DC_EVPowerDeliveryParameterType(struct iso1DC_EVPowerDeliveryParameterType* iso1DC_EVPowerDeliveryParameterType); +void init_iso1RetrievalMethodType(struct iso1RetrievalMethodType* iso1RetrievalMethodType); +void init_iso1CertificateUpdateResType(struct iso1CertificateUpdateResType* iso1CertificateUpdateResType); +void init_iso1CertificateInstallationResType(struct iso1CertificateInstallationResType* iso1CertificateInstallationResType); +void init_iso1CanonicalizationMethodType(struct iso1CanonicalizationMethodType* iso1CanonicalizationMethodType); +void init_iso1WeldingDetectionReqType(struct iso1WeldingDetectionReqType* iso1WeldingDetectionReqType); +void init_iso1DC_EVStatusType(struct iso1DC_EVStatusType* iso1DC_EVStatusType); +void init_iso1CurrentDemandResType(struct iso1CurrentDemandResType* iso1CurrentDemandResType); +void init_iso1ServiceType(struct iso1ServiceType* iso1ServiceType); +void init_iso1ServiceDiscoveryReqType(struct iso1ServiceDiscoveryReqType* iso1ServiceDiscoveryReqType); +void init_iso1AC_EVSEChargeParameterType(struct iso1AC_EVSEChargeParameterType* iso1AC_EVSEChargeParameterType); +void init_iso1CableCheckReqType(struct iso1CableCheckReqType* iso1CableCheckReqType); +void init_iso1SelectedServiceType(struct iso1SelectedServiceType* iso1SelectedServiceType); +void init_iso1AC_EVSEStatusType(struct iso1AC_EVSEStatusType* iso1AC_EVSEStatusType); +void init_iso1SalesTariffType(struct iso1SalesTariffType* iso1SalesTariffType); +void init_iso1PaymentServiceSelectionReqType(struct iso1PaymentServiceSelectionReqType* iso1PaymentServiceSelectionReqType); +void init_iso1SignaturePropertiesType(struct iso1SignaturePropertiesType* iso1SignaturePropertiesType); +void init_iso1BodyBaseType(struct iso1BodyBaseType* iso1BodyBaseType); +void init_iso1SupportedEnergyTransferModeType(struct iso1SupportedEnergyTransferModeType* iso1SupportedEnergyTransferModeType); +void init_iso1ChargingStatusReqType(struct iso1ChargingStatusReqType* iso1ChargingStatusReqType); +void init_iso1PaymentServiceSelectionResType(struct iso1PaymentServiceSelectionResType* iso1PaymentServiceSelectionResType); +void init_iso1DigestMethodType(struct iso1DigestMethodType* iso1DigestMethodType); +void init_iso1SignaturePropertyType(struct iso1SignaturePropertyType* iso1SignaturePropertyType); +void init_iso1PGPDataType(struct iso1PGPDataType* iso1PGPDataType); + + +#endif /* DEPLOY_ISO1_CODEC */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/iso1/iso1EXIDatatypesDecoder.c b/csharp/vc2022/src/iso1/iso1EXIDatatypesDecoder.c new file mode 100644 index 0000000..49c5685 --- /dev/null +++ b/csharp/vc2022/src/iso1/iso1EXIDatatypesDecoder.c @@ -0,0 +1,19379 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + + +#include "iso1EXIDatatypesDecoder.h" + +#include "DecoderChannel.h" +#include "EXIHeaderDecoder.h" + +#include "iso1EXIDatatypes.h" +#include "ErrorCodes.h" + +#ifndef EXI_iso1_DATATYPES_DECODER_C +#define EXI_iso1_DATATYPES_DECODER_C + +#if DEPLOY_ISO1_CODEC == SUPPORT_YES + +/** event-code */ +static uint32_t eventCode; +static int errn; +static uint32_t uint32; + +/* Forward Declarations */ +static int decode_iso1MessageHeaderType(bitstream_t* stream, struct iso1MessageHeaderType* iso1MessageHeaderType); +static int decode_iso1SignatureType(bitstream_t* stream, struct iso1SignatureType* iso1SignatureType); +static int decode_iso1PowerDeliveryReqType(bitstream_t* stream, struct iso1PowerDeliveryReqType* iso1PowerDeliveryReqType); +static int decode_iso1ParameterType(bitstream_t* stream, struct iso1ParameterType* iso1ParameterType); +static int decode_iso1CertificateInstallationReqType(bitstream_t* stream, struct iso1CertificateInstallationReqType* iso1CertificateInstallationReqType); +static int decode_iso1SessionSetupResType(bitstream_t* stream, struct iso1SessionSetupResType* iso1SessionSetupResType); +static int decode_iso1EVChargeParameterType(bitstream_t* stream, struct iso1EVChargeParameterType* iso1EVChargeParameterType); +static int decode_iso1DiffieHellmanPublickeyType(bitstream_t* stream, struct iso1DiffieHellmanPublickeyType* iso1DiffieHellmanPublickeyType); +static int decode_iso1ServiceDiscoveryResType(bitstream_t* stream, struct iso1ServiceDiscoveryResType* iso1ServiceDiscoveryResType); +static int decode_iso1ServiceParameterListType(bitstream_t* stream, struct iso1ServiceParameterListType* iso1ServiceParameterListType); +static int decode_iso1CertificateChainType(bitstream_t* stream, struct iso1CertificateChainType* iso1CertificateChainType); +static int decode_iso1SASchedulesType(bitstream_t* stream, struct iso1SASchedulesType* iso1SASchedulesType); +static int decode_iso1DC_EVSEStatusType(bitstream_t* stream, struct iso1DC_EVSEStatusType* iso1DC_EVSEStatusType); +static int decode_iso1PreChargeResType(bitstream_t* stream, struct iso1PreChargeResType* iso1PreChargeResType); +static int decode_iso1ParameterSetType(bitstream_t* stream, struct iso1ParameterSetType* iso1ParameterSetType); +static int decode_iso1ServiceDetailReqType(bitstream_t* stream, struct iso1ServiceDetailReqType* iso1ServiceDetailReqType); +static int decode_iso1RelativeTimeIntervalType(bitstream_t* stream, struct iso1RelativeTimeIntervalType* iso1RelativeTimeIntervalType); +static int decode_iso1SignedInfoType(bitstream_t* stream, struct iso1SignedInfoType* iso1SignedInfoType); +static int decode_iso1EMAIDType(bitstream_t* stream, struct iso1EMAIDType* iso1EMAIDType); +static int decode_iso1EVStatusType(bitstream_t* stream, struct iso1EVStatusType* iso1EVStatusType); +static int decode_iso1ServiceListType(bitstream_t* stream, struct iso1ServiceListType* iso1ServiceListType); +static int decode_iso1EVSEChargeParameterType(bitstream_t* stream, struct iso1EVSEChargeParameterType* iso1EVSEChargeParameterType); +static int decode_iso1EVPowerDeliveryParameterType(bitstream_t* stream, struct iso1EVPowerDeliveryParameterType* iso1EVPowerDeliveryParameterType); +static int decode_iso1ProfileEntryType(bitstream_t* stream, struct iso1ProfileEntryType* iso1ProfileEntryType); +static int decode_iso1AuthorizationReqType(bitstream_t* stream, struct iso1AuthorizationReqType* iso1AuthorizationReqType); +static int decode_iso1MeterInfoType(bitstream_t* stream, struct iso1MeterInfoType* iso1MeterInfoType); +static int decode_iso1ManifestType(bitstream_t* stream, struct iso1ManifestType* iso1ManifestType); +static int decode_iso1ChargeParameterDiscoveryResType(bitstream_t* stream, struct iso1ChargeParameterDiscoveryResType* iso1ChargeParameterDiscoveryResType); +static int decode_iso1PowerDeliveryResType(bitstream_t* stream, struct iso1PowerDeliveryResType* iso1PowerDeliveryResType); +static int decode_iso1DC_EVChargeParameterType(bitstream_t* stream, struct iso1DC_EVChargeParameterType* iso1DC_EVChargeParameterType); +static int decode_iso1ConsumptionCostType(bitstream_t* stream, struct iso1ConsumptionCostType* iso1ConsumptionCostType); +static int decode_iso1PMaxScheduleType(bitstream_t* stream, struct iso1PMaxScheduleType* iso1PMaxScheduleType); +static int decode_iso1PaymentOptionListType(bitstream_t* stream, struct iso1PaymentOptionListType* iso1PaymentOptionListType); +static int decode_iso1ObjectType(bitstream_t* stream, struct iso1ObjectType* iso1ObjectType); +static int decode_iso1PhysicalValueType(bitstream_t* stream, struct iso1PhysicalValueType* iso1PhysicalValueType); +static int decode_iso1RSAKeyValueType(bitstream_t* stream, struct iso1RSAKeyValueType* iso1RSAKeyValueType); +static int decode_iso1SessionStopResType(bitstream_t* stream, struct iso1SessionStopResType* iso1SessionStopResType); +static int decode_iso1CertificateUpdateReqType(bitstream_t* stream, struct iso1CertificateUpdateReqType* iso1CertificateUpdateReqType); +static int decode_iso1SignatureValueType(bitstream_t* stream, struct iso1SignatureValueType* iso1SignatureValueType); +static int decode_iso1PaymentDetailsReqType(bitstream_t* stream, struct iso1PaymentDetailsReqType* iso1PaymentDetailsReqType); +static int decode_iso1AuthorizationResType(bitstream_t* stream, struct iso1AuthorizationResType* iso1AuthorizationResType); +static int decode_iso1DC_EVSEChargeParameterType(bitstream_t* stream, struct iso1DC_EVSEChargeParameterType* iso1DC_EVSEChargeParameterType); +static int decode_iso1SubCertificatesType(bitstream_t* stream, struct iso1SubCertificatesType* iso1SubCertificatesType); +static int decode_iso1ChargingStatusResType(bitstream_t* stream, struct iso1ChargingStatusResType* iso1ChargingStatusResType); +static int decode_iso1DSAKeyValueType(bitstream_t* stream, struct iso1DSAKeyValueType* iso1DSAKeyValueType); +static int decode_iso1ListOfRootCertificateIDsType(bitstream_t* stream, struct iso1ListOfRootCertificateIDsType* iso1ListOfRootCertificateIDsType); +static int decode_iso1ChargeServiceType(bitstream_t* stream, struct iso1ChargeServiceType* iso1ChargeServiceType); +static int decode_iso1IntervalType(bitstream_t* stream, struct iso1IntervalType* iso1IntervalType); +static int decode_iso1MeteringReceiptReqType(bitstream_t* stream, struct iso1MeteringReceiptReqType* iso1MeteringReceiptReqType); +static int decode_iso1ServiceDetailResType(bitstream_t* stream, struct iso1ServiceDetailResType* iso1ServiceDetailResType); +static int decode_iso1KeyValueType(bitstream_t* stream, struct iso1KeyValueType* iso1KeyValueType); +static int decode_iso1SelectedServiceListType(bitstream_t* stream, struct iso1SelectedServiceListType* iso1SelectedServiceListType); +static int decode_iso1CableCheckResType(bitstream_t* stream, struct iso1CableCheckResType* iso1CableCheckResType); +static int decode_iso1X509IssuerSerialType(bitstream_t* stream, struct iso1X509IssuerSerialType* iso1X509IssuerSerialType); +static int decode_iso1KeyInfoType(bitstream_t* stream, struct iso1KeyInfoType* iso1KeyInfoType); +static int decode_iso1TransformsType(bitstream_t* stream, struct iso1TransformsType* iso1TransformsType); +static int decode_iso1ChargeParameterDiscoveryReqType(bitstream_t* stream, struct iso1ChargeParameterDiscoveryReqType* iso1ChargeParameterDiscoveryReqType); +static int decode_iso1PreChargeReqType(bitstream_t* stream, struct iso1PreChargeReqType* iso1PreChargeReqType); +static int decode_iso1EVSEStatusType(bitstream_t* stream, struct iso1EVSEStatusType* iso1EVSEStatusType); +static int decode_iso1SignatureMethodType(bitstream_t* stream, struct iso1SignatureMethodType* iso1SignatureMethodType); +static int decode_iso1X509DataType(bitstream_t* stream, struct iso1X509DataType* iso1X509DataType); +static int decode_iso1NotificationType(bitstream_t* stream, struct iso1NotificationType* iso1NotificationType); +static int decode_iso1SAScheduleListType(bitstream_t* stream, struct iso1SAScheduleListType* iso1SAScheduleListType); +static int decode_iso1BodyType(bitstream_t* stream, struct iso1BodyType* iso1BodyType); +static int decode_iso1ChargingProfileType(bitstream_t* stream, struct iso1ChargingProfileType* iso1ChargingProfileType); +static int decode_iso1TransformType(bitstream_t* stream, struct iso1TransformType* iso1TransformType); +static int decode_iso1SAScheduleTupleType(bitstream_t* stream, struct iso1SAScheduleTupleType* iso1SAScheduleTupleType); +static int decode_iso1AC_EVChargeParameterType(bitstream_t* stream, struct iso1AC_EVChargeParameterType* iso1AC_EVChargeParameterType); +static int decode_iso1AnonType_V2G_Message(bitstream_t* stream, struct iso1AnonType_V2G_Message* iso1AnonType_V2G_Message); +static int decode_iso1PaymentDetailsResType(bitstream_t* stream, struct iso1PaymentDetailsResType* iso1PaymentDetailsResType); +static int decode_iso1ContractSignatureEncryptedPrivateKeyType(bitstream_t* stream, struct iso1ContractSignatureEncryptedPrivateKeyType* iso1ContractSignatureEncryptedPrivateKeyType); +static int decode_iso1PMaxScheduleEntryType(bitstream_t* stream, struct iso1PMaxScheduleEntryType* iso1PMaxScheduleEntryType); +static int decode_iso1SPKIDataType(bitstream_t* stream, struct iso1SPKIDataType* iso1SPKIDataType); +static int decode_iso1MeteringReceiptResType(bitstream_t* stream, struct iso1MeteringReceiptResType* iso1MeteringReceiptResType); +static int decode_iso1SessionStopReqType(bitstream_t* stream, struct iso1SessionStopReqType* iso1SessionStopReqType); +static int decode_iso1WeldingDetectionResType(bitstream_t* stream, struct iso1WeldingDetectionResType* iso1WeldingDetectionResType); +static int decode_iso1ReferenceType(bitstream_t* stream, struct iso1ReferenceType* iso1ReferenceType); +static int decode_iso1CurrentDemandReqType(bitstream_t* stream, struct iso1CurrentDemandReqType* iso1CurrentDemandReqType); +static int decode_iso1SalesTariffEntryType(bitstream_t* stream, struct iso1SalesTariffEntryType* iso1SalesTariffEntryType); +static int decode_iso1EntryType(bitstream_t* stream, struct iso1EntryType* iso1EntryType); +static int decode_iso1SessionSetupReqType(bitstream_t* stream, struct iso1SessionSetupReqType* iso1SessionSetupReqType); +static int decode_iso1CostType(bitstream_t* stream, struct iso1CostType* iso1CostType); +static int decode_iso1DC_EVPowerDeliveryParameterType(bitstream_t* stream, struct iso1DC_EVPowerDeliveryParameterType* iso1DC_EVPowerDeliveryParameterType); +static int decode_iso1RetrievalMethodType(bitstream_t* stream, struct iso1RetrievalMethodType* iso1RetrievalMethodType); +static int decode_iso1CertificateUpdateResType(bitstream_t* stream, struct iso1CertificateUpdateResType* iso1CertificateUpdateResType); +static int decode_iso1CertificateInstallationResType(bitstream_t* stream, struct iso1CertificateInstallationResType* iso1CertificateInstallationResType); +static int decode_iso1CanonicalizationMethodType(bitstream_t* stream, struct iso1CanonicalizationMethodType* iso1CanonicalizationMethodType); +static int decode_iso1WeldingDetectionReqType(bitstream_t* stream, struct iso1WeldingDetectionReqType* iso1WeldingDetectionReqType); +static int decode_iso1DC_EVStatusType(bitstream_t* stream, struct iso1DC_EVStatusType* iso1DC_EVStatusType); +static int decode_iso1CurrentDemandResType(bitstream_t* stream, struct iso1CurrentDemandResType* iso1CurrentDemandResType); +static int decode_iso1ServiceType(bitstream_t* stream, struct iso1ServiceType* iso1ServiceType); +static int decode_iso1ServiceDiscoveryReqType(bitstream_t* stream, struct iso1ServiceDiscoveryReqType* iso1ServiceDiscoveryReqType); +static int decode_iso1AC_EVSEChargeParameterType(bitstream_t* stream, struct iso1AC_EVSEChargeParameterType* iso1AC_EVSEChargeParameterType); +static int decode_iso1CableCheckReqType(bitstream_t* stream, struct iso1CableCheckReqType* iso1CableCheckReqType); +static int decode_iso1SelectedServiceType(bitstream_t* stream, struct iso1SelectedServiceType* iso1SelectedServiceType); +static int decode_iso1AC_EVSEStatusType(bitstream_t* stream, struct iso1AC_EVSEStatusType* iso1AC_EVSEStatusType); +static int decode_iso1SalesTariffType(bitstream_t* stream, struct iso1SalesTariffType* iso1SalesTariffType); +static int decode_iso1PaymentServiceSelectionReqType(bitstream_t* stream, struct iso1PaymentServiceSelectionReqType* iso1PaymentServiceSelectionReqType); +static int decode_iso1SignaturePropertiesType(bitstream_t* stream, struct iso1SignaturePropertiesType* iso1SignaturePropertiesType); +static int decode_iso1BodyBaseType(bitstream_t* stream, struct iso1BodyBaseType* iso1BodyBaseType); +static int decode_iso1SupportedEnergyTransferModeType(bitstream_t* stream, struct iso1SupportedEnergyTransferModeType* iso1SupportedEnergyTransferModeType); +static int decode_iso1ChargingStatusReqType(bitstream_t* stream, struct iso1ChargingStatusReqType* iso1ChargingStatusReqType); +static int decode_iso1PaymentServiceSelectionResType(bitstream_t* stream, struct iso1PaymentServiceSelectionResType* iso1PaymentServiceSelectionResType); +static int decode_iso1DigestMethodType(bitstream_t* stream, struct iso1DigestMethodType* iso1DigestMethodType); +static int decode_iso1SignaturePropertyType(bitstream_t* stream, struct iso1SignaturePropertyType* iso1SignaturePropertyType); +static int decode_iso1PGPDataType(bitstream_t* stream, struct iso1PGPDataType* iso1PGPDataType); + +/* Deviant data decoding (skip functions) */ + + + /* Complex type name='urn:iso:15118:2:2013:MsgHeader,MessageHeaderType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgHeader":SessionID,"urn:iso:15118:2:2013:MsgHeader":Notification{0-1},"http://www.w3.org/2000/09/xmldsig#":Signature{0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso1MessageHeaderType(bitstream_t* stream, struct iso1MessageHeaderType* iso1MessageHeaderType) { + int grammarID = 0; + int done = 0; + + init_iso1MessageHeaderType(iso1MessageHeaderType); + + while(!done) { + switch(grammarID) { + case 0: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1MessageHeaderType->SessionID.bytesLen); + if (errn == 0) { + errn = (iso1MessageHeaderType->SessionID.bytesLen) <= iso1MessageHeaderType_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1MessageHeaderType->SessionID.bytesLen, iso1MessageHeaderType->SessionID.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1NotificationType(stream, &iso1MessageHeaderType->Notification); + iso1MessageHeaderType->Notification_isUsed = 1u; + grammarID = 2; + break; + case 1: + errn = decode_iso1SignatureType(stream, &iso1MessageHeaderType->Signature); + iso1MessageHeaderType->Signature_isUsed = 1u; + grammarID = 3; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1SignatureType(stream, &iso1MessageHeaderType->Signature); + iso1MessageHeaderType->Signature_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso1SignatureType(bitstream_t* stream, struct iso1SignatureType* iso1SignatureType) { + int grammarID = 5; + int done = 0; + + init_iso1SignatureType(iso1SignatureType); + + while(!done) { + switch(grammarID) { + case 5: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1SignatureType->Id.charactersLen); + if (errn == 0) { + if (iso1SignatureType->Id.charactersLen >= 2) { + iso1SignatureType->Id.charactersLen = (uint16_t)(iso1SignatureType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1SignatureType->Id.charactersLen, iso1SignatureType->Id.characters, iso1SignatureType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1SignatureType->Id_isUsed = 1u; + grammarID = 6; + break; + case 1: + errn = decode_iso1SignedInfoType(stream, &iso1SignatureType->SignedInfo); + grammarID = 7; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 6: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1SignedInfoType(stream, &iso1SignatureType->SignedInfo); + grammarID = 7; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 7: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1SignatureValueType(stream, &iso1SignatureType->SignatureValue); + grammarID = 8; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 8: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1KeyInfoType(stream, &iso1SignatureType->KeyInfo); + iso1SignatureType->KeyInfo_isUsed = 1u; + grammarID = 9; + break; + case 1: + if (iso1SignatureType->Object.arrayLen < iso1SignatureType_Object_ARRAY_SIZE) { + errn = decode_iso1ObjectType(stream, &iso1SignatureType->Object.array[iso1SignatureType->Object.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 9; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 9: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SignatureType->Object.arrayLen < iso1SignatureType_Object_ARRAY_SIZE) { + errn = decode_iso1ObjectType(stream, &iso1SignatureType->Object.array[iso1SignatureType->Object.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 9; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PowerDeliveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ChargeProgress,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":ChargingProfile{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVPowerDeliveryParameter{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso1PowerDeliveryReqType(bitstream_t* stream, struct iso1PowerDeliveryReqType* iso1PowerDeliveryReqType) { + int grammarID = 10; + int done = 0; + + init_iso1PowerDeliveryReqType(iso1PowerDeliveryReqType); + + while(!done) { + switch(grammarID) { + case 10: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso1PowerDeliveryReqType->ChargeProgress = (iso1chargeProgressType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 11; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 11: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso1PowerDeliveryReqType->SAScheduleTupleID = (uint8_t)(uint32 + 1); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 12; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 12: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1ChargingProfileType(stream, &iso1PowerDeliveryReqType->ChargingProfile); + iso1PowerDeliveryReqType->ChargingProfile_isUsed = 1u; + grammarID = 13; + break; + case 1: + errn = decode_iso1DC_EVPowerDeliveryParameterType(stream, &iso1PowerDeliveryReqType->DC_EVPowerDeliveryParameter); + iso1PowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed = 1u; + grammarID = 3; + break; + case 2: + errn = decode_iso1EVPowerDeliveryParameterType(stream, &iso1PowerDeliveryReqType->EVPowerDeliveryParameter); + iso1PowerDeliveryReqType->EVPowerDeliveryParameter_isUsed = 1u; + grammarID = 3; + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 13: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1DC_EVPowerDeliveryParameterType(stream, &iso1PowerDeliveryReqType->DC_EVPowerDeliveryParameter); + iso1PowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed = 1u; + grammarID = 3; + break; + case 1: + errn = decode_iso1EVPowerDeliveryParameterType(stream, &iso1PowerDeliveryReqType->EVPowerDeliveryParameter); + iso1PowerDeliveryReqType->EVPowerDeliveryParameter_isUsed = 1u; + grammarID = 3; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ParameterType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":boolValue|"urn:iso:15118:2:2013:MsgDataTypes":byteValue|"urn:iso:15118:2:2013:MsgDataTypes":shortValue|"urn:iso:15118:2:2013:MsgDataTypes":intValue|"urn:iso:15118:2:2013:MsgDataTypes":physicalValue|"urn:iso:15118:2:2013:MsgDataTypes":stringValue)', derivedBy='RESTRICTION'. */ +static int decode_iso1ParameterType(bitstream_t* stream, struct iso1ParameterType* iso1ParameterType) { + int grammarID = 14; + int done = 0; + + init_iso1ParameterType(iso1ParameterType); + + while(!done) { + switch(grammarID) { + case 14: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1ParameterType->Name.charactersLen); + if (errn == 0) { + if (iso1ParameterType->Name.charactersLen >= 2) { + iso1ParameterType->Name.charactersLen = (uint16_t)(iso1ParameterType->Name.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ParameterType->Name.charactersLen, iso1ParameterType->Name.characters, iso1ParameterType_Name_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 15; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 15: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1ParameterType->boolValue); + iso1ParameterType->boolValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso1ParameterType->byteValue = (int8_t)(uint32 -128); + iso1ParameterType->byteValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &iso1ParameterType->shortValue); + iso1ParameterType->shortValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger32(stream, &iso1ParameterType->intValue); + iso1ParameterType->intValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + errn = decode_iso1PhysicalValueType(stream, &iso1ParameterType->physicalValue); + iso1ParameterType->physicalValue_isUsed = 1u; + grammarID = 3; + break; + case 5: + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1ParameterType->stringValue.charactersLen); + if (errn == 0) { + if (iso1ParameterType->stringValue.charactersLen >= 2) { + iso1ParameterType->stringValue.charactersLen = (uint16_t)(iso1ParameterType->stringValue.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ParameterType->stringValue.charactersLen, iso1ParameterType->stringValue.characters, iso1ParameterType_stringValue_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ParameterType->stringValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateInstallationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":OEMProvisioningCert,"urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */ +static int decode_iso1CertificateInstallationReqType(bitstream_t* stream, struct iso1CertificateInstallationReqType* iso1CertificateInstallationReqType) { + int grammarID = 16; + int done = 0; + + init_iso1CertificateInstallationReqType(iso1CertificateInstallationReqType); + + while(!done) { + switch(grammarID) { + case 16: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1CertificateInstallationReqType->Id.charactersLen); + if (errn == 0) { + if (iso1CertificateInstallationReqType->Id.charactersLen >= 2) { + iso1CertificateInstallationReqType->Id.charactersLen = (uint16_t)(iso1CertificateInstallationReqType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1CertificateInstallationReqType->Id.charactersLen, iso1CertificateInstallationReqType->Id.characters, iso1CertificateInstallationReqType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 17; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 17: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1CertificateInstallationReqType->OEMProvisioningCert.bytesLen); + if (errn == 0) { + errn = (iso1CertificateInstallationReqType->OEMProvisioningCert.bytesLen) <= iso1CertificateInstallationReqType_OEMProvisioningCert_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1CertificateInstallationReqType->OEMProvisioningCert.bytesLen, iso1CertificateInstallationReqType->OEMProvisioningCert.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 18; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 18: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1ListOfRootCertificateIDsType(stream, &iso1CertificateInstallationReqType->ListOfRootCertificateIDs); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionSetupResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":EVSETimeStamp{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso1SessionSetupResType(bitstream_t* stream, struct iso1SessionSetupResType* iso1SessionSetupResType) { + int grammarID = 19; + int done = 0; + + init_iso1SessionSetupResType(iso1SessionSetupResType); + + while(!done) { + switch(grammarID) { + case 19: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso1SessionSetupResType->ResponseCode = (iso1responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 20; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 20: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1SessionSetupResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso1SessionSetupResType->EVSEID.charactersLen >= 2) { + iso1SessionSetupResType->EVSEID.charactersLen = (uint16_t)(iso1SessionSetupResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1SessionSetupResType->EVSEID.charactersLen, iso1SessionSetupResType->EVSEID.characters, iso1SessionSetupResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 21; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 21: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &iso1SessionSetupResType->EVSETimeStamp); + iso1SessionSetupResType->EVSETimeStamp_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVChargeParameterType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso1EVChargeParameterType(bitstream_t* stream, struct iso1EVChargeParameterType* iso1EVChargeParameterType) { + int grammarID = 22; + int done = 0; + + init_iso1EVChargeParameterType(iso1EVChargeParameterType); + + while(!done) { + switch(grammarID) { + case 22: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &iso1EVChargeParameterType->DepartureTime); + iso1EVChargeParameterType->DepartureTime_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DiffieHellmanPublickeyType', base type name='dHpublickeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int decode_iso1DiffieHellmanPublickeyType(bitstream_t* stream, struct iso1DiffieHellmanPublickeyType* iso1DiffieHellmanPublickeyType) { + int grammarID = 23; + int done = 0; + + init_iso1DiffieHellmanPublickeyType(iso1DiffieHellmanPublickeyType); + + while(!done) { + switch(grammarID) { + case 23: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1DiffieHellmanPublickeyType->Id.charactersLen); + if (errn == 0) { + if (iso1DiffieHellmanPublickeyType->Id.charactersLen >= 2) { + iso1DiffieHellmanPublickeyType->Id.charactersLen = (uint16_t)(iso1DiffieHellmanPublickeyType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1DiffieHellmanPublickeyType->Id.charactersLen, iso1DiffieHellmanPublickeyType->Id.characters, iso1DiffieHellmanPublickeyType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 24; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 24: + /* StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1DiffieHellmanPublickeyType->CONTENT.bytesLen); + if (errn == 0) { + errn = (iso1DiffieHellmanPublickeyType->CONTENT.bytesLen) <= iso1DiffieHellmanPublickeyType_CONTENT_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1DiffieHellmanPublickeyType->CONTENT.bytesLen, iso1DiffieHellmanPublickeyType->CONTENT.bytes); + } + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":PaymentOptionList,"urn:iso:15118:2:2013:MsgBody":ChargeService,"urn:iso:15118:2:2013:MsgBody":ServiceList{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso1ServiceDiscoveryResType(bitstream_t* stream, struct iso1ServiceDiscoveryResType* iso1ServiceDiscoveryResType) { + int grammarID = 25; + int done = 0; + + init_iso1ServiceDiscoveryResType(iso1ServiceDiscoveryResType); + + while(!done) { + switch(grammarID) { + case 25: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso1ServiceDiscoveryResType->ResponseCode = (iso1responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 26; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 26: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PaymentOptionListType(stream, &iso1ServiceDiscoveryResType->PaymentOptionList); + grammarID = 27; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 27: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1ChargeServiceType(stream, &iso1ServiceDiscoveryResType->ChargeService); + grammarID = 28; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 28: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1ServiceListType(stream, &iso1ServiceDiscoveryResType->ServiceList); + iso1ServiceDiscoveryResType->ServiceList_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceParameterListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ParameterSet{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso1ServiceParameterListType(bitstream_t* stream, struct iso1ServiceParameterListType* iso1ServiceParameterListType) { + int grammarID = 29; + int done = 0; + + init_iso1ServiceParameterListType(iso1ServiceParameterListType); + + while(!done) { + switch(grammarID) { + case 29: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ServiceParameterListType->ParameterSet.arrayLen < iso1ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso1ParameterSetType(stream, &iso1ServiceParameterListType->ParameterSet.array[iso1ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 30; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 30: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ServiceParameterListType->ParameterSet.arrayLen < iso1ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso1ParameterSetType(stream, &iso1ServiceParameterListType->ParameterSet.array[iso1ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 30; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso1CertificateChainType(bitstream_t* stream, struct iso1CertificateChainType* iso1CertificateChainType) { + int grammarID = 31; + int done = 0; + + init_iso1CertificateChainType(iso1CertificateChainType); + + while(!done) { + switch(grammarID) { + case 31: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1CertificateChainType->Id.charactersLen); + if (errn == 0) { + if (iso1CertificateChainType->Id.charactersLen >= 2) { + iso1CertificateChainType->Id.charactersLen = (uint16_t)(iso1CertificateChainType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1CertificateChainType->Id.charactersLen, iso1CertificateChainType->Id.characters, iso1CertificateChainType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1CertificateChainType->Id_isUsed = 1u; + grammarID = 32; + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1CertificateChainType->Certificate.bytesLen); + if (errn == 0) { + errn = (iso1CertificateChainType->Certificate.bytesLen) <= iso1CertificateChainType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1CertificateChainType->Certificate.bytesLen, iso1CertificateChainType->Certificate.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 33; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 32: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1CertificateChainType->Certificate.bytesLen); + if (errn == 0) { + errn = (iso1CertificateChainType->Certificate.bytesLen) <= iso1CertificateChainType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1CertificateChainType->Certificate.bytesLen, iso1CertificateChainType->Certificate.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 33; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 33: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1SubCertificatesType(stream, &iso1CertificateChainType->SubCertificates); + iso1CertificateChainType->SubCertificates_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SASchedulesType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_iso1SASchedulesType(bitstream_t* stream, struct iso1SASchedulesType* iso1SASchedulesType) { + int grammarID = 34; + int done = 0; + + init_iso1SASchedulesType(iso1SASchedulesType); + + while(!done) { + switch(grammarID) { + case 34: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */ +static int decode_iso1DC_EVSEStatusType(bitstream_t* stream, struct iso1DC_EVSEStatusType* iso1DC_EVSEStatusType) { + int grammarID = 35; + int done = 0; + + init_iso1DC_EVSEStatusType(iso1DC_EVSEStatusType); + + while(!done) { + switch(grammarID) { + case 35: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1DC_EVSEStatusType->NotificationMaxDelay); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 36; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 36: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso1DC_EVSEStatusType->EVSENotification = (iso1EVSENotificationType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 37; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 37: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &uint32); + iso1DC_EVSEStatusType->EVSEIsolationStatus = (iso1isolationLevelType) uint32; + iso1DC_EVSEStatusType->EVSEIsolationStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 38; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 4, &uint32); + iso1DC_EVSEStatusType->EVSEStatusCode = (iso1DC_EVSEStatusCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 38: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 4, &uint32); + iso1DC_EVSEStatusType->EVSEStatusCode = (iso1DC_EVSEStatusCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PreChargeResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */ +static int decode_iso1PreChargeResType(bitstream_t* stream, struct iso1PreChargeResType* iso1PreChargeResType) { + int grammarID = 39; + int done = 0; + + init_iso1PreChargeResType(iso1PreChargeResType); + + while(!done) { + switch(grammarID) { + case 39: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso1PreChargeResType->ResponseCode = (iso1responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 40; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 40: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1DC_EVSEStatusType(stream, &iso1PreChargeResType->DC_EVSEStatus); + grammarID = 41; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 41: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1PreChargeResType->EVSEPresentVoltage); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2013:MsgDataTypes":Parameter{1-16})', derivedBy='RESTRICTION'. */ +static int decode_iso1ParameterSetType(bitstream_t* stream, struct iso1ParameterSetType* iso1ParameterSetType) { + int grammarID = 42; + int done = 0; + + init_iso1ParameterSetType(iso1ParameterSetType); + + while(!done) { + switch(grammarID) { + case 42: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &iso1ParameterSetType->ParameterSetID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 43; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 43: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ParameterSetType->Parameter.arrayLen < iso1ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array[iso1ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 44; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 44: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ParameterSetType->Parameter.arrayLen < iso1ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array[iso1ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 45; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 45: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ParameterSetType->Parameter.arrayLen < iso1ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array[iso1ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 46; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 46: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ParameterSetType->Parameter.arrayLen < iso1ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array[iso1ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 47; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 47: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ParameterSetType->Parameter.arrayLen < iso1ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array[iso1ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 48; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 48: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ParameterSetType->Parameter.arrayLen < iso1ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array[iso1ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 49; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 49: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ParameterSetType->Parameter.arrayLen < iso1ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array[iso1ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 50; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 50: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ParameterSetType->Parameter.arrayLen < iso1ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array[iso1ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 51; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 51: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ParameterSetType->Parameter.arrayLen < iso1ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array[iso1ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 52; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 52: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ParameterSetType->Parameter.arrayLen < iso1ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array[iso1ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 53; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 53: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ParameterSetType->Parameter.arrayLen < iso1ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array[iso1ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 54; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 54: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ParameterSetType->Parameter.arrayLen < iso1ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array[iso1ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 55; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 55: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ParameterSetType->Parameter.arrayLen < iso1ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array[iso1ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 56; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 56: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ParameterSetType->Parameter.arrayLen < iso1ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array[iso1ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 57; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 57: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ParameterSetType->Parameter.arrayLen < iso1ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array[iso1ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 58; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 58: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ParameterSetType->Parameter.arrayLen < iso1ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array[iso1ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDetailReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ServiceID)', derivedBy='EXTENSION'. */ +static int decode_iso1ServiceDetailReqType(bitstream_t* stream, struct iso1ServiceDetailReqType* iso1ServiceDetailReqType) { + int grammarID = 59; + int done = 0; + + init_iso1ServiceDetailReqType(iso1ServiceDetailReqType); + + while(!done) { + switch(grammarID) { + case 59: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1ServiceDetailReqType->ServiceID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":start,"urn:iso:15118:2:2013:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso1RelativeTimeIntervalType(bitstream_t* stream, struct iso1RelativeTimeIntervalType* iso1RelativeTimeIntervalType) { + int grammarID = 60; + int done = 0; + + init_iso1RelativeTimeIntervalType(iso1RelativeTimeIntervalType); + + while(!done) { + switch(grammarID) { + case 60: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &iso1RelativeTimeIntervalType->start); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 61; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 61: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &iso1RelativeTimeIntervalType->duration); + iso1RelativeTimeIntervalType->duration_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso1SignedInfoType(bitstream_t* stream, struct iso1SignedInfoType* iso1SignedInfoType) { + int grammarID = 62; + int done = 0; + + init_iso1SignedInfoType(iso1SignedInfoType); + + while(!done) { + switch(grammarID) { + case 62: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1SignedInfoType->Id.charactersLen); + if (errn == 0) { + if (iso1SignedInfoType->Id.charactersLen >= 2) { + iso1SignedInfoType->Id.charactersLen = (uint16_t)(iso1SignedInfoType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1SignedInfoType->Id.charactersLen, iso1SignedInfoType->Id.characters, iso1SignedInfoType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1SignedInfoType->Id_isUsed = 1u; + grammarID = 63; + break; + case 1: + errn = decode_iso1CanonicalizationMethodType(stream, &iso1SignedInfoType->CanonicalizationMethod); + grammarID = 64; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 63: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1CanonicalizationMethodType(stream, &iso1SignedInfoType->CanonicalizationMethod); + grammarID = 64; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 64: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1SignatureMethodType(stream, &iso1SignedInfoType->SignatureMethod); + grammarID = 65; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 65: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SignedInfoType->Reference.arrayLen < iso1SignedInfoType_Reference_ARRAY_SIZE) { + errn = decode_iso1ReferenceType(stream, &iso1SignedInfoType->Reference.array[iso1SignedInfoType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 66; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 66: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SignedInfoType->Reference.arrayLen < iso1SignedInfoType_Reference_ARRAY_SIZE) { + errn = decode_iso1ReferenceType(stream, &iso1SignedInfoType->Reference.array[iso1SignedInfoType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 66; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EMAIDType', base type name='eMAIDType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int decode_iso1EMAIDType(bitstream_t* stream, struct iso1EMAIDType* iso1EMAIDType) { + int grammarID = 67; + int done = 0; + + init_iso1EMAIDType(iso1EMAIDType); + + while(!done) { + switch(grammarID) { + case 67: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1EMAIDType->Id.charactersLen); + if (errn == 0) { + if (iso1EMAIDType->Id.charactersLen >= 2) { + iso1EMAIDType->Id.charactersLen = (uint16_t)(iso1EMAIDType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1EMAIDType->Id.charactersLen, iso1EMAIDType->Id.characters, iso1EMAIDType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 68; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 68: + /* StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1EMAIDType->CONTENT.charactersLen); + if (errn == 0) { + if (iso1EMAIDType->CONTENT.charactersLen >= 2) { + iso1EMAIDType->CONTENT.charactersLen = (uint16_t)(iso1EMAIDType->CONTENT.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1EMAIDType->CONTENT.charactersLen, iso1EMAIDType->CONTENT.characters, iso1EMAIDType_CONTENT_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVStatusType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_iso1EVStatusType(bitstream_t* stream, struct iso1EVStatusType* iso1EVStatusType) { + int grammarID = 34; + int done = 0; + + init_iso1EVStatusType(iso1EVStatusType); + + while(!done) { + switch(grammarID) { + case 34: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Service{1-8})', derivedBy='RESTRICTION'. */ +static int decode_iso1ServiceListType(bitstream_t* stream, struct iso1ServiceListType* iso1ServiceListType) { + int grammarID = 69; + int done = 0; + + init_iso1ServiceListType(iso1ServiceListType); + + while(!done) { + switch(grammarID) { + case 69: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ServiceListType->Service.arrayLen < iso1ServiceListType_Service_ARRAY_SIZE) { + errn = decode_iso1ServiceType(stream, &iso1ServiceListType->Service.array[iso1ServiceListType->Service.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 70: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ServiceListType->Service.arrayLen < iso1ServiceListType_Service_ARRAY_SIZE) { + errn = decode_iso1ServiceType(stream, &iso1ServiceListType->Service.array[iso1ServiceListType->Service.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 71; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 71: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ServiceListType->Service.arrayLen < iso1ServiceListType_Service_ARRAY_SIZE) { + errn = decode_iso1ServiceType(stream, &iso1ServiceListType->Service.array[iso1ServiceListType->Service.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 72; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 72: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ServiceListType->Service.arrayLen < iso1ServiceListType_Service_ARRAY_SIZE) { + errn = decode_iso1ServiceType(stream, &iso1ServiceListType->Service.array[iso1ServiceListType->Service.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 73; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 73: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ServiceListType->Service.arrayLen < iso1ServiceListType_Service_ARRAY_SIZE) { + errn = decode_iso1ServiceType(stream, &iso1ServiceListType->Service.array[iso1ServiceListType->Service.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 74; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 74: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ServiceListType->Service.arrayLen < iso1ServiceListType_Service_ARRAY_SIZE) { + errn = decode_iso1ServiceType(stream, &iso1ServiceListType->Service.array[iso1ServiceListType->Service.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 75; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 75: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ServiceListType->Service.arrayLen < iso1ServiceListType_Service_ARRAY_SIZE) { + errn = decode_iso1ServiceType(stream, &iso1ServiceListType->Service.array[iso1ServiceListType->Service.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 76; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 76: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ServiceListType->Service.arrayLen < iso1ServiceListType_Service_ARRAY_SIZE) { + errn = decode_iso1ServiceType(stream, &iso1ServiceListType->Service.array[iso1ServiceListType->Service.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEChargeParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_iso1EVSEChargeParameterType(bitstream_t* stream, struct iso1EVSEChargeParameterType* iso1EVSEChargeParameterType) { + int grammarID = 34; + int done = 0; + + init_iso1EVSEChargeParameterType(iso1EVSEChargeParameterType); + + while(!done) { + switch(grammarID) { + case 34: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVPowerDeliveryParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_iso1EVPowerDeliveryParameterType(bitstream_t* stream, struct iso1EVPowerDeliveryParameterType* iso1EVPowerDeliveryParameterType) { + int grammarID = 34; + int done = 0; + + init_iso1EVPowerDeliveryParameterType(iso1EVPowerDeliveryParameterType); + + while(!done) { + switch(grammarID) { + case 34: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ProfileEntryType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryStart,"urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxPower,"urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxNumberOfPhasesInUse{0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso1ProfileEntryType(bitstream_t* stream, struct iso1ProfileEntryType* iso1ProfileEntryType) { + int grammarID = 77; + int done = 0; + + init_iso1ProfileEntryType(iso1ProfileEntryType); + + while(!done) { + switch(grammarID) { + case 77: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &iso1ProfileEntryType->ChargingProfileEntryStart); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 78; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 78: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1ProfileEntryType->ChargingProfileEntryMaxPower); + grammarID = 79; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 79: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &(uint32)); + iso1ProfileEntryType->ChargingProfileEntryMaxNumberOfPhasesInUse = (int8_t)(uint32 + 1); + iso1ProfileEntryType->ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,AuthorizationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":GenChallenge{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso1AuthorizationReqType(bitstream_t* stream, struct iso1AuthorizationReqType* iso1AuthorizationReqType) { + int grammarID = 80; + int done = 0; + + init_iso1AuthorizationReqType(iso1AuthorizationReqType); + + while(!done) { + switch(grammarID) { + case 80: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1AuthorizationReqType->Id.charactersLen); + if (errn == 0) { + if (iso1AuthorizationReqType->Id.charactersLen >= 2) { + iso1AuthorizationReqType->Id.charactersLen = (uint16_t)(iso1AuthorizationReqType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1AuthorizationReqType->Id.charactersLen, iso1AuthorizationReqType->Id.characters, iso1AuthorizationReqType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1AuthorizationReqType->Id_isUsed = 1u; + grammarID = 81; + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1AuthorizationReqType->GenChallenge.bytesLen); + if (errn == 0) { + errn = (iso1AuthorizationReqType->GenChallenge.bytesLen) <= iso1AuthorizationReqType_GenChallenge_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1AuthorizationReqType->GenChallenge.bytesLen, iso1AuthorizationReqType->GenChallenge.bytes); + } + iso1AuthorizationReqType->GenChallenge_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 81: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1AuthorizationReqType->GenChallenge.bytesLen); + if (errn == 0) { + errn = (iso1AuthorizationReqType->GenChallenge.bytesLen) <= iso1AuthorizationReqType_GenChallenge_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1AuthorizationReqType->GenChallenge.bytesLen, iso1AuthorizationReqType->GenChallenge.bytes); + } + iso1AuthorizationReqType->GenChallenge_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":MeterID,"urn:iso:15118:2:2013:MsgDataTypes":MeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso1MeterInfoType(bitstream_t* stream, struct iso1MeterInfoType* iso1MeterInfoType) { + int grammarID = 82; + int done = 0; + + init_iso1MeterInfoType(iso1MeterInfoType); + + while(!done) { + switch(grammarID) { + case 82: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1MeterInfoType->MeterID.charactersLen); + if (errn == 0) { + if (iso1MeterInfoType->MeterID.charactersLen >= 2) { + iso1MeterInfoType->MeterID.charactersLen = (uint16_t)(iso1MeterInfoType->MeterID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1MeterInfoType->MeterID.charactersLen, iso1MeterInfoType->MeterID.characters, iso1MeterInfoType_MeterID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 83; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 83: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger64(stream, &iso1MeterInfoType->MeterReading); + iso1MeterInfoType->MeterReading_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 84; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1MeterInfoType->SigMeterReading.bytesLen); + if (errn == 0) { + errn = (iso1MeterInfoType->SigMeterReading.bytesLen) <= iso1MeterInfoType_SigMeterReading_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1MeterInfoType->SigMeterReading.bytesLen, iso1MeterInfoType->SigMeterReading.bytes); + } + iso1MeterInfoType->SigMeterReading_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 85; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &iso1MeterInfoType->MeterStatus); + iso1MeterInfoType->MeterStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 86; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &iso1MeterInfoType->TMeter); + iso1MeterInfoType->TMeter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 84: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1MeterInfoType->SigMeterReading.bytesLen); + if (errn == 0) { + errn = (iso1MeterInfoType->SigMeterReading.bytesLen) <= iso1MeterInfoType_SigMeterReading_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1MeterInfoType->SigMeterReading.bytesLen, iso1MeterInfoType->SigMeterReading.bytes); + } + iso1MeterInfoType->SigMeterReading_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 85; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &iso1MeterInfoType->MeterStatus); + iso1MeterInfoType->MeterStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 86; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &iso1MeterInfoType->TMeter); + iso1MeterInfoType->TMeter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 85: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &iso1MeterInfoType->MeterStatus); + iso1MeterInfoType->MeterStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 86; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &iso1MeterInfoType->TMeter); + iso1MeterInfoType->TMeter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 86: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &iso1MeterInfoType->TMeter); + iso1MeterInfoType->TMeter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ManifestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso1ManifestType(bitstream_t* stream, struct iso1ManifestType* iso1ManifestType) { + int grammarID = 87; + int done = 0; + + init_iso1ManifestType(iso1ManifestType); + + while(!done) { + switch(grammarID) { + case 87: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1ManifestType->Id.charactersLen); + if (errn == 0) { + if (iso1ManifestType->Id.charactersLen >= 2) { + iso1ManifestType->Id.charactersLen = (uint16_t)(iso1ManifestType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ManifestType->Id.charactersLen, iso1ManifestType->Id.characters, iso1ManifestType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ManifestType->Id_isUsed = 1u; + grammarID = 88; + break; + case 1: + if (iso1ManifestType->Reference.arrayLen < iso1ManifestType_Reference_ARRAY_SIZE) { + errn = decode_iso1ReferenceType(stream, &iso1ManifestType->Reference.array[iso1ManifestType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 66; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 88: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ManifestType->Reference.arrayLen < iso1ManifestType_Reference_ARRAY_SIZE) { + errn = decode_iso1ReferenceType(stream, &iso1ManifestType->Reference.array[iso1ManifestType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 66; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 66: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ManifestType->Reference.arrayLen < iso1ManifestType_Reference_ARRAY_SIZE) { + errn = decode_iso1ReferenceType(stream, &iso1ManifestType->Reference.array[iso1ManifestType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 66; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargeParameterDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing,"urn:iso:15118:2:2013:MsgDataTypes":SASchedules{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEChargeParameter)', derivedBy='EXTENSION'. */ +static int decode_iso1ChargeParameterDiscoveryResType(bitstream_t* stream, struct iso1ChargeParameterDiscoveryResType* iso1ChargeParameterDiscoveryResType) { + int grammarID = 89; + int done = 0; + + init_iso1ChargeParameterDiscoveryResType(iso1ChargeParameterDiscoveryResType); + + while(!done) { + switch(grammarID) { + case 89: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso1ChargeParameterDiscoveryResType->ResponseCode = (iso1responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 90; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 90: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso1ChargeParameterDiscoveryResType->EVSEProcessing = (iso1EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 91; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 91: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1SAScheduleListType(stream, &iso1ChargeParameterDiscoveryResType->SAScheduleList); + iso1ChargeParameterDiscoveryResType->SAScheduleList_isUsed = 1u; + grammarID = 92; + break; + case 1: + errn = decode_iso1SASchedulesType(stream, &iso1ChargeParameterDiscoveryResType->SASchedules); + iso1ChargeParameterDiscoveryResType->SASchedules_isUsed = 1u; + grammarID = 92; + break; + case 2: + errn = decode_iso1AC_EVSEChargeParameterType(stream, &iso1ChargeParameterDiscoveryResType->AC_EVSEChargeParameter); + iso1ChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed = 1u; + grammarID = 3; + break; + case 3: + errn = decode_iso1DC_EVSEChargeParameterType(stream, &iso1ChargeParameterDiscoveryResType->DC_EVSEChargeParameter); + iso1ChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed = 1u; + grammarID = 3; + break; + case 4: + errn = decode_iso1EVSEChargeParameterType(stream, &iso1ChargeParameterDiscoveryResType->EVSEChargeParameter); + iso1ChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed = 1u; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 92: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1AC_EVSEChargeParameterType(stream, &iso1ChargeParameterDiscoveryResType->AC_EVSEChargeParameter); + iso1ChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed = 1u; + grammarID = 3; + break; + case 1: + errn = decode_iso1DC_EVSEChargeParameterType(stream, &iso1ChargeParameterDiscoveryResType->DC_EVSEChargeParameter); + iso1ChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed = 1u; + grammarID = 3; + break; + case 2: + errn = decode_iso1EVSEChargeParameterType(stream, &iso1ChargeParameterDiscoveryResType->EVSEChargeParameter); + iso1ChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed = 1u; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PowerDeliveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */ +static int decode_iso1PowerDeliveryResType(bitstream_t* stream, struct iso1PowerDeliveryResType* iso1PowerDeliveryResType) { + int grammarID = 93; + int done = 0; + + init_iso1PowerDeliveryResType(iso1PowerDeliveryResType); + + while(!done) { + switch(grammarID) { + case 93: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso1PowerDeliveryResType->ResponseCode = (iso1responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 94; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 94: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1AC_EVSEStatusType(stream, &iso1PowerDeliveryResType->AC_EVSEStatus); + iso1PowerDeliveryResType->AC_EVSEStatus_isUsed = 1u; + grammarID = 3; + break; + case 1: + errn = decode_iso1DC_EVSEStatusType(stream, &iso1PowerDeliveryResType->DC_EVSEStatus); + iso1PowerDeliveryResType->DC_EVSEStatus_isUsed = 1u; + grammarID = 3; + break; + case 2: + errn = decode_iso1EVSEStatusType(stream, &iso1PowerDeliveryResType->EVSEStatus); + iso1PowerDeliveryResType->EVSEStatus_isUsed = 1u; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1}),("urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVEnergyCapacity{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVEnergyRequest{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FullSOC{0-1},"urn:iso:15118:2:2013:MsgDataTypes":BulkSOC{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso1DC_EVChargeParameterType(bitstream_t* stream, struct iso1DC_EVChargeParameterType* iso1DC_EVChargeParameterType) { + int grammarID = 95; + int done = 0; + + init_iso1DC_EVChargeParameterType(iso1DC_EVChargeParameterType); + + while(!done) { + switch(grammarID) { + case 95: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &iso1DC_EVChargeParameterType->DepartureTime); + iso1DC_EVChargeParameterType->DepartureTime_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 96; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_iso1DC_EVStatusType(stream, &iso1DC_EVChargeParameterType->DC_EVStatus); + grammarID = 97; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 96: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1DC_EVStatusType(stream, &iso1DC_EVChargeParameterType->DC_EVStatus); + grammarID = 97; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 97: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVMaximumCurrentLimit); + grammarID = 98; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 98: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVMaximumPowerLimit); + iso1DC_EVChargeParameterType->EVMaximumPowerLimit_isUsed = 1u; + grammarID = 99; + break; + case 1: + errn = decode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVMaximumVoltageLimit); + grammarID = 100; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 99: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVMaximumVoltageLimit); + grammarID = 100; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 100: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVEnergyCapacity); + iso1DC_EVChargeParameterType->EVEnergyCapacity_isUsed = 1u; + grammarID = 101; + break; + case 1: + errn = decode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVEnergyRequest); + iso1DC_EVChargeParameterType->EVEnergyRequest_isUsed = 1u; + grammarID = 102; + break; + case 2: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso1DC_EVChargeParameterType->FullSOC = (int8_t)(uint32 + 0); + iso1DC_EVChargeParameterType->FullSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 103; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso1DC_EVChargeParameterType->BulkSOC = (int8_t)(uint32 + 0); + iso1DC_EVChargeParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 101: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVEnergyRequest); + iso1DC_EVChargeParameterType->EVEnergyRequest_isUsed = 1u; + grammarID = 102; + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso1DC_EVChargeParameterType->FullSOC = (int8_t)(uint32 + 0); + iso1DC_EVChargeParameterType->FullSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 103; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso1DC_EVChargeParameterType->BulkSOC = (int8_t)(uint32 + 0); + iso1DC_EVChargeParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 102: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso1DC_EVChargeParameterType->FullSOC = (int8_t)(uint32 + 0); + iso1DC_EVChargeParameterType->FullSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 103; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso1DC_EVChargeParameterType->BulkSOC = (int8_t)(uint32 + 0); + iso1DC_EVChargeParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 103: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso1DC_EVChargeParameterType->BulkSOC = (int8_t)(uint32 + 0); + iso1DC_EVChargeParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ConsumptionCostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":startValue,"urn:iso:15118:2:2013:MsgDataTypes":Cost{1-3})', derivedBy='RESTRICTION'. */ +static int decode_iso1ConsumptionCostType(bitstream_t* stream, struct iso1ConsumptionCostType* iso1ConsumptionCostType) { + int grammarID = 104; + int done = 0; + + init_iso1ConsumptionCostType(iso1ConsumptionCostType); + + while(!done) { + switch(grammarID) { + case 104: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1ConsumptionCostType->startValue); + grammarID = 105; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 105: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ConsumptionCostType->Cost.arrayLen < iso1ConsumptionCostType_Cost_ARRAY_SIZE) { + errn = decode_iso1CostType(stream, &iso1ConsumptionCostType->Cost.array[iso1ConsumptionCostType->Cost.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 106; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 106: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ConsumptionCostType->Cost.arrayLen < iso1ConsumptionCostType_Cost_ARRAY_SIZE) { + errn = decode_iso1CostType(stream, &iso1ConsumptionCostType->Cost.array[iso1ConsumptionCostType->Cost.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 107; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 107: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ConsumptionCostType->Cost.arrayLen < iso1ConsumptionCostType_Cost_ARRAY_SIZE) { + errn = decode_iso1CostType(stream, &iso1ConsumptionCostType->Cost.array[iso1ConsumptionCostType->Cost.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PMaxScheduleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":PMaxScheduleEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso1PMaxScheduleType(bitstream_t* stream, struct iso1PMaxScheduleType* iso1PMaxScheduleType) { + int grammarID = 108; + int done = 0; + + init_iso1PMaxScheduleType(iso1PMaxScheduleType); + + while(!done) { + switch(grammarID) { + case 108: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1PMaxScheduleType->PMaxScheduleEntry.arrayLen < iso1PMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE) { + errn = decode_iso1PMaxScheduleEntryType(stream, &iso1PMaxScheduleType->PMaxScheduleEntry.array[iso1PMaxScheduleType->PMaxScheduleEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 109; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 109: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1PMaxScheduleType->PMaxScheduleEntry.arrayLen < iso1PMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE) { + errn = decode_iso1PMaxScheduleEntryType(stream, &iso1PMaxScheduleType->PMaxScheduleEntry.array[iso1PMaxScheduleType->PMaxScheduleEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 109; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PaymentOptionListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":PaymentOption{1-2})', derivedBy='RESTRICTION'. */ +static int decode_iso1PaymentOptionListType(bitstream_t* stream, struct iso1PaymentOptionListType* iso1PaymentOptionListType) { + int grammarID = 110; + int done = 0; + + init_iso1PaymentOptionListType(iso1PaymentOptionListType); + + while(!done) { + switch(grammarID) { + case 110: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1PaymentOptionListType->PaymentOption.arrayLen < iso1PaymentOptionListType_PaymentOption_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso1PaymentOptionListType->PaymentOption.array[iso1PaymentOptionListType->PaymentOption.arrayLen] = (iso1paymentOptionType) uint32; + iso1PaymentOptionListType->PaymentOption.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 111; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 111: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1PaymentOptionListType->PaymentOption.arrayLen < iso1PaymentOptionListType_PaymentOption_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso1PaymentOptionListType->PaymentOption.array[iso1PaymentOptionListType->PaymentOption.arrayLen] = (iso1paymentOptionType) uint32; + iso1PaymentOptionListType->PaymentOption.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_iso1ObjectType(bitstream_t* stream, struct iso1ObjectType* iso1ObjectType) { + int grammarID = 112; + int done = 0; + + init_iso1ObjectType(iso1ObjectType); + + while(!done) { + switch(grammarID) { + case 112: + /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1ObjectType->Encoding.charactersLen); + if (errn == 0) { + if (iso1ObjectType->Encoding.charactersLen >= 2) { + iso1ObjectType->Encoding.charactersLen = (uint16_t)(iso1ObjectType->Encoding.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ObjectType->Encoding.charactersLen, iso1ObjectType->Encoding.characters, iso1ObjectType_Encoding_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ObjectType->Encoding_isUsed = 1u; + grammarID = 113; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso1ObjectType->Id.charactersLen); + if (errn == 0) { + if (iso1ObjectType->Id.charactersLen >= 2) { + iso1ObjectType->Id.charactersLen = (uint16_t)(iso1ObjectType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ObjectType->Id.charactersLen, iso1ObjectType->Id.characters, iso1ObjectType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ObjectType->Id_isUsed = 1u; + grammarID = 114; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso1ObjectType->MimeType.charactersLen); + if (errn == 0) { + if (iso1ObjectType->MimeType.charactersLen >= 2) { + iso1ObjectType->MimeType.charactersLen = (uint16_t)(iso1ObjectType->MimeType.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ObjectType->MimeType.charactersLen, iso1ObjectType->MimeType.characters, iso1ObjectType_MimeType_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ObjectType->MimeType_isUsed = 1u; + grammarID = 115; + break; + case 3: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 116; + break; + case 4: + done = 1; + grammarID = 4; + break; + case 5: + errn = decodeUnsignedInteger16(stream, &iso1ObjectType->ANY.charactersLen); + if (errn == 0) { + if (iso1ObjectType->ANY.charactersLen >= 2) { + iso1ObjectType->ANY.charactersLen = (uint16_t)(iso1ObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ObjectType->ANY.charactersLen, iso1ObjectType->ANY.characters, iso1ObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ObjectType->ANY_isUsed = 1u; + grammarID = 116; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 113: + /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1ObjectType->Id.charactersLen); + if (errn == 0) { + if (iso1ObjectType->Id.charactersLen >= 2) { + iso1ObjectType->Id.charactersLen = (uint16_t)(iso1ObjectType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ObjectType->Id.charactersLen, iso1ObjectType->Id.characters, iso1ObjectType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ObjectType->Id_isUsed = 1u; + grammarID = 114; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso1ObjectType->MimeType.charactersLen); + if (errn == 0) { + if (iso1ObjectType->MimeType.charactersLen >= 2) { + iso1ObjectType->MimeType.charactersLen = (uint16_t)(iso1ObjectType->MimeType.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ObjectType->MimeType.charactersLen, iso1ObjectType->MimeType.characters, iso1ObjectType_MimeType_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ObjectType->MimeType_isUsed = 1u; + grammarID = 115; + break; + case 2: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 116; + break; + case 3: + done = 1; + grammarID = 4; + break; + case 4: + errn = decodeUnsignedInteger16(stream, &iso1ObjectType->ANY.charactersLen); + if (errn == 0) { + if (iso1ObjectType->ANY.charactersLen >= 2) { + iso1ObjectType->ANY.charactersLen = (uint16_t)(iso1ObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ObjectType->ANY.charactersLen, iso1ObjectType->ANY.characters, iso1ObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ObjectType->ANY_isUsed = 1u; + grammarID = 116; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 114: + /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1ObjectType->MimeType.charactersLen); + if (errn == 0) { + if (iso1ObjectType->MimeType.charactersLen >= 2) { + iso1ObjectType->MimeType.charactersLen = (uint16_t)(iso1ObjectType->MimeType.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ObjectType->MimeType.charactersLen, iso1ObjectType->MimeType.characters, iso1ObjectType_MimeType_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ObjectType->MimeType_isUsed = 1u; + grammarID = 115; + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 116; + break; + case 2: + done = 1; + grammarID = 4; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &iso1ObjectType->ANY.charactersLen); + if (errn == 0) { + if (iso1ObjectType->ANY.charactersLen >= 2) { + iso1ObjectType->ANY.charactersLen = (uint16_t)(iso1ObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ObjectType->ANY.charactersLen, iso1ObjectType->ANY.characters, iso1ObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ObjectType->ANY_isUsed = 1u; + grammarID = 116; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 115: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 116; + break; + case 1: + done = 1; + grammarID = 4; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso1ObjectType->ANY.charactersLen); + if (errn == 0) { + if (iso1ObjectType->ANY.charactersLen >= 2) { + iso1ObjectType->ANY.charactersLen = (uint16_t)(iso1ObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ObjectType->ANY.charactersLen, iso1ObjectType->ANY.characters, iso1ObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ObjectType->ANY_isUsed = 1u; + grammarID = 116; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 116: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 116; + break; + case 1: + done = 1; + grammarID = 4; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso1ObjectType->ANY.charactersLen); + if (errn == 0) { + if (iso1ObjectType->ANY.charactersLen >= 2) { + iso1ObjectType->ANY.charactersLen = (uint16_t)(iso1ObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ObjectType->ANY.charactersLen, iso1ObjectType->ANY.characters, iso1ObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ObjectType->ANY_isUsed = 1u; + grammarID = 116; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ +static int decode_iso1PhysicalValueType(bitstream_t* stream, struct iso1PhysicalValueType* iso1PhysicalValueType) { + int grammarID = 117; + int done = 0; + + init_iso1PhysicalValueType(iso1PhysicalValueType); + + while(!done) { + switch(grammarID) { + case 117: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &(uint32)); + iso1PhysicalValueType->Multiplier = (int8_t)(uint32 -3); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 118; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 118: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &uint32); + iso1PhysicalValueType->Unit = (iso1unitSymbolType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 119; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 119: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &iso1PhysicalValueType->Value); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */ +static int decode_iso1RSAKeyValueType(bitstream_t* stream, struct iso1RSAKeyValueType* iso1RSAKeyValueType) { + int grammarID = 120; + int done = 0; + + init_iso1RSAKeyValueType(iso1RSAKeyValueType); + + while(!done) { + switch(grammarID) { + case 120: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1RSAKeyValueType->Modulus.bytesLen); + if (errn == 0) { + errn = (iso1RSAKeyValueType->Modulus.bytesLen) <= iso1RSAKeyValueType_Modulus_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1RSAKeyValueType->Modulus.bytesLen, iso1RSAKeyValueType->Modulus.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 121; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 121: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1RSAKeyValueType->Exponent.bytesLen); + if (errn == 0) { + errn = (iso1RSAKeyValueType->Exponent.bytesLen) <= iso1RSAKeyValueType_Exponent_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1RSAKeyValueType->Exponent.bytesLen, iso1RSAKeyValueType->Exponent.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionStopResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */ +static int decode_iso1SessionStopResType(bitstream_t* stream, struct iso1SessionStopResType* iso1SessionStopResType) { + int grammarID = 122; + int done = 0; + + init_iso1SessionStopResType(iso1SessionStopResType); + + while(!done) { + switch(grammarID) { + case 122: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso1SessionStopResType->ResponseCode = (iso1responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateUpdateReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */ +static int decode_iso1CertificateUpdateReqType(bitstream_t* stream, struct iso1CertificateUpdateReqType* iso1CertificateUpdateReqType) { + int grammarID = 123; + int done = 0; + + init_iso1CertificateUpdateReqType(iso1CertificateUpdateReqType); + + while(!done) { + switch(grammarID) { + case 123: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1CertificateUpdateReqType->Id.charactersLen); + if (errn == 0) { + if (iso1CertificateUpdateReqType->Id.charactersLen >= 2) { + iso1CertificateUpdateReqType->Id.charactersLen = (uint16_t)(iso1CertificateUpdateReqType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1CertificateUpdateReqType->Id.charactersLen, iso1CertificateUpdateReqType->Id.characters, iso1CertificateUpdateReqType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 124; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 124: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1CertificateChainType(stream, &iso1CertificateUpdateReqType->ContractSignatureCertChain); + grammarID = 125; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 125: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1CertificateUpdateReqType->eMAID.charactersLen); + if (errn == 0) { + if (iso1CertificateUpdateReqType->eMAID.charactersLen >= 2) { + iso1CertificateUpdateReqType->eMAID.charactersLen = (uint16_t)(iso1CertificateUpdateReqType->eMAID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1CertificateUpdateReqType->eMAID.charactersLen, iso1CertificateUpdateReqType->eMAID.characters, iso1CertificateUpdateReqType_eMAID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 18; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 18: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1ListOfRootCertificateIDsType(stream, &iso1CertificateUpdateReqType->ListOfRootCertificateIDs); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int decode_iso1SignatureValueType(bitstream_t* stream, struct iso1SignatureValueType* iso1SignatureValueType) { + int grammarID = 126; + int done = 0; + + init_iso1SignatureValueType(iso1SignatureValueType); + + while(!done) { + switch(grammarID) { + case 126: + /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1SignatureValueType->Id.charactersLen); + if (errn == 0) { + if (iso1SignatureValueType->Id.charactersLen >= 2) { + iso1SignatureValueType->Id.charactersLen = (uint16_t)(iso1SignatureValueType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1SignatureValueType->Id.charactersLen, iso1SignatureValueType->Id.characters, iso1SignatureValueType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1SignatureValueType->Id_isUsed = 1u; + grammarID = 24; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso1SignatureValueType->CONTENT.bytesLen); + if (errn == 0) { + errn = (iso1SignatureValueType->CONTENT.bytesLen) <= iso1SignatureValueType_CONTENT_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1SignatureValueType->CONTENT.bytesLen, iso1SignatureValueType->CONTENT.bytes); + } + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 24: + /* StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1SignatureValueType->CONTENT.bytesLen); + if (errn == 0) { + errn = (iso1SignatureValueType->CONTENT.bytesLen) <= iso1SignatureValueType_CONTENT_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1SignatureValueType->CONTENT.bytesLen, iso1SignatureValueType->CONTENT.bytes); + } + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentDetailsReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain)', derivedBy='EXTENSION'. */ +static int decode_iso1PaymentDetailsReqType(bitstream_t* stream, struct iso1PaymentDetailsReqType* iso1PaymentDetailsReqType) { + int grammarID = 127; + int done = 0; + + init_iso1PaymentDetailsReqType(iso1PaymentDetailsReqType); + + while(!done) { + switch(grammarID) { + case 127: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1PaymentDetailsReqType->eMAID.charactersLen); + if (errn == 0) { + if (iso1PaymentDetailsReqType->eMAID.charactersLen >= 2) { + iso1PaymentDetailsReqType->eMAID.charactersLen = (uint16_t)(iso1PaymentDetailsReqType->eMAID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1PaymentDetailsReqType->eMAID.charactersLen, iso1PaymentDetailsReqType->eMAID.characters, iso1PaymentDetailsReqType_eMAID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 128; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 128: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1CertificateChainType(stream, &iso1PaymentDetailsReqType->ContractSignatureCertChain); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,AuthorizationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */ +static int decode_iso1AuthorizationResType(bitstream_t* stream, struct iso1AuthorizationResType* iso1AuthorizationResType) { + int grammarID = 129; + int done = 0; + + init_iso1AuthorizationResType(iso1AuthorizationResType); + + while(!done) { + switch(grammarID) { + case 129: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso1AuthorizationResType->ResponseCode = (iso1responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 130; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 130: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso1AuthorizationResType->EVSEProcessing = (iso1EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumPowerLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2013:MsgDataTypes":EVSEEnergyToBeDelivered{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso1DC_EVSEChargeParameterType(bitstream_t* stream, struct iso1DC_EVSEChargeParameterType* iso1DC_EVSEChargeParameterType) { + int grammarID = 131; + int done = 0; + + init_iso1DC_EVSEChargeParameterType(iso1DC_EVSEChargeParameterType); + + while(!done) { + switch(grammarID) { + case 131: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1DC_EVSEStatusType(stream, &iso1DC_EVSEChargeParameterType->DC_EVSEStatus); + grammarID = 132; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 132: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEMaximumCurrentLimit); + grammarID = 133; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 133: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEMaximumPowerLimit); + grammarID = 134; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 134: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEMaximumVoltageLimit); + grammarID = 135; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 135: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEMinimumCurrentLimit); + grammarID = 136; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 136: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEMinimumVoltageLimit); + grammarID = 137; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 137: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSECurrentRegulationTolerance); + iso1DC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed = 1u; + grammarID = 138; + break; + case 1: + errn = decode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEPeakCurrentRipple); + grammarID = 139; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 138: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEPeakCurrentRipple); + grammarID = 139; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 139: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEEnergyToBeDelivered); + iso1DC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SubCertificatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate{1-4})', derivedBy='RESTRICTION'. */ +static int decode_iso1SubCertificatesType(bitstream_t* stream, struct iso1SubCertificatesType* iso1SubCertificatesType) { + int grammarID = 140; + int done = 0; + + init_iso1SubCertificatesType(iso1SubCertificatesType); + + while(!done) { + switch(grammarID) { + case 140: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SubCertificatesType->Certificate.arrayLen < iso1SubCertificatesType_Certificate_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType->Certificate.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType->Certificate.arrayLen].bytesLen) <= iso1SubCertificatesType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType->Certificate.arrayLen].bytesLen, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType->Certificate.arrayLen].bytes); + } + iso1SubCertificatesType->Certificate.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 141; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 141: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SubCertificatesType->Certificate.arrayLen < iso1SubCertificatesType_Certificate_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType->Certificate.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType->Certificate.arrayLen].bytesLen) <= iso1SubCertificatesType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType->Certificate.arrayLen].bytesLen, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType->Certificate.arrayLen].bytes); + } + iso1SubCertificatesType->Certificate.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 142; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 142: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SubCertificatesType->Certificate.arrayLen < iso1SubCertificatesType_Certificate_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType->Certificate.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType->Certificate.arrayLen].bytesLen) <= iso1SubCertificatesType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType->Certificate.arrayLen].bytesLen, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType->Certificate.arrayLen].bytes); + } + iso1SubCertificatesType->Certificate.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 143; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 143: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SubCertificatesType->Certificate.arrayLen < iso1SubCertificatesType_Certificate_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType->Certificate.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType->Certificate.arrayLen].bytesLen) <= iso1SubCertificatesType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType->Certificate.arrayLen].bytesLen, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType->Certificate.arrayLen].bytes); + } + iso1SubCertificatesType->Certificate.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargingStatusResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":EVSEMaxCurrent{0-1},"urn:iso:15118:2:2013:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2013:MsgBody":ReceiptRequired{0-1},"urn:iso:15118:2:2013:MsgBody":AC_EVSEStatus)', derivedBy='EXTENSION'. */ +static int decode_iso1ChargingStatusResType(bitstream_t* stream, struct iso1ChargingStatusResType* iso1ChargingStatusResType) { + int grammarID = 144; + int done = 0; + + init_iso1ChargingStatusResType(iso1ChargingStatusResType); + + while(!done) { + switch(grammarID) { + case 144: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso1ChargingStatusResType->ResponseCode = (iso1responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 145; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 145: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1ChargingStatusResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso1ChargingStatusResType->EVSEID.charactersLen >= 2) { + iso1ChargingStatusResType->EVSEID.charactersLen = (uint16_t)(iso1ChargingStatusResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ChargingStatusResType->EVSEID.charactersLen, iso1ChargingStatusResType->EVSEID.characters, iso1ChargingStatusResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 146; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 146: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso1ChargingStatusResType->SAScheduleTupleID = (uint8_t)(uint32 + 1); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 147; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 147: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1ChargingStatusResType->EVSEMaxCurrent); + iso1ChargingStatusResType->EVSEMaxCurrent_isUsed = 1u; + grammarID = 148; + break; + case 1: + errn = decode_iso1MeterInfoType(stream, &iso1ChargingStatusResType->MeterInfo); + iso1ChargingStatusResType->MeterInfo_isUsed = 1u; + grammarID = 149; + break; + case 2: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1ChargingStatusResType->ReceiptRequired); + iso1ChargingStatusResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 150; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + errn = decode_iso1AC_EVSEStatusType(stream, &iso1ChargingStatusResType->AC_EVSEStatus); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 148: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1MeterInfoType(stream, &iso1ChargingStatusResType->MeterInfo); + iso1ChargingStatusResType->MeterInfo_isUsed = 1u; + grammarID = 149; + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1ChargingStatusResType->ReceiptRequired); + iso1ChargingStatusResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 150; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + errn = decode_iso1AC_EVSEStatusType(stream, &iso1ChargingStatusResType->AC_EVSEStatus); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 149: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1ChargingStatusResType->ReceiptRequired); + iso1ChargingStatusResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 150; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_iso1AC_EVSEStatusType(stream, &iso1ChargingStatusResType->AC_EVSEStatus); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 150: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1AC_EVSEStatusType(stream, &iso1ChargingStatusResType->AC_EVSEStatus); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso1DSAKeyValueType(bitstream_t* stream, struct iso1DSAKeyValueType* iso1DSAKeyValueType) { + int grammarID = 151; + int done = 0; + + init_iso1DSAKeyValueType(iso1DSAKeyValueType); + + while(!done) { + switch(grammarID) { + case 151: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1DSAKeyValueType->P.bytesLen); + if (errn == 0) { + errn = (iso1DSAKeyValueType->P.bytesLen) <= iso1DSAKeyValueType_P_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1DSAKeyValueType->P.bytesLen, iso1DSAKeyValueType->P.bytes); + } + iso1DSAKeyValueType->P_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 152; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1DSAKeyValueType->G.bytesLen); + if (errn == 0) { + errn = (iso1DSAKeyValueType->G.bytesLen) <= iso1DSAKeyValueType_G_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1DSAKeyValueType->G.bytesLen, iso1DSAKeyValueType->G.bytes); + } + iso1DSAKeyValueType->G_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 153; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1DSAKeyValueType->Y.bytesLen); + if (errn == 0) { + errn = (iso1DSAKeyValueType->Y.bytesLen) <= iso1DSAKeyValueType_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1DSAKeyValueType->Y.bytesLen, iso1DSAKeyValueType->Y.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 154; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 152: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1DSAKeyValueType->Q.bytesLen); + if (errn == 0) { + errn = (iso1DSAKeyValueType->Q.bytesLen) <= iso1DSAKeyValueType_Q_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1DSAKeyValueType->Q.bytesLen, iso1DSAKeyValueType->Q.bytes); + } + iso1DSAKeyValueType->Q_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 155; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 155: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1DSAKeyValueType->G.bytesLen); + if (errn == 0) { + errn = (iso1DSAKeyValueType->G.bytesLen) <= iso1DSAKeyValueType_G_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1DSAKeyValueType->G.bytesLen, iso1DSAKeyValueType->G.bytes); + } + iso1DSAKeyValueType->G_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 153; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1DSAKeyValueType->Y.bytesLen); + if (errn == 0) { + errn = (iso1DSAKeyValueType->Y.bytesLen) <= iso1DSAKeyValueType_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1DSAKeyValueType->Y.bytesLen, iso1DSAKeyValueType->Y.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 154; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 153: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1DSAKeyValueType->Y.bytesLen); + if (errn == 0) { + errn = (iso1DSAKeyValueType->Y.bytesLen) <= iso1DSAKeyValueType_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1DSAKeyValueType->Y.bytesLen, iso1DSAKeyValueType->Y.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 154; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 154: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1DSAKeyValueType->J.bytesLen); + if (errn == 0) { + errn = (iso1DSAKeyValueType->J.bytesLen) <= iso1DSAKeyValueType_J_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1DSAKeyValueType->J.bytesLen, iso1DSAKeyValueType->J.bytes); + } + iso1DSAKeyValueType->J_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 156; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1DSAKeyValueType->Seed.bytesLen); + if (errn == 0) { + errn = (iso1DSAKeyValueType->Seed.bytesLen) <= iso1DSAKeyValueType_Seed_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1DSAKeyValueType->Seed.bytesLen, iso1DSAKeyValueType->Seed.bytes); + } + iso1DSAKeyValueType->Seed_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 157; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 156: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1DSAKeyValueType->Seed.bytesLen); + if (errn == 0) { + errn = (iso1DSAKeyValueType->Seed.bytesLen) <= iso1DSAKeyValueType_Seed_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1DSAKeyValueType->Seed.bytesLen, iso1DSAKeyValueType->Seed.bytes); + } + iso1DSAKeyValueType->Seed_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 157; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 157: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1DSAKeyValueType->PgenCounter.bytesLen); + if (errn == 0) { + errn = (iso1DSAKeyValueType->PgenCounter.bytesLen) <= iso1DSAKeyValueType_PgenCounter_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1DSAKeyValueType->PgenCounter.bytesLen, iso1DSAKeyValueType->PgenCounter.bytes); + } + iso1DSAKeyValueType->PgenCounter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":RootCertificateID{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso1ListOfRootCertificateIDsType(bitstream_t* stream, struct iso1ListOfRootCertificateIDsType* iso1ListOfRootCertificateIDsType) { + int grammarID = 158; + int done = 0; + + init_iso1ListOfRootCertificateIDsType(iso1ListOfRootCertificateIDsType); + + while(!done) { + switch(grammarID) { + case 158: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso1ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso1X509IssuerSerialType(stream, &iso1ListOfRootCertificateIDsType->RootCertificateID.array[iso1ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 159; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 159: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso1ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso1X509IssuerSerialType(stream, &iso1ListOfRootCertificateIDsType->RootCertificateID.array[iso1ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 159; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ChargeServiceType', base type name='ServiceType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2013:MsgDataTypes":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FreeService),("urn:iso:15118:2:2013:MsgDataTypes":SupportedEnergyTransferMode))', derivedBy='EXTENSION'. */ +static int decode_iso1ChargeServiceType(bitstream_t* stream, struct iso1ChargeServiceType* iso1ChargeServiceType) { + int grammarID = 160; + int done = 0; + + init_iso1ChargeServiceType(iso1ChargeServiceType); + + while(!done) { + switch(grammarID) { + case 160: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1ChargeServiceType->ServiceID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 161; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 161: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1ChargeServiceType->ServiceName.charactersLen); + if (errn == 0) { + if (iso1ChargeServiceType->ServiceName.charactersLen >= 2) { + iso1ChargeServiceType->ServiceName.charactersLen = (uint16_t)(iso1ChargeServiceType->ServiceName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ChargeServiceType->ServiceName.charactersLen, iso1ChargeServiceType->ServiceName.characters, iso1ChargeServiceType_ServiceName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ChargeServiceType->ServiceName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 162; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso1ChargeServiceType->ServiceCategory = (iso1serviceCategoryType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 163; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 162: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso1ChargeServiceType->ServiceCategory = (iso1serviceCategoryType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 163; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 163: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1ChargeServiceType->ServiceScope.charactersLen); + if (errn == 0) { + if (iso1ChargeServiceType->ServiceScope.charactersLen >= 2) { + iso1ChargeServiceType->ServiceScope.charactersLen = (uint16_t)(iso1ChargeServiceType->ServiceScope.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ChargeServiceType->ServiceScope.charactersLen, iso1ChargeServiceType->ServiceScope.characters, iso1ChargeServiceType_ServiceScope_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ChargeServiceType->ServiceScope_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 164; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1ChargeServiceType->FreeService); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 165; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 164: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1ChargeServiceType->FreeService); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 165; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 165: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1SupportedEnergyTransferModeType(stream, &iso1ChargeServiceType->SupportedEnergyTransferMode); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_iso1IntervalType(bitstream_t* stream, struct iso1IntervalType* iso1IntervalType) { + int grammarID = 34; + int done = 0; + + init_iso1IntervalType(iso1IntervalType); + + while(!done) { + switch(grammarID) { + case 34: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,MeteringReceiptReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":SessionID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2013:MsgBody":MeterInfo)', derivedBy='EXTENSION'. */ +static int decode_iso1MeteringReceiptReqType(bitstream_t* stream, struct iso1MeteringReceiptReqType* iso1MeteringReceiptReqType) { + int grammarID = 166; + int done = 0; + + init_iso1MeteringReceiptReqType(iso1MeteringReceiptReqType); + + while(!done) { + switch(grammarID) { + case 166: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1MeteringReceiptReqType->Id.charactersLen); + if (errn == 0) { + if (iso1MeteringReceiptReqType->Id.charactersLen >= 2) { + iso1MeteringReceiptReqType->Id.charactersLen = (uint16_t)(iso1MeteringReceiptReqType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1MeteringReceiptReqType->Id.charactersLen, iso1MeteringReceiptReqType->Id.characters, iso1MeteringReceiptReqType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1MeteringReceiptReqType->Id_isUsed = 1u; + grammarID = 167; + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1MeteringReceiptReqType->SessionID.bytesLen); + if (errn == 0) { + errn = (iso1MeteringReceiptReqType->SessionID.bytesLen) <= iso1MeteringReceiptReqType_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1MeteringReceiptReqType->SessionID.bytesLen, iso1MeteringReceiptReqType->SessionID.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 168; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 167: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1MeteringReceiptReqType->SessionID.bytesLen); + if (errn == 0) { + errn = (iso1MeteringReceiptReqType->SessionID.bytesLen) <= iso1MeteringReceiptReqType_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1MeteringReceiptReqType->SessionID.bytesLen, iso1MeteringReceiptReqType->SessionID.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 168; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 168: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso1MeteringReceiptReqType->SAScheduleTupleID = (uint8_t)(uint32 + 1); + iso1MeteringReceiptReqType->SAScheduleTupleID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 169; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_iso1MeterInfoType(stream, &iso1MeteringReceiptReqType->MeterInfo); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 169: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1MeterInfoType(stream, &iso1MeteringReceiptReqType->MeterInfo); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDetailResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":ServiceID,"urn:iso:15118:2:2013:MsgBody":ServiceParameterList{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso1ServiceDetailResType(bitstream_t* stream, struct iso1ServiceDetailResType* iso1ServiceDetailResType) { + int grammarID = 170; + int done = 0; + + init_iso1ServiceDetailResType(iso1ServiceDetailResType); + + while(!done) { + switch(grammarID) { + case 170: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso1ServiceDetailResType->ResponseCode = (iso1responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 171; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 171: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1ServiceDetailResType->ServiceID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 172; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 172: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1ServiceParameterListType(stream, &iso1ServiceDetailResType->ServiceParameterList); + iso1ServiceDetailResType->ServiceParameterList_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */ +static int decode_iso1KeyValueType(bitstream_t* stream, struct iso1KeyValueType* iso1KeyValueType) { + int grammarID = 173; + int done = 0; + + init_iso1KeyValueType(iso1KeyValueType); + + while(!done) { + switch(grammarID) { + case 173: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1DSAKeyValueType(stream, &iso1KeyValueType->DSAKeyValue); + iso1KeyValueType->DSAKeyValue_isUsed = 1u; + grammarID = 174; + break; + case 1: + errn = decode_iso1RSAKeyValueType(stream, &iso1KeyValueType->RSAKeyValue); + iso1KeyValueType->RSAKeyValue_isUsed = 1u; + grammarID = 174; + break; + case 2: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 174; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &iso1KeyValueType->ANY.charactersLen); + if (errn == 0) { + if (iso1KeyValueType->ANY.charactersLen >= 2) { + iso1KeyValueType->ANY.charactersLen = (uint16_t)(iso1KeyValueType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1KeyValueType->ANY.charactersLen, iso1KeyValueType->ANY.characters, iso1KeyValueType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1KeyValueType->ANY_isUsed = 1u; + grammarID = 175; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 174: + /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso1KeyValueType->ANY.charactersLen); + if (errn == 0) { + if (iso1KeyValueType->ANY.charactersLen >= 2) { + iso1KeyValueType->ANY.charactersLen = (uint16_t)(iso1KeyValueType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1KeyValueType->ANY.charactersLen, iso1KeyValueType->ANY.characters, iso1KeyValueType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1KeyValueType->ANY_isUsed = 1u; + grammarID = 174; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 175: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1DSAKeyValueType(stream, &iso1KeyValueType->DSAKeyValue); + iso1KeyValueType->DSAKeyValue_isUsed = 1u; + grammarID = 174; + break; + case 1: + errn = decode_iso1RSAKeyValueType(stream, &iso1KeyValueType->RSAKeyValue); + iso1KeyValueType->RSAKeyValue_isUsed = 1u; + grammarID = 174; + break; + case 2: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 174; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &iso1KeyValueType->ANY.charactersLen); + if (errn == 0) { + if (iso1KeyValueType->ANY.charactersLen >= 2) { + iso1KeyValueType->ANY.charactersLen = (uint16_t)(iso1KeyValueType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1KeyValueType->ANY.charactersLen, iso1KeyValueType->ANY.characters, iso1KeyValueType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1KeyValueType->ANY_isUsed = 1u; + grammarID = 175; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SelectedServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SelectedService{1-16})', derivedBy='RESTRICTION'. */ +static int decode_iso1SelectedServiceListType(bitstream_t* stream, struct iso1SelectedServiceListType* iso1SelectedServiceListType) { + int grammarID = 176; + int done = 0; + + init_iso1SelectedServiceListType(iso1SelectedServiceListType); + + while(!done) { + switch(grammarID) { + case 176: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SelectedServiceListType->SelectedService.arrayLen < iso1SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array[iso1SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 177; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 177: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SelectedServiceListType->SelectedService.arrayLen < iso1SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array[iso1SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 178; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 178: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SelectedServiceListType->SelectedService.arrayLen < iso1SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array[iso1SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 179; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 179: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SelectedServiceListType->SelectedService.arrayLen < iso1SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array[iso1SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 180; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 180: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SelectedServiceListType->SelectedService.arrayLen < iso1SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array[iso1SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 181; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 181: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SelectedServiceListType->SelectedService.arrayLen < iso1SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array[iso1SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 182; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 182: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SelectedServiceListType->SelectedService.arrayLen < iso1SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array[iso1SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 183; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 183: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SelectedServiceListType->SelectedService.arrayLen < iso1SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array[iso1SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 184; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 184: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SelectedServiceListType->SelectedService.arrayLen < iso1SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array[iso1SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 185; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 185: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SelectedServiceListType->SelectedService.arrayLen < iso1SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array[iso1SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 186; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 186: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SelectedServiceListType->SelectedService.arrayLen < iso1SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array[iso1SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 187; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 187: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SelectedServiceListType->SelectedService.arrayLen < iso1SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array[iso1SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 188; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 188: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SelectedServiceListType->SelectedService.arrayLen < iso1SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array[iso1SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 189; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 189: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SelectedServiceListType->SelectedService.arrayLen < iso1SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array[iso1SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 190; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 190: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SelectedServiceListType->SelectedService.arrayLen < iso1SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array[iso1SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 191; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 191: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SelectedServiceListType->SelectedService.arrayLen < iso1SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array[iso1SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CableCheckResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */ +static int decode_iso1CableCheckResType(bitstream_t* stream, struct iso1CableCheckResType* iso1CableCheckResType) { + int grammarID = 192; + int done = 0; + + init_iso1CableCheckResType(iso1CableCheckResType); + + while(!done) { + switch(grammarID) { + case 192: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso1CableCheckResType->ResponseCode = (iso1responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 193; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 193: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1DC_EVSEStatusType(stream, &iso1CableCheckResType->DC_EVSEStatus); + grammarID = 130; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 130: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso1CableCheckResType->EVSEProcessing = (iso1EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */ +static int decode_iso1X509IssuerSerialType(bitstream_t* stream, struct iso1X509IssuerSerialType* iso1X509IssuerSerialType) { + int grammarID = 194; + int done = 0; + + init_iso1X509IssuerSerialType(iso1X509IssuerSerialType); + + while(!done) { + switch(grammarID) { + case 194: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1X509IssuerSerialType->X509IssuerName.charactersLen); + if (errn == 0) { + if (iso1X509IssuerSerialType->X509IssuerName.charactersLen >= 2) { + iso1X509IssuerSerialType->X509IssuerName.charactersLen = (uint16_t)(iso1X509IssuerSerialType->X509IssuerName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1X509IssuerSerialType->X509IssuerName.charactersLen, iso1X509IssuerSerialType->X509IssuerName.characters, iso1X509IssuerSerialType_X509IssuerName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 195; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 195: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeIntegerBig(stream, &iso1X509IssuerSerialType->X509SerialNumber.negative, iso1X509IssuerSerialType_X509SerialNumber_BYTES_SIZE, iso1X509IssuerSerialType->X509SerialNumber.data, &iso1X509IssuerSerialType->X509SerialNumber.len); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_iso1KeyInfoType(bitstream_t* stream, struct iso1KeyInfoType* iso1KeyInfoType) { + int grammarID = 196; + int done = 0; + + init_iso1KeyInfoType(iso1KeyInfoType); + + while(!done) { + switch(grammarID) { + case 196: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1KeyInfoType->Id.charactersLen); + if (errn == 0) { + if (iso1KeyInfoType->Id.charactersLen >= 2) { + iso1KeyInfoType->Id.charactersLen = (uint16_t)(iso1KeyInfoType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1KeyInfoType->Id.charactersLen, iso1KeyInfoType->Id.characters, iso1KeyInfoType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1KeyInfoType->Id_isUsed = 1u; + grammarID = 197; + break; + case 1: + if (iso1KeyInfoType->KeyName.arrayLen < iso1KeyInfoType_KeyName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen); + if (errn == 0) { + if (iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen >= 2) { + iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen, iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].characters, iso1KeyInfoType_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1KeyInfoType->KeyName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 198; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + if (iso1KeyInfoType->KeyValue.arrayLen < iso1KeyInfoType_KeyValue_ARRAY_SIZE) { + errn = decode_iso1KeyValueType(stream, &iso1KeyInfoType->KeyValue.array[iso1KeyInfoType->KeyValue.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 3: + if (iso1KeyInfoType->RetrievalMethod.arrayLen < iso1KeyInfoType_RetrievalMethod_ARRAY_SIZE) { + errn = decode_iso1RetrievalMethodType(stream, &iso1KeyInfoType->RetrievalMethod.array[iso1KeyInfoType->RetrievalMethod.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 4: + if (iso1KeyInfoType->X509Data.arrayLen < iso1KeyInfoType_X509Data_ARRAY_SIZE) { + errn = decode_iso1X509DataType(stream, &iso1KeyInfoType->X509Data.array[iso1KeyInfoType->X509Data.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 5: + if (iso1KeyInfoType->PGPData.arrayLen < iso1KeyInfoType_PGPData_ARRAY_SIZE) { + errn = decode_iso1PGPDataType(stream, &iso1KeyInfoType->PGPData.array[iso1KeyInfoType->PGPData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 6: + if (iso1KeyInfoType->SPKIData.arrayLen < iso1KeyInfoType_SPKIData_ARRAY_SIZE) { + errn = decode_iso1SPKIDataType(stream, &iso1KeyInfoType->SPKIData.array[iso1KeyInfoType->SPKIData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 7: + if (iso1KeyInfoType->MgmtData.arrayLen < iso1KeyInfoType_MgmtData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen); + if (errn == 0) { + if (iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen >= 2) { + iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].characters, iso1KeyInfoType_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1KeyInfoType->MgmtData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 198; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 8: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 198; + break; + case 9: + errn = decodeUnsignedInteger16(stream, &iso1KeyInfoType->ANY.charactersLen); + if (errn == 0) { + if (iso1KeyInfoType->ANY.charactersLen >= 2) { + iso1KeyInfoType->ANY.charactersLen = (uint16_t)(iso1KeyInfoType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1KeyInfoType->ANY.charactersLen, iso1KeyInfoType->ANY.characters, iso1KeyInfoType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1KeyInfoType->ANY_isUsed = 1u; + grammarID = 199; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 197: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1KeyInfoType->KeyName.arrayLen < iso1KeyInfoType_KeyName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen); + if (errn == 0) { + if (iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen >= 2) { + iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen, iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].characters, iso1KeyInfoType_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1KeyInfoType->KeyName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 198; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + if (iso1KeyInfoType->KeyValue.arrayLen < iso1KeyInfoType_KeyValue_ARRAY_SIZE) { + errn = decode_iso1KeyValueType(stream, &iso1KeyInfoType->KeyValue.array[iso1KeyInfoType->KeyValue.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 2: + if (iso1KeyInfoType->RetrievalMethod.arrayLen < iso1KeyInfoType_RetrievalMethod_ARRAY_SIZE) { + errn = decode_iso1RetrievalMethodType(stream, &iso1KeyInfoType->RetrievalMethod.array[iso1KeyInfoType->RetrievalMethod.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 3: + if (iso1KeyInfoType->X509Data.arrayLen < iso1KeyInfoType_X509Data_ARRAY_SIZE) { + errn = decode_iso1X509DataType(stream, &iso1KeyInfoType->X509Data.array[iso1KeyInfoType->X509Data.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 4: + if (iso1KeyInfoType->PGPData.arrayLen < iso1KeyInfoType_PGPData_ARRAY_SIZE) { + errn = decode_iso1PGPDataType(stream, &iso1KeyInfoType->PGPData.array[iso1KeyInfoType->PGPData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 5: + if (iso1KeyInfoType->SPKIData.arrayLen < iso1KeyInfoType_SPKIData_ARRAY_SIZE) { + errn = decode_iso1SPKIDataType(stream, &iso1KeyInfoType->SPKIData.array[iso1KeyInfoType->SPKIData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 6: + if (iso1KeyInfoType->MgmtData.arrayLen < iso1KeyInfoType_MgmtData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen); + if (errn == 0) { + if (iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen >= 2) { + iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].characters, iso1KeyInfoType_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1KeyInfoType->MgmtData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 198; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 7: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 198; + break; + case 8: + errn = decodeUnsignedInteger16(stream, &iso1KeyInfoType->ANY.charactersLen); + if (errn == 0) { + if (iso1KeyInfoType->ANY.charactersLen >= 2) { + iso1KeyInfoType->ANY.charactersLen = (uint16_t)(iso1KeyInfoType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1KeyInfoType->ANY.charactersLen, iso1KeyInfoType->ANY.characters, iso1KeyInfoType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1KeyInfoType->ANY_isUsed = 1u; + grammarID = 199; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 198: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1KeyInfoType->KeyName.arrayLen < iso1KeyInfoType_KeyName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen); + if (errn == 0) { + if (iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen >= 2) { + iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen, iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].characters, iso1KeyInfoType_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1KeyInfoType->KeyName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 198; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + if (iso1KeyInfoType->KeyValue.arrayLen < iso1KeyInfoType_KeyValue_ARRAY_SIZE) { + errn = decode_iso1KeyValueType(stream, &iso1KeyInfoType->KeyValue.array[iso1KeyInfoType->KeyValue.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 2: + if (iso1KeyInfoType->RetrievalMethod.arrayLen < iso1KeyInfoType_RetrievalMethod_ARRAY_SIZE) { + errn = decode_iso1RetrievalMethodType(stream, &iso1KeyInfoType->RetrievalMethod.array[iso1KeyInfoType->RetrievalMethod.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 3: + if (iso1KeyInfoType->X509Data.arrayLen < iso1KeyInfoType_X509Data_ARRAY_SIZE) { + errn = decode_iso1X509DataType(stream, &iso1KeyInfoType->X509Data.array[iso1KeyInfoType->X509Data.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 4: + if (iso1KeyInfoType->PGPData.arrayLen < iso1KeyInfoType_PGPData_ARRAY_SIZE) { + errn = decode_iso1PGPDataType(stream, &iso1KeyInfoType->PGPData.array[iso1KeyInfoType->PGPData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 5: + if (iso1KeyInfoType->SPKIData.arrayLen < iso1KeyInfoType_SPKIData_ARRAY_SIZE) { + errn = decode_iso1SPKIDataType(stream, &iso1KeyInfoType->SPKIData.array[iso1KeyInfoType->SPKIData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 6: + if (iso1KeyInfoType->MgmtData.arrayLen < iso1KeyInfoType_MgmtData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen); + if (errn == 0) { + if (iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen >= 2) { + iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].characters, iso1KeyInfoType_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1KeyInfoType->MgmtData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 198; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 7: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 198; + break; + case 8: + done = 1; + grammarID = 4; + break; + case 9: + errn = decodeUnsignedInteger16(stream, &iso1KeyInfoType->ANY.charactersLen); + if (errn == 0) { + if (iso1KeyInfoType->ANY.charactersLen >= 2) { + iso1KeyInfoType->ANY.charactersLen = (uint16_t)(iso1KeyInfoType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1KeyInfoType->ANY.charactersLen, iso1KeyInfoType->ANY.characters, iso1KeyInfoType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1KeyInfoType->ANY_isUsed = 1u; + grammarID = 198; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 199: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1KeyInfoType->KeyName.arrayLen < iso1KeyInfoType_KeyName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen); + if (errn == 0) { + if (iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen >= 2) { + iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].charactersLen, iso1KeyInfoType->KeyName.array[iso1KeyInfoType->KeyName.arrayLen].characters, iso1KeyInfoType_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1KeyInfoType->KeyName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 198; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + if (iso1KeyInfoType->KeyValue.arrayLen < iso1KeyInfoType_KeyValue_ARRAY_SIZE) { + errn = decode_iso1KeyValueType(stream, &iso1KeyInfoType->KeyValue.array[iso1KeyInfoType->KeyValue.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 2: + if (iso1KeyInfoType->RetrievalMethod.arrayLen < iso1KeyInfoType_RetrievalMethod_ARRAY_SIZE) { + errn = decode_iso1RetrievalMethodType(stream, &iso1KeyInfoType->RetrievalMethod.array[iso1KeyInfoType->RetrievalMethod.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 3: + if (iso1KeyInfoType->X509Data.arrayLen < iso1KeyInfoType_X509Data_ARRAY_SIZE) { + errn = decode_iso1X509DataType(stream, &iso1KeyInfoType->X509Data.array[iso1KeyInfoType->X509Data.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 4: + if (iso1KeyInfoType->PGPData.arrayLen < iso1KeyInfoType_PGPData_ARRAY_SIZE) { + errn = decode_iso1PGPDataType(stream, &iso1KeyInfoType->PGPData.array[iso1KeyInfoType->PGPData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 5: + if (iso1KeyInfoType->SPKIData.arrayLen < iso1KeyInfoType_SPKIData_ARRAY_SIZE) { + errn = decode_iso1SPKIDataType(stream, &iso1KeyInfoType->SPKIData.array[iso1KeyInfoType->SPKIData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 6: + if (iso1KeyInfoType->MgmtData.arrayLen < iso1KeyInfoType_MgmtData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen); + if (errn == 0) { + if (iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen >= 2) { + iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].charactersLen, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType->MgmtData.arrayLen].characters, iso1KeyInfoType_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1KeyInfoType->MgmtData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 198; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 7: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 198; + break; + case 8: + errn = decodeUnsignedInteger16(stream, &iso1KeyInfoType->ANY.charactersLen); + if (errn == 0) { + if (iso1KeyInfoType->ANY.charactersLen >= 2) { + iso1KeyInfoType->ANY.charactersLen = (uint16_t)(iso1KeyInfoType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1KeyInfoType->ANY.charactersLen, iso1KeyInfoType->ANY.characters, iso1KeyInfoType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1KeyInfoType->ANY_isUsed = 1u; + grammarID = 199; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso1TransformsType(bitstream_t* stream, struct iso1TransformsType* iso1TransformsType) { + int grammarID = 200; + int done = 0; + + init_iso1TransformsType(iso1TransformsType); + + while(!done) { + switch(grammarID) { + case 200: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1TransformsType->Transform.arrayLen < iso1TransformsType_Transform_ARRAY_SIZE) { + errn = decode_iso1TransformType(stream, &iso1TransformsType->Transform.array[iso1TransformsType->Transform.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 201; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 201: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1TransformsType->Transform.arrayLen < iso1TransformsType_Transform_ARRAY_SIZE) { + errn = decode_iso1TransformType(stream, &iso1TransformsType->Transform.array[iso1TransformsType->Transform.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 201; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargeParameterDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":MaxEntriesSAScheduleTuple{0-1},"urn:iso:15118:2:2013:MsgBody":RequestedEnergyTransferMode,"urn:iso:15118:2:2013:MsgDataTypes":EVChargeParameter)', derivedBy='EXTENSION'. */ +static int decode_iso1ChargeParameterDiscoveryReqType(bitstream_t* stream, struct iso1ChargeParameterDiscoveryReqType* iso1ChargeParameterDiscoveryReqType) { + int grammarID = 202; + int done = 0; + + init_iso1ChargeParameterDiscoveryReqType(iso1ChargeParameterDiscoveryReqType); + + while(!done) { + switch(grammarID) { + case 202: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1ChargeParameterDiscoveryReqType->MaxEntriesSAScheduleTuple); + iso1ChargeParameterDiscoveryReqType->MaxEntriesSAScheduleTuple_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 203; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &uint32); + iso1ChargeParameterDiscoveryReqType->RequestedEnergyTransferMode = (iso1EnergyTransferModeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 204; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 203: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &uint32); + iso1ChargeParameterDiscoveryReqType->RequestedEnergyTransferMode = (iso1EnergyTransferModeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 204; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 204: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1AC_EVChargeParameterType(stream, &iso1ChargeParameterDiscoveryReqType->AC_EVChargeParameter); + iso1ChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed = 1u; + grammarID = 3; + break; + case 1: + errn = decode_iso1DC_EVChargeParameterType(stream, &iso1ChargeParameterDiscoveryReqType->DC_EVChargeParameter); + iso1ChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed = 1u; + grammarID = 3; + break; + case 2: + errn = decode_iso1EVChargeParameterType(stream, &iso1ChargeParameterDiscoveryReqType->EVChargeParameter); + iso1ChargeParameterDiscoveryReqType->EVChargeParameter_isUsed = 1u; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PreChargeReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus,"urn:iso:15118:2:2013:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2013:MsgBody":EVTargetCurrent)', derivedBy='EXTENSION'. */ +static int decode_iso1PreChargeReqType(bitstream_t* stream, struct iso1PreChargeReqType* iso1PreChargeReqType) { + int grammarID = 205; + int done = 0; + + init_iso1PreChargeReqType(iso1PreChargeReqType); + + while(!done) { + switch(grammarID) { + case 205: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1DC_EVStatusType(stream, &iso1PreChargeReqType->DC_EVStatus); + grammarID = 206; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 206: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1PreChargeReqType->EVTargetVoltage); + grammarID = 207; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 207: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1PreChargeReqType->EVTargetCurrent); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ +static int decode_iso1EVSEStatusType(bitstream_t* stream, struct iso1EVSEStatusType* iso1EVSEStatusType) { + int grammarID = 208; + int done = 0; + + init_iso1EVSEStatusType(iso1EVSEStatusType); + + while(!done) { + switch(grammarID) { + case 208: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1EVSEStatusType->NotificationMaxDelay); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 209; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 209: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso1EVSEStatusType->EVSENotification = (iso1EVSENotificationType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso1SignatureMethodType(bitstream_t* stream, struct iso1SignatureMethodType* iso1SignatureMethodType) { + int grammarID = 210; + int done = 0; + + init_iso1SignatureMethodType(iso1SignatureMethodType); + + while(!done) { + switch(grammarID) { + case 210: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1SignatureMethodType->Algorithm.charactersLen); + if (errn == 0) { + if (iso1SignatureMethodType->Algorithm.charactersLen >= 2) { + iso1SignatureMethodType->Algorithm.charactersLen = (uint16_t)(iso1SignatureMethodType->Algorithm.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1SignatureMethodType->Algorithm.charactersLen, iso1SignatureMethodType->Algorithm.characters, iso1SignatureMethodType_Algorithm_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 211; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 211: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &iso1SignatureMethodType->HMACOutputLength); + iso1SignatureMethodType->HMACOutputLength_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 116; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 116; + break; + case 2: + done = 1; + grammarID = 4; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &iso1SignatureMethodType->ANY.charactersLen); + if (errn == 0) { + if (iso1SignatureMethodType->ANY.charactersLen >= 2) { + iso1SignatureMethodType->ANY.charactersLen = (uint16_t)(iso1SignatureMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1SignatureMethodType->ANY.charactersLen, iso1SignatureMethodType->ANY.characters, iso1SignatureMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1SignatureMethodType->ANY_isUsed = 1u; + grammarID = 212; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 116: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 116; + break; + case 1: + done = 1; + grammarID = 4; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso1SignatureMethodType->ANY.charactersLen); + if (errn == 0) { + if (iso1SignatureMethodType->ANY.charactersLen >= 2) { + iso1SignatureMethodType->ANY.charactersLen = (uint16_t)(iso1SignatureMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1SignatureMethodType->ANY.charactersLen, iso1SignatureMethodType->ANY.characters, iso1SignatureMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1SignatureMethodType->ANY_isUsed = 1u; + grammarID = 116; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 212: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &iso1SignatureMethodType->HMACOutputLength); + iso1SignatureMethodType->HMACOutputLength_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 116; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 116; + break; + case 2: + done = 1; + grammarID = 4; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &iso1SignatureMethodType->ANY.charactersLen); + if (errn == 0) { + if (iso1SignatureMethodType->ANY.charactersLen >= 2) { + iso1SignatureMethodType->ANY.charactersLen = (uint16_t)(iso1SignatureMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1SignatureMethodType->ANY.charactersLen, iso1SignatureMethodType->ANY.characters, iso1SignatureMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1SignatureMethodType->ANY_isUsed = 1u; + grammarID = 212; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_iso1X509DataType(bitstream_t* stream, struct iso1X509DataType* iso1X509DataType) { + int grammarID = 213; + int done = 0; + + init_iso1X509DataType(iso1X509DataType); + + while(!done) { + switch(grammarID) { + case 213: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1X509DataType->X509IssuerSerial.arrayLen < iso1X509DataType_X509IssuerSerial_ARRAY_SIZE) { + errn = decode_iso1X509IssuerSerialType(stream, &iso1X509DataType->X509IssuerSerial.array[iso1X509DataType->X509IssuerSerial.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 214; + break; + case 1: + if (iso1X509DataType->X509SKI.arrayLen < iso1X509DataType_X509SKI_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1X509DataType->X509SKI.array[iso1X509DataType->X509SKI.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso1X509DataType->X509SKI.array[iso1X509DataType->X509SKI.arrayLen].bytesLen) <= iso1X509DataType_X509SKI_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1X509DataType->X509SKI.array[iso1X509DataType->X509SKI.arrayLen].bytesLen, iso1X509DataType->X509SKI.array[iso1X509DataType->X509SKI.arrayLen].bytes); + } + iso1X509DataType->X509SKI.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 214; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + if (iso1X509DataType->X509SubjectName.arrayLen < iso1X509DataType_X509SubjectName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1X509DataType->X509SubjectName.array[iso1X509DataType->X509SubjectName.arrayLen].charactersLen); + if (errn == 0) { + if (iso1X509DataType->X509SubjectName.array[iso1X509DataType->X509SubjectName.arrayLen].charactersLen >= 2) { + iso1X509DataType->X509SubjectName.array[iso1X509DataType->X509SubjectName.arrayLen].charactersLen = (uint16_t)(iso1X509DataType->X509SubjectName.array[iso1X509DataType->X509SubjectName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1X509DataType->X509SubjectName.array[iso1X509DataType->X509SubjectName.arrayLen].charactersLen, iso1X509DataType->X509SubjectName.array[iso1X509DataType->X509SubjectName.arrayLen].characters, iso1X509DataType_X509SubjectName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1X509DataType->X509SubjectName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 214; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + if (iso1X509DataType->X509Certificate.arrayLen < iso1X509DataType_X509Certificate_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1X509DataType->X509Certificate.array[iso1X509DataType->X509Certificate.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso1X509DataType->X509Certificate.array[iso1X509DataType->X509Certificate.arrayLen].bytesLen) <= iso1X509DataType_X509Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1X509DataType->X509Certificate.array[iso1X509DataType->X509Certificate.arrayLen].bytesLen, iso1X509DataType->X509Certificate.array[iso1X509DataType->X509Certificate.arrayLen].bytes); + } + iso1X509DataType->X509Certificate.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 214; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + if (iso1X509DataType->X509CRL.arrayLen < iso1X509DataType_X509CRL_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1X509DataType->X509CRL.array[iso1X509DataType->X509CRL.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso1X509DataType->X509CRL.array[iso1X509DataType->X509CRL.arrayLen].bytesLen) <= iso1X509DataType_X509CRL_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1X509DataType->X509CRL.array[iso1X509DataType->X509CRL.arrayLen].bytesLen, iso1X509DataType->X509CRL.array[iso1X509DataType->X509CRL.arrayLen].bytes); + } + iso1X509DataType->X509CRL.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 214; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 214; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 214: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1X509DataType->X509IssuerSerial.arrayLen < iso1X509DataType_X509IssuerSerial_ARRAY_SIZE) { + errn = decode_iso1X509IssuerSerialType(stream, &iso1X509DataType->X509IssuerSerial.array[iso1X509DataType->X509IssuerSerial.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 214; + break; + case 1: + if (iso1X509DataType->X509SKI.arrayLen < iso1X509DataType_X509SKI_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1X509DataType->X509SKI.array[iso1X509DataType->X509SKI.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso1X509DataType->X509SKI.array[iso1X509DataType->X509SKI.arrayLen].bytesLen) <= iso1X509DataType_X509SKI_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1X509DataType->X509SKI.array[iso1X509DataType->X509SKI.arrayLen].bytesLen, iso1X509DataType->X509SKI.array[iso1X509DataType->X509SKI.arrayLen].bytes); + } + iso1X509DataType->X509SKI.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 214; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + if (iso1X509DataType->X509SubjectName.arrayLen < iso1X509DataType_X509SubjectName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1X509DataType->X509SubjectName.array[iso1X509DataType->X509SubjectName.arrayLen].charactersLen); + if (errn == 0) { + if (iso1X509DataType->X509SubjectName.array[iso1X509DataType->X509SubjectName.arrayLen].charactersLen >= 2) { + iso1X509DataType->X509SubjectName.array[iso1X509DataType->X509SubjectName.arrayLen].charactersLen = (uint16_t)(iso1X509DataType->X509SubjectName.array[iso1X509DataType->X509SubjectName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1X509DataType->X509SubjectName.array[iso1X509DataType->X509SubjectName.arrayLen].charactersLen, iso1X509DataType->X509SubjectName.array[iso1X509DataType->X509SubjectName.arrayLen].characters, iso1X509DataType_X509SubjectName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1X509DataType->X509SubjectName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 214; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + if (iso1X509DataType->X509Certificate.arrayLen < iso1X509DataType_X509Certificate_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1X509DataType->X509Certificate.array[iso1X509DataType->X509Certificate.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso1X509DataType->X509Certificate.array[iso1X509DataType->X509Certificate.arrayLen].bytesLen) <= iso1X509DataType_X509Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1X509DataType->X509Certificate.array[iso1X509DataType->X509Certificate.arrayLen].bytesLen, iso1X509DataType->X509Certificate.array[iso1X509DataType->X509Certificate.arrayLen].bytes); + } + iso1X509DataType->X509Certificate.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 214; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + if (iso1X509DataType->X509CRL.arrayLen < iso1X509DataType_X509CRL_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1X509DataType->X509CRL.array[iso1X509DataType->X509CRL.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso1X509DataType->X509CRL.array[iso1X509DataType->X509CRL.arrayLen].bytesLen) <= iso1X509DataType_X509CRL_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1X509DataType->X509CRL.array[iso1X509DataType->X509CRL.arrayLen].bytesLen, iso1X509DataType->X509CRL.array[iso1X509DataType->X509CRL.arrayLen].bytes); + } + iso1X509DataType->X509CRL.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 214; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 214; + break; + case 6: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,NotificationType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":FaultCode,"urn:iso:15118:2:2013:MsgDataTypes":FaultMsg{0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso1NotificationType(bitstream_t* stream, struct iso1NotificationType* iso1NotificationType) { + int grammarID = 215; + int done = 0; + + init_iso1NotificationType(iso1NotificationType); + + while(!done) { + switch(grammarID) { + case 215: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso1NotificationType->FaultCode = (iso1faultCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 216; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 216: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1NotificationType->FaultMsg.charactersLen); + if (errn == 0) { + if (iso1NotificationType->FaultMsg.charactersLen >= 2) { + iso1NotificationType->FaultMsg.charactersLen = (uint16_t)(iso1NotificationType->FaultMsg.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1NotificationType->FaultMsg.charactersLen, iso1NotificationType->FaultMsg.characters, iso1NotificationType_FaultMsg_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1NotificationType->FaultMsg_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SAScheduleListType', base type name='SASchedulesType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTuple{1-3})', derivedBy='EXTENSION'. */ +static int decode_iso1SAScheduleListType(bitstream_t* stream, struct iso1SAScheduleListType* iso1SAScheduleListType) { + int grammarID = 217; + int done = 0; + + init_iso1SAScheduleListType(iso1SAScheduleListType); + + while(!done) { + switch(grammarID) { + case 217: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SAScheduleListType->SAScheduleTuple.arrayLen < iso1SAScheduleListType_SAScheduleTuple_ARRAY_SIZE) { + errn = decode_iso1SAScheduleTupleType(stream, &iso1SAScheduleListType->SAScheduleTuple.array[iso1SAScheduleListType->SAScheduleTuple.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 218; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 218: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SAScheduleListType->SAScheduleTuple.arrayLen < iso1SAScheduleListType_SAScheduleTuple_ARRAY_SIZE) { + errn = decode_iso1SAScheduleTupleType(stream, &iso1SAScheduleListType->SAScheduleTuple.array[iso1SAScheduleListType->SAScheduleTuple.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 219; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 219: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SAScheduleListType->SAScheduleTuple.arrayLen < iso1SAScheduleListType_SAScheduleTuple_ARRAY_SIZE) { + errn = decode_iso1SAScheduleTupleType(stream, &iso1SAScheduleListType->SAScheduleTuple.array[iso1SAScheduleListType->SAScheduleTuple.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,BodyType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":BodyElement{0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso1BodyType(bitstream_t* stream, struct iso1BodyType* iso1BodyType) { + int grammarID = 220; + int done = 0; + + init_iso1BodyType(iso1BodyType); + + while(!done) { + switch(grammarID) { + case 220: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 6, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1AuthorizationReqType(stream, &iso1BodyType->AuthorizationReq); + iso1BodyType->AuthorizationReq_isUsed = 1u; + grammarID = 3; + break; + case 1: + errn = decode_iso1AuthorizationResType(stream, &iso1BodyType->AuthorizationRes); + iso1BodyType->AuthorizationRes_isUsed = 1u; + grammarID = 3; + break; + case 2: + errn = decode_iso1BodyBaseType(stream, &iso1BodyType->BodyElement); + iso1BodyType->BodyElement_isUsed = 1u; + grammarID = 3; + break; + case 3: + errn = decode_iso1CableCheckReqType(stream, &iso1BodyType->CableCheckReq); + iso1BodyType->CableCheckReq_isUsed = 1u; + grammarID = 3; + break; + case 4: + errn = decode_iso1CableCheckResType(stream, &iso1BodyType->CableCheckRes); + iso1BodyType->CableCheckRes_isUsed = 1u; + grammarID = 3; + break; + case 5: + errn = decode_iso1CertificateInstallationReqType(stream, &iso1BodyType->CertificateInstallationReq); + iso1BodyType->CertificateInstallationReq_isUsed = 1u; + grammarID = 3; + break; + case 6: + errn = decode_iso1CertificateInstallationResType(stream, &iso1BodyType->CertificateInstallationRes); + iso1BodyType->CertificateInstallationRes_isUsed = 1u; + grammarID = 3; + break; + case 7: + errn = decode_iso1CertificateUpdateReqType(stream, &iso1BodyType->CertificateUpdateReq); + iso1BodyType->CertificateUpdateReq_isUsed = 1u; + grammarID = 3; + break; + case 8: + errn = decode_iso1CertificateUpdateResType(stream, &iso1BodyType->CertificateUpdateRes); + iso1BodyType->CertificateUpdateRes_isUsed = 1u; + grammarID = 3; + break; + case 9: + errn = decode_iso1ChargeParameterDiscoveryReqType(stream, &iso1BodyType->ChargeParameterDiscoveryReq); + iso1BodyType->ChargeParameterDiscoveryReq_isUsed = 1u; + grammarID = 3; + break; + case 10: + errn = decode_iso1ChargeParameterDiscoveryResType(stream, &iso1BodyType->ChargeParameterDiscoveryRes); + iso1BodyType->ChargeParameterDiscoveryRes_isUsed = 1u; + grammarID = 3; + break; + case 11: + errn = decode_iso1ChargingStatusReqType(stream, &iso1BodyType->ChargingStatusReq); + iso1BodyType->ChargingStatusReq_isUsed = 1u; + grammarID = 3; + break; + case 12: + errn = decode_iso1ChargingStatusResType(stream, &iso1BodyType->ChargingStatusRes); + iso1BodyType->ChargingStatusRes_isUsed = 1u; + grammarID = 3; + break; + case 13: + errn = decode_iso1CurrentDemandReqType(stream, &iso1BodyType->CurrentDemandReq); + iso1BodyType->CurrentDemandReq_isUsed = 1u; + grammarID = 3; + break; + case 14: + errn = decode_iso1CurrentDemandResType(stream, &iso1BodyType->CurrentDemandRes); + iso1BodyType->CurrentDemandRes_isUsed = 1u; + grammarID = 3; + break; + case 15: + errn = decode_iso1MeteringReceiptReqType(stream, &iso1BodyType->MeteringReceiptReq); + iso1BodyType->MeteringReceiptReq_isUsed = 1u; + grammarID = 3; + break; + case 16: + errn = decode_iso1MeteringReceiptResType(stream, &iso1BodyType->MeteringReceiptRes); + iso1BodyType->MeteringReceiptRes_isUsed = 1u; + grammarID = 3; + break; + case 17: + errn = decode_iso1PaymentDetailsReqType(stream, &iso1BodyType->PaymentDetailsReq); + iso1BodyType->PaymentDetailsReq_isUsed = 1u; + grammarID = 3; + break; + case 18: + errn = decode_iso1PaymentDetailsResType(stream, &iso1BodyType->PaymentDetailsRes); + iso1BodyType->PaymentDetailsRes_isUsed = 1u; + grammarID = 3; + break; + case 19: + errn = decode_iso1PaymentServiceSelectionReqType(stream, &iso1BodyType->PaymentServiceSelectionReq); + iso1BodyType->PaymentServiceSelectionReq_isUsed = 1u; + grammarID = 3; + break; + case 20: + errn = decode_iso1PaymentServiceSelectionResType(stream, &iso1BodyType->PaymentServiceSelectionRes); + iso1BodyType->PaymentServiceSelectionRes_isUsed = 1u; + grammarID = 3; + break; + case 21: + errn = decode_iso1PowerDeliveryReqType(stream, &iso1BodyType->PowerDeliveryReq); + iso1BodyType->PowerDeliveryReq_isUsed = 1u; + grammarID = 3; + break; + case 22: + errn = decode_iso1PowerDeliveryResType(stream, &iso1BodyType->PowerDeliveryRes); + iso1BodyType->PowerDeliveryRes_isUsed = 1u; + grammarID = 3; + break; + case 23: + errn = decode_iso1PreChargeReqType(stream, &iso1BodyType->PreChargeReq); + iso1BodyType->PreChargeReq_isUsed = 1u; + grammarID = 3; + break; + case 24: + errn = decode_iso1PreChargeResType(stream, &iso1BodyType->PreChargeRes); + iso1BodyType->PreChargeRes_isUsed = 1u; + grammarID = 3; + break; + case 25: + errn = decode_iso1ServiceDetailReqType(stream, &iso1BodyType->ServiceDetailReq); + iso1BodyType->ServiceDetailReq_isUsed = 1u; + grammarID = 3; + break; + case 26: + errn = decode_iso1ServiceDetailResType(stream, &iso1BodyType->ServiceDetailRes); + iso1BodyType->ServiceDetailRes_isUsed = 1u; + grammarID = 3; + break; + case 27: + errn = decode_iso1ServiceDiscoveryReqType(stream, &iso1BodyType->ServiceDiscoveryReq); + iso1BodyType->ServiceDiscoveryReq_isUsed = 1u; + grammarID = 3; + break; + case 28: + errn = decode_iso1ServiceDiscoveryResType(stream, &iso1BodyType->ServiceDiscoveryRes); + iso1BodyType->ServiceDiscoveryRes_isUsed = 1u; + grammarID = 3; + break; + case 29: + errn = decode_iso1SessionSetupReqType(stream, &iso1BodyType->SessionSetupReq); + iso1BodyType->SessionSetupReq_isUsed = 1u; + grammarID = 3; + break; + case 30: + errn = decode_iso1SessionSetupResType(stream, &iso1BodyType->SessionSetupRes); + iso1BodyType->SessionSetupRes_isUsed = 1u; + grammarID = 3; + break; + case 31: + errn = decode_iso1SessionStopReqType(stream, &iso1BodyType->SessionStopReq); + iso1BodyType->SessionStopReq_isUsed = 1u; + grammarID = 3; + break; + case 32: + errn = decode_iso1SessionStopResType(stream, &iso1BodyType->SessionStopRes); + iso1BodyType->SessionStopRes_isUsed = 1u; + grammarID = 3; + break; + case 33: + errn = decode_iso1WeldingDetectionReqType(stream, &iso1BodyType->WeldingDetectionReq); + iso1BodyType->WeldingDetectionReq_isUsed = 1u; + grammarID = 3; + break; + case 34: + errn = decode_iso1WeldingDetectionResType(stream, &iso1BodyType->WeldingDetectionRes); + iso1BodyType->WeldingDetectionRes_isUsed = 1u; + grammarID = 3; + break; + case 35: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ChargingProfileType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ProfileEntry{1-24})', derivedBy='RESTRICTION'. */ +static int decode_iso1ChargingProfileType(bitstream_t* stream, struct iso1ChargingProfileType* iso1ChargingProfileType) { + int grammarID = 221; + int done = 0; + + init_iso1ChargingProfileType(iso1ChargingProfileType); + + while(!done) { + switch(grammarID) { + case 221: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 222; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 222: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 223; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 223: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 224; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 224: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 225; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 225: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 226; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 226: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 227; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 227: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 228; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 228: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 229; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 229: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 230; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 230: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 231; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 231: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 232; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 232: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 233; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 233: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 234; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 234: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 235; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 235: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 236; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 236: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 237; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 237: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 238: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 239; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 239: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 240; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 240: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 241; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 241: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 242; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 242: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 243; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 243: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 244; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 244: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1ChargingProfileType->ProfileEntry.arrayLen < iso1ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array[iso1ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_iso1TransformType(bitstream_t* stream, struct iso1TransformType* iso1TransformType) { + int grammarID = 245; + int done = 0; + + init_iso1TransformType(iso1TransformType); + + while(!done) { + switch(grammarID) { + case 245: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1TransformType->Algorithm.charactersLen); + if (errn == 0) { + if (iso1TransformType->Algorithm.charactersLen >= 2) { + iso1TransformType->Algorithm.charactersLen = (uint16_t)(iso1TransformType->Algorithm.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1TransformType->Algorithm.charactersLen, iso1TransformType->Algorithm.characters, iso1TransformType_Algorithm_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 246; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 246: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1TransformType->XPath.arrayLen < iso1TransformType_XPath_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1TransformType->XPath.array[iso1TransformType->XPath.arrayLen].charactersLen); + if (errn == 0) { + if (iso1TransformType->XPath.array[iso1TransformType->XPath.arrayLen].charactersLen >= 2) { + iso1TransformType->XPath.array[iso1TransformType->XPath.arrayLen].charactersLen = (uint16_t)(iso1TransformType->XPath.array[iso1TransformType->XPath.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1TransformType->XPath.array[iso1TransformType->XPath.arrayLen].charactersLen, iso1TransformType->XPath.array[iso1TransformType->XPath.arrayLen].characters, iso1TransformType_XPath_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1TransformType->XPath.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 247; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 247; + break; + case 2: + done = 1; + grammarID = 4; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &iso1TransformType->ANY.charactersLen); + if (errn == 0) { + if (iso1TransformType->ANY.charactersLen >= 2) { + iso1TransformType->ANY.charactersLen = (uint16_t)(iso1TransformType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1TransformType->ANY.charactersLen, iso1TransformType->ANY.characters, iso1TransformType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1TransformType->ANY_isUsed = 1u; + grammarID = 247; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 247: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1TransformType->XPath.arrayLen < iso1TransformType_XPath_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1TransformType->XPath.array[iso1TransformType->XPath.arrayLen].charactersLen); + if (errn == 0) { + if (iso1TransformType->XPath.array[iso1TransformType->XPath.arrayLen].charactersLen >= 2) { + iso1TransformType->XPath.array[iso1TransformType->XPath.arrayLen].charactersLen = (uint16_t)(iso1TransformType->XPath.array[iso1TransformType->XPath.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1TransformType->XPath.array[iso1TransformType->XPath.arrayLen].charactersLen, iso1TransformType->XPath.array[iso1TransformType->XPath.arrayLen].characters, iso1TransformType_XPath_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1TransformType->XPath.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 247; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 247; + break; + case 2: + done = 1; + grammarID = 4; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &iso1TransformType->ANY.charactersLen); + if (errn == 0) { + if (iso1TransformType->ANY.charactersLen >= 2) { + iso1TransformType->ANY.charactersLen = (uint16_t)(iso1TransformType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1TransformType->ANY.charactersLen, iso1TransformType->ANY.characters, iso1TransformType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1TransformType->ANY_isUsed = 1u; + grammarID = 247; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SAScheduleTupleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgDataTypes":PMaxSchedule,"urn:iso:15118:2:2013:MsgDataTypes":SalesTariff{0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso1SAScheduleTupleType(bitstream_t* stream, struct iso1SAScheduleTupleType* iso1SAScheduleTupleType) { + int grammarID = 248; + int done = 0; + + init_iso1SAScheduleTupleType(iso1SAScheduleTupleType); + + while(!done) { + switch(grammarID) { + case 248: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso1SAScheduleTupleType->SAScheduleTupleID = (uint8_t)(uint32 + 1); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 249; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 249: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PMaxScheduleType(stream, &iso1SAScheduleTupleType->PMaxSchedule); + grammarID = 250; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 250: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1SalesTariffType(stream, &iso1SAScheduleTupleType->SalesTariff); + iso1SAScheduleTupleType->SalesTariff_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1}),("urn:iso:15118:2:2013:MsgDataTypes":EAmount,"urn:iso:15118:2:2013:MsgDataTypes":EVMaxVoltage,"urn:iso:15118:2:2013:MsgDataTypes":EVMaxCurrent,"urn:iso:15118:2:2013:MsgDataTypes":EVMinCurrent))', derivedBy='EXTENSION'. */ +static int decode_iso1AC_EVChargeParameterType(bitstream_t* stream, struct iso1AC_EVChargeParameterType* iso1AC_EVChargeParameterType) { + int grammarID = 251; + int done = 0; + + init_iso1AC_EVChargeParameterType(iso1AC_EVChargeParameterType); + + while(!done) { + switch(grammarID) { + case 251: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &iso1AC_EVChargeParameterType->DepartureTime); + iso1AC_EVChargeParameterType->DepartureTime_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 252; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_iso1PhysicalValueType(stream, &iso1AC_EVChargeParameterType->EAmount); + grammarID = 253; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 252: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1AC_EVChargeParameterType->EAmount); + grammarID = 253; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 253: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1AC_EVChargeParameterType->EVMaxVoltage); + grammarID = 254; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 254: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1AC_EVChargeParameterType->EVMaxCurrent); + grammarID = 255; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 255: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1AC_EVChargeParameterType->EVMinCurrent); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDef,#AnonType_V2G_Message', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDef":Header,"urn:iso:15118:2:2013:MsgDef":Body)', derivedBy='RESTRICTION'. */ +static int decode_iso1AnonType_V2G_Message(bitstream_t* stream, struct iso1AnonType_V2G_Message* iso1AnonType_V2G_Message) { + int grammarID = 256; + int done = 0; + + init_iso1AnonType_V2G_Message(iso1AnonType_V2G_Message); + + while(!done) { + switch(grammarID) { + case 256: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1MessageHeaderType(stream, &iso1AnonType_V2G_Message->Header); + grammarID = 257; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 257: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1BodyType(stream, &iso1AnonType_V2G_Message->Body); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentDetailsResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":GenChallenge,"urn:iso:15118:2:2013:MsgBody":EVSETimeStamp)', derivedBy='EXTENSION'. */ +static int decode_iso1PaymentDetailsResType(bitstream_t* stream, struct iso1PaymentDetailsResType* iso1PaymentDetailsResType) { + int grammarID = 258; + int done = 0; + + init_iso1PaymentDetailsResType(iso1PaymentDetailsResType); + + while(!done) { + switch(grammarID) { + case 258: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso1PaymentDetailsResType->ResponseCode = (iso1responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 259; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 259: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1PaymentDetailsResType->GenChallenge.bytesLen); + if (errn == 0) { + errn = (iso1PaymentDetailsResType->GenChallenge.bytesLen) <= iso1PaymentDetailsResType_GenChallenge_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1PaymentDetailsResType->GenChallenge.bytesLen, iso1PaymentDetailsResType->GenChallenge.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 260; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 260: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &iso1PaymentDetailsResType->EVSETimeStamp); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ContractSignatureEncryptedPrivateKeyType', base type name='privateKeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int decode_iso1ContractSignatureEncryptedPrivateKeyType(bitstream_t* stream, struct iso1ContractSignatureEncryptedPrivateKeyType* iso1ContractSignatureEncryptedPrivateKeyType) { + int grammarID = 23; + int done = 0; + + init_iso1ContractSignatureEncryptedPrivateKeyType(iso1ContractSignatureEncryptedPrivateKeyType); + + while(!done) { + switch(grammarID) { + case 23: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1ContractSignatureEncryptedPrivateKeyType->Id.charactersLen); + if (errn == 0) { + if (iso1ContractSignatureEncryptedPrivateKeyType->Id.charactersLen >= 2) { + iso1ContractSignatureEncryptedPrivateKeyType->Id.charactersLen = (uint16_t)(iso1ContractSignatureEncryptedPrivateKeyType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ContractSignatureEncryptedPrivateKeyType->Id.charactersLen, iso1ContractSignatureEncryptedPrivateKeyType->Id.characters, iso1ContractSignatureEncryptedPrivateKeyType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 24; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 24: + /* StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1ContractSignatureEncryptedPrivateKeyType->CONTENT.bytesLen); + if (errn == 0) { + errn = (iso1ContractSignatureEncryptedPrivateKeyType->CONTENT.bytesLen) <= iso1ContractSignatureEncryptedPrivateKeyType_CONTENT_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1ContractSignatureEncryptedPrivateKeyType->CONTENT.bytesLen, iso1ContractSignatureEncryptedPrivateKeyType->CONTENT.bytes); + } + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2013:MsgDataTypes":PMax))', derivedBy='EXTENSION'. */ +static int decode_iso1PMaxScheduleEntryType(bitstream_t* stream, struct iso1PMaxScheduleEntryType* iso1PMaxScheduleEntryType) { + int grammarID = 261; + int done = 0; + + init_iso1PMaxScheduleEntryType(iso1PMaxScheduleEntryType); + + while(!done) { + switch(grammarID) { + case 261: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1RelativeTimeIntervalType(stream, &iso1PMaxScheduleEntryType->RelativeTimeInterval); + iso1PMaxScheduleEntryType->RelativeTimeInterval_isUsed = 1u; + grammarID = 262; + break; + case 1: + errn = decode_iso1IntervalType(stream, &iso1PMaxScheduleEntryType->TimeInterval); + iso1PMaxScheduleEntryType->TimeInterval_isUsed = 1u; + grammarID = 262; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 262: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1PMaxScheduleEntryType->PMax); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_iso1SPKIDataType(bitstream_t* stream, struct iso1SPKIDataType* iso1SPKIDataType) { + int grammarID = 263; + int done = 0; + + init_iso1SPKIDataType(iso1SPKIDataType); + + while(!done) { + switch(grammarID) { + case 263: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SPKIDataType->SPKISexp.arrayLen < iso1SPKIDataType_SPKISexp_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType->SPKISexp.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType->SPKISexp.arrayLen].bytesLen) <= iso1SPKIDataType_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType->SPKISexp.arrayLen].bytesLen, iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType->SPKISexp.arrayLen].bytes); + } + iso1SPKIDataType->SPKISexp.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 264; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 264: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SPKIDataType->SPKISexp.arrayLen < iso1SPKIDataType_SPKISexp_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType->SPKISexp.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType->SPKISexp.arrayLen].bytesLen) <= iso1SPKIDataType_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType->SPKISexp.arrayLen].bytesLen, iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType->SPKISexp.arrayLen].bytes); + } + iso1SPKIDataType->SPKISexp.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 264; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 265; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 265: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SPKIDataType->SPKISexp.arrayLen < iso1SPKIDataType_SPKISexp_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType->SPKISexp.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType->SPKISexp.arrayLen].bytesLen) <= iso1SPKIDataType_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType->SPKISexp.arrayLen].bytesLen, iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType->SPKISexp.arrayLen].bytes); + } + iso1SPKIDataType->SPKISexp.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 264; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,MeteringReceiptResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */ +static int decode_iso1MeteringReceiptResType(bitstream_t* stream, struct iso1MeteringReceiptResType* iso1MeteringReceiptResType) { + int grammarID = 93; + int done = 0; + + init_iso1MeteringReceiptResType(iso1MeteringReceiptResType); + + while(!done) { + switch(grammarID) { + case 93: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso1MeteringReceiptResType->ResponseCode = (iso1responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 94; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 94: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1AC_EVSEStatusType(stream, &iso1MeteringReceiptResType->AC_EVSEStatus); + iso1MeteringReceiptResType->AC_EVSEStatus_isUsed = 1u; + grammarID = 3; + break; + case 1: + errn = decode_iso1DC_EVSEStatusType(stream, &iso1MeteringReceiptResType->DC_EVSEStatus); + iso1MeteringReceiptResType->DC_EVSEStatus_isUsed = 1u; + grammarID = 3; + break; + case 2: + errn = decode_iso1EVSEStatusType(stream, &iso1MeteringReceiptResType->EVSEStatus); + iso1MeteringReceiptResType->EVSEStatus_isUsed = 1u; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionStopReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ChargingSession)', derivedBy='EXTENSION'. */ +static int decode_iso1SessionStopReqType(bitstream_t* stream, struct iso1SessionStopReqType* iso1SessionStopReqType) { + int grammarID = 266; + int done = 0; + + init_iso1SessionStopReqType(iso1SessionStopReqType); + + while(!done) { + switch(grammarID) { + case 266: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso1SessionStopReqType->ChargingSession = (iso1chargingSessionType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,WeldingDetectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */ +static int decode_iso1WeldingDetectionResType(bitstream_t* stream, struct iso1WeldingDetectionResType* iso1WeldingDetectionResType) { + int grammarID = 39; + int done = 0; + + init_iso1WeldingDetectionResType(iso1WeldingDetectionResType); + + while(!done) { + switch(grammarID) { + case 39: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso1WeldingDetectionResType->ResponseCode = (iso1responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 40; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 40: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1DC_EVSEStatusType(stream, &iso1WeldingDetectionResType->DC_EVSEStatus); + grammarID = 41; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 41: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1WeldingDetectionResType->EVSEPresentVoltage); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ +static int decode_iso1ReferenceType(bitstream_t* stream, struct iso1ReferenceType* iso1ReferenceType) { + int grammarID = 267; + int done = 0; + + init_iso1ReferenceType(iso1ReferenceType); + + while(!done) { + switch(grammarID) { + case 267: + /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1ReferenceType->Id.charactersLen); + if (errn == 0) { + if (iso1ReferenceType->Id.charactersLen >= 2) { + iso1ReferenceType->Id.charactersLen = (uint16_t)(iso1ReferenceType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ReferenceType->Id.charactersLen, iso1ReferenceType->Id.characters, iso1ReferenceType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ReferenceType->Id_isUsed = 1u; + grammarID = 268; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso1ReferenceType->Type.charactersLen); + if (errn == 0) { + if (iso1ReferenceType->Type.charactersLen >= 2) { + iso1ReferenceType->Type.charactersLen = (uint16_t)(iso1ReferenceType->Type.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ReferenceType->Type.charactersLen, iso1ReferenceType->Type.characters, iso1ReferenceType_Type_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ReferenceType->Type_isUsed = 1u; + grammarID = 269; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso1ReferenceType->URI.charactersLen); + if (errn == 0) { + if (iso1ReferenceType->URI.charactersLen >= 2) { + iso1ReferenceType->URI.charactersLen = (uint16_t)(iso1ReferenceType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ReferenceType->URI.charactersLen, iso1ReferenceType->URI.characters, iso1ReferenceType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ReferenceType->URI_isUsed = 1u; + grammarID = 270; + break; + case 3: + errn = decode_iso1TransformsType(stream, &iso1ReferenceType->Transforms); + iso1ReferenceType->Transforms_isUsed = 1u; + grammarID = 271; + break; + case 4: + errn = decode_iso1DigestMethodType(stream, &iso1ReferenceType->DigestMethod); + grammarID = 272; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 268: + /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1ReferenceType->Type.charactersLen); + if (errn == 0) { + if (iso1ReferenceType->Type.charactersLen >= 2) { + iso1ReferenceType->Type.charactersLen = (uint16_t)(iso1ReferenceType->Type.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ReferenceType->Type.charactersLen, iso1ReferenceType->Type.characters, iso1ReferenceType_Type_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ReferenceType->Type_isUsed = 1u; + grammarID = 269; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso1ReferenceType->URI.charactersLen); + if (errn == 0) { + if (iso1ReferenceType->URI.charactersLen >= 2) { + iso1ReferenceType->URI.charactersLen = (uint16_t)(iso1ReferenceType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ReferenceType->URI.charactersLen, iso1ReferenceType->URI.characters, iso1ReferenceType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ReferenceType->URI_isUsed = 1u; + grammarID = 270; + break; + case 2: + errn = decode_iso1TransformsType(stream, &iso1ReferenceType->Transforms); + iso1ReferenceType->Transforms_isUsed = 1u; + grammarID = 271; + break; + case 3: + errn = decode_iso1DigestMethodType(stream, &iso1ReferenceType->DigestMethod); + grammarID = 272; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 269: + /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1ReferenceType->URI.charactersLen); + if (errn == 0) { + if (iso1ReferenceType->URI.charactersLen >= 2) { + iso1ReferenceType->URI.charactersLen = (uint16_t)(iso1ReferenceType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ReferenceType->URI.charactersLen, iso1ReferenceType->URI.characters, iso1ReferenceType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ReferenceType->URI_isUsed = 1u; + grammarID = 270; + break; + case 1: + errn = decode_iso1TransformsType(stream, &iso1ReferenceType->Transforms); + iso1ReferenceType->Transforms_isUsed = 1u; + grammarID = 271; + break; + case 2: + errn = decode_iso1DigestMethodType(stream, &iso1ReferenceType->DigestMethod); + grammarID = 272; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 270: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1TransformsType(stream, &iso1ReferenceType->Transforms); + iso1ReferenceType->Transforms_isUsed = 1u; + grammarID = 271; + break; + case 1: + errn = decode_iso1DigestMethodType(stream, &iso1ReferenceType->DigestMethod); + grammarID = 272; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 271: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1DigestMethodType(stream, &iso1ReferenceType->DigestMethod); + grammarID = 272; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 272: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1ReferenceType->DigestValue.bytesLen); + if (errn == 0) { + errn = (iso1ReferenceType->DigestValue.bytesLen) <= iso1ReferenceType_DigestValue_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1ReferenceType->DigestValue.bytesLen, iso1ReferenceType->DigestValue.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CurrentDemandReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus,"urn:iso:15118:2:2013:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2013:MsgBody":EVMaximumVoltageLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVMaximumCurrentLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgBody":BulkChargingComplete{0-1},"urn:iso:15118:2:2013:MsgBody":ChargingComplete,"urn:iso:15118:2:2013:MsgBody":RemainingTimeToFullSoC{0-1},"urn:iso:15118:2:2013:MsgBody":RemainingTimeToBulkSoC{0-1},"urn:iso:15118:2:2013:MsgBody":EVTargetVoltage)', derivedBy='EXTENSION'. */ +static int decode_iso1CurrentDemandReqType(bitstream_t* stream, struct iso1CurrentDemandReqType* iso1CurrentDemandReqType) { + int grammarID = 273; + int done = 0; + + init_iso1CurrentDemandReqType(iso1CurrentDemandReqType); + + while(!done) { + switch(grammarID) { + case 273: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1DC_EVStatusType(stream, &iso1CurrentDemandReqType->DC_EVStatus); + grammarID = 274; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 274: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVTargetCurrent); + grammarID = 275; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 275: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVMaximumVoltageLimit); + iso1CurrentDemandReqType->EVMaximumVoltageLimit_isUsed = 1u; + grammarID = 276; + break; + case 1: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVMaximumCurrentLimit); + iso1CurrentDemandReqType->EVMaximumCurrentLimit_isUsed = 1u; + grammarID = 277; + break; + case 2: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVMaximumPowerLimit); + iso1CurrentDemandReqType->EVMaximumPowerLimit_isUsed = 1u; + grammarID = 278; + break; + case 3: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1CurrentDemandReqType->BulkChargingComplete); + iso1CurrentDemandReqType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 279; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1CurrentDemandReqType->ChargingComplete); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 280; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 276: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVMaximumCurrentLimit); + iso1CurrentDemandReqType->EVMaximumCurrentLimit_isUsed = 1u; + grammarID = 277; + break; + case 1: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVMaximumPowerLimit); + iso1CurrentDemandReqType->EVMaximumPowerLimit_isUsed = 1u; + grammarID = 278; + break; + case 2: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1CurrentDemandReqType->BulkChargingComplete); + iso1CurrentDemandReqType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 279; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1CurrentDemandReqType->ChargingComplete); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 280; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 277: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVMaximumPowerLimit); + iso1CurrentDemandReqType->EVMaximumPowerLimit_isUsed = 1u; + grammarID = 278; + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1CurrentDemandReqType->BulkChargingComplete); + iso1CurrentDemandReqType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 279; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1CurrentDemandReqType->ChargingComplete); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 280; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 278: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1CurrentDemandReqType->BulkChargingComplete); + iso1CurrentDemandReqType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 279; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1CurrentDemandReqType->ChargingComplete); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 280; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 279: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1CurrentDemandReqType->ChargingComplete); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 280; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 280: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->RemainingTimeToFullSoC); + iso1CurrentDemandReqType->RemainingTimeToFullSoC_isUsed = 1u; + grammarID = 281; + break; + case 1: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->RemainingTimeToBulkSoC); + iso1CurrentDemandReqType->RemainingTimeToBulkSoC_isUsed = 1u; + grammarID = 282; + break; + case 2: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVTargetVoltage); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 281: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->RemainingTimeToBulkSoC); + iso1CurrentDemandReqType->RemainingTimeToBulkSoC_isUsed = 1u; + grammarID = 282; + break; + case 1: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVTargetVoltage); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 282: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVTargetVoltage); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SalesTariffEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2013:MsgDataTypes":EPriceLevel{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ConsumptionCost{0-3}))', derivedBy='EXTENSION'. */ +static int decode_iso1SalesTariffEntryType(bitstream_t* stream, struct iso1SalesTariffEntryType* iso1SalesTariffEntryType) { + int grammarID = 283; + int done = 0; + + init_iso1SalesTariffEntryType(iso1SalesTariffEntryType); + + while(!done) { + switch(grammarID) { + case 283: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1RelativeTimeIntervalType(stream, &iso1SalesTariffEntryType->RelativeTimeInterval); + iso1SalesTariffEntryType->RelativeTimeInterval_isUsed = 1u; + grammarID = 284; + break; + case 1: + errn = decode_iso1IntervalType(stream, &iso1SalesTariffEntryType->TimeInterval); + iso1SalesTariffEntryType->TimeInterval_isUsed = 1u; + grammarID = 284; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 284: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso1SalesTariffEntryType->EPriceLevel = (uint8_t)(uint32 + 0); + iso1SalesTariffEntryType->EPriceLevel_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 285; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + if (iso1SalesTariffEntryType->ConsumptionCost.arrayLen < iso1SalesTariffEntryType_ConsumptionCost_ARRAY_SIZE) { + errn = decode_iso1ConsumptionCostType(stream, &iso1SalesTariffEntryType->ConsumptionCost.array[iso1SalesTariffEntryType->ConsumptionCost.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 286; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 285: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SalesTariffEntryType->ConsumptionCost.arrayLen < iso1SalesTariffEntryType_ConsumptionCost_ARRAY_SIZE) { + errn = decode_iso1ConsumptionCostType(stream, &iso1SalesTariffEntryType->ConsumptionCost.array[iso1SalesTariffEntryType->ConsumptionCost.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 286; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 286: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SalesTariffEntryType->ConsumptionCost.arrayLen < iso1SalesTariffEntryType_ConsumptionCost_ARRAY_SIZE) { + errn = decode_iso1ConsumptionCostType(stream, &iso1SalesTariffEntryType->ConsumptionCost.array[iso1SalesTariffEntryType->ConsumptionCost.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 287; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 287: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SalesTariffEntryType->ConsumptionCost.arrayLen < iso1SalesTariffEntryType_ConsumptionCost_ARRAY_SIZE) { + errn = decode_iso1ConsumptionCostType(stream, &iso1SalesTariffEntryType->ConsumptionCost.array[iso1SalesTariffEntryType->ConsumptionCost.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EntryType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval)', derivedBy='RESTRICTION'. */ +static int decode_iso1EntryType(bitstream_t* stream, struct iso1EntryType* iso1EntryType) { + int grammarID = 288; + int done = 0; + + init_iso1EntryType(iso1EntryType); + + while(!done) { + switch(grammarID) { + case 288: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1RelativeTimeIntervalType(stream, &iso1EntryType->RelativeTimeInterval); + iso1EntryType->RelativeTimeInterval_isUsed = 1u; + grammarID = 3; + break; + case 1: + errn = decode_iso1IntervalType(stream, &iso1EntryType->TimeInterval); + iso1EntryType->TimeInterval_isUsed = 1u; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":EVCCID)', derivedBy='EXTENSION'. */ +static int decode_iso1SessionSetupReqType(bitstream_t* stream, struct iso1SessionSetupReqType* iso1SessionSetupReqType) { + int grammarID = 289; + int done = 0; + + init_iso1SessionSetupReqType(iso1SessionSetupReqType); + + while(!done) { + switch(grammarID) { + case 289: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1SessionSetupReqType->EVCCID.bytesLen); + if (errn == 0) { + errn = (iso1SessionSetupReqType->EVCCID.bytesLen) <= iso1SessionSetupReqType_EVCCID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1SessionSetupReqType->EVCCID.bytesLen, iso1SessionSetupReqType->EVCCID.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":costKind,"urn:iso:15118:2:2013:MsgDataTypes":amount,"urn:iso:15118:2:2013:MsgDataTypes":amountMultiplier{0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso1CostType(bitstream_t* stream, struct iso1CostType* iso1CostType) { + int grammarID = 290; + int done = 0; + + init_iso1CostType(iso1CostType); + + while(!done) { + switch(grammarID) { + case 290: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso1CostType->costKind = (iso1costKindType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 291; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 291: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &iso1CostType->amount); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 292; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 292: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &(uint32)); + iso1CostType->amountMultiplier = (int8_t)(uint32 -3); + iso1CostType->amountMultiplier_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVPowerDeliveryParameterType', base type name='EVPowerDeliveryParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2013:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ChargingComplete)', derivedBy='EXTENSION'. */ +static int decode_iso1DC_EVPowerDeliveryParameterType(bitstream_t* stream, struct iso1DC_EVPowerDeliveryParameterType* iso1DC_EVPowerDeliveryParameterType) { + int grammarID = 293; + int done = 0; + + init_iso1DC_EVPowerDeliveryParameterType(iso1DC_EVPowerDeliveryParameterType); + + while(!done) { + switch(grammarID) { + case 293: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1DC_EVStatusType(stream, &iso1DC_EVPowerDeliveryParameterType->DC_EVStatus); + grammarID = 294; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 294: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1DC_EVPowerDeliveryParameterType->BulkChargingComplete); + iso1DC_EVPowerDeliveryParameterType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 295; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1DC_EVPowerDeliveryParameterType->ChargingComplete); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 295: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1DC_EVPowerDeliveryParameterType->ChargingComplete); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso1RetrievalMethodType(bitstream_t* stream, struct iso1RetrievalMethodType* iso1RetrievalMethodType) { + int grammarID = 296; + int done = 0; + + init_iso1RetrievalMethodType(iso1RetrievalMethodType); + + while(!done) { + switch(grammarID) { + case 296: + /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1RetrievalMethodType->Type.charactersLen); + if (errn == 0) { + if (iso1RetrievalMethodType->Type.charactersLen >= 2) { + iso1RetrievalMethodType->Type.charactersLen = (uint16_t)(iso1RetrievalMethodType->Type.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1RetrievalMethodType->Type.charactersLen, iso1RetrievalMethodType->Type.characters, iso1RetrievalMethodType_Type_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1RetrievalMethodType->Type_isUsed = 1u; + grammarID = 297; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso1RetrievalMethodType->URI.charactersLen); + if (errn == 0) { + if (iso1RetrievalMethodType->URI.charactersLen >= 2) { + iso1RetrievalMethodType->URI.charactersLen = (uint16_t)(iso1RetrievalMethodType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1RetrievalMethodType->URI.charactersLen, iso1RetrievalMethodType->URI.characters, iso1RetrievalMethodType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1RetrievalMethodType->URI_isUsed = 1u; + grammarID = 298; + break; + case 2: + errn = decode_iso1TransformsType(stream, &iso1RetrievalMethodType->Transforms); + iso1RetrievalMethodType->Transforms_isUsed = 1u; + grammarID = 3; + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 297: + /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1RetrievalMethodType->URI.charactersLen); + if (errn == 0) { + if (iso1RetrievalMethodType->URI.charactersLen >= 2) { + iso1RetrievalMethodType->URI.charactersLen = (uint16_t)(iso1RetrievalMethodType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1RetrievalMethodType->URI.charactersLen, iso1RetrievalMethodType->URI.characters, iso1RetrievalMethodType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1RetrievalMethodType->URI_isUsed = 1u; + grammarID = 298; + break; + case 1: + errn = decode_iso1TransformsType(stream, &iso1RetrievalMethodType->Transforms); + iso1RetrievalMethodType->Transforms_isUsed = 1u; + grammarID = 3; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 298: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1TransformsType(stream, &iso1RetrievalMethodType->Transforms); + iso1RetrievalMethodType->Transforms_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateUpdateResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2013:MsgBody":DHpublickey,"urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":RetryCounter{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso1CertificateUpdateResType(bitstream_t* stream, struct iso1CertificateUpdateResType* iso1CertificateUpdateResType) { + int grammarID = 299; + int done = 0; + + init_iso1CertificateUpdateResType(iso1CertificateUpdateResType); + + while(!done) { + switch(grammarID) { + case 299: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso1CertificateUpdateResType->ResponseCode = (iso1responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 300; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 300: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1CertificateChainType(stream, &iso1CertificateUpdateResType->SAProvisioningCertificateChain); + grammarID = 301; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 301: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1CertificateChainType(stream, &iso1CertificateUpdateResType->ContractSignatureCertChain); + grammarID = 302; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 302: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1ContractSignatureEncryptedPrivateKeyType(stream, &iso1CertificateUpdateResType->ContractSignatureEncryptedPrivateKey); + grammarID = 303; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 303: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1DiffieHellmanPublickeyType(stream, &iso1CertificateUpdateResType->DHpublickey); + grammarID = 304; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 304: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1EMAIDType(stream, &iso1CertificateUpdateResType->eMAID); + grammarID = 305; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 305: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &iso1CertificateUpdateResType->RetryCounter); + iso1CertificateUpdateResType->RetryCounter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateInstallationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2013:MsgBody":DHpublickey,"urn:iso:15118:2:2013:MsgBody":eMAID)', derivedBy='EXTENSION'. */ +static int decode_iso1CertificateInstallationResType(bitstream_t* stream, struct iso1CertificateInstallationResType* iso1CertificateInstallationResType) { + int grammarID = 306; + int done = 0; + + init_iso1CertificateInstallationResType(iso1CertificateInstallationResType); + + while(!done) { + switch(grammarID) { + case 306: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso1CertificateInstallationResType->ResponseCode = (iso1responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 307; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 307: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1CertificateChainType(stream, &iso1CertificateInstallationResType->SAProvisioningCertificateChain); + grammarID = 308; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 308: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1CertificateChainType(stream, &iso1CertificateInstallationResType->ContractSignatureCertChain); + grammarID = 309; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 309: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1ContractSignatureEncryptedPrivateKeyType(stream, &iso1CertificateInstallationResType->ContractSignatureEncryptedPrivateKey); + grammarID = 310; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 310: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1DiffieHellmanPublickeyType(stream, &iso1CertificateInstallationResType->DHpublickey); + grammarID = 311; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 311: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1EMAIDType(stream, &iso1CertificateInstallationResType->eMAID); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso1CanonicalizationMethodType(bitstream_t* stream, struct iso1CanonicalizationMethodType* iso1CanonicalizationMethodType) { + int grammarID = 312; + int done = 0; + + init_iso1CanonicalizationMethodType(iso1CanonicalizationMethodType); + + while(!done) { + switch(grammarID) { + case 312: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1CanonicalizationMethodType->Algorithm.charactersLen); + if (errn == 0) { + if (iso1CanonicalizationMethodType->Algorithm.charactersLen >= 2) { + iso1CanonicalizationMethodType->Algorithm.charactersLen = (uint16_t)(iso1CanonicalizationMethodType->Algorithm.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1CanonicalizationMethodType->Algorithm.charactersLen, iso1CanonicalizationMethodType->Algorithm.characters, iso1CanonicalizationMethodType_Algorithm_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 115; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 115: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 116; + break; + case 1: + done = 1; + grammarID = 4; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso1CanonicalizationMethodType->ANY.charactersLen); + if (errn == 0) { + if (iso1CanonicalizationMethodType->ANY.charactersLen >= 2) { + iso1CanonicalizationMethodType->ANY.charactersLen = (uint16_t)(iso1CanonicalizationMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1CanonicalizationMethodType->ANY.charactersLen, iso1CanonicalizationMethodType->ANY.characters, iso1CanonicalizationMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1CanonicalizationMethodType->ANY_isUsed = 1u; + grammarID = 116; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 116: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 116; + break; + case 1: + done = 1; + grammarID = 4; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso1CanonicalizationMethodType->ANY.charactersLen); + if (errn == 0) { + if (iso1CanonicalizationMethodType->ANY.charactersLen >= 2) { + iso1CanonicalizationMethodType->ANY.charactersLen = (uint16_t)(iso1CanonicalizationMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1CanonicalizationMethodType->ANY.charactersLen, iso1CanonicalizationMethodType->ANY.characters, iso1CanonicalizationMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1CanonicalizationMethodType->ANY_isUsed = 1u; + grammarID = 116; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,WeldingDetectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */ +static int decode_iso1WeldingDetectionReqType(bitstream_t* stream, struct iso1WeldingDetectionReqType* iso1WeldingDetectionReqType) { + int grammarID = 313; + int done = 0; + + init_iso1WeldingDetectionReqType(iso1WeldingDetectionReqType); + + while(!done) { + switch(grammarID) { + case 313: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1DC_EVStatusType(stream, &iso1WeldingDetectionReqType->DC_EVStatus); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */ +static int decode_iso1DC_EVStatusType(bitstream_t* stream, struct iso1DC_EVStatusType* iso1DC_EVStatusType) { + int grammarID = 314; + int done = 0; + + init_iso1DC_EVStatusType(iso1DC_EVStatusType); + + while(!done) { + switch(grammarID) { + case 314: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1DC_EVStatusType->EVReady); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 315; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 315: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 4, &uint32); + iso1DC_EVStatusType->EVErrorCode = (iso1DC_EVErrorCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 316; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 316: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso1DC_EVStatusType->EVRESSSOC = (int8_t)(uint32 + 0); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CurrentDemandResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2013:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2013:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEMaximumVoltageLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEMaximumCurrentLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2013:MsgBody":ReceiptRequired{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso1CurrentDemandResType(bitstream_t* stream, struct iso1CurrentDemandResType* iso1CurrentDemandResType) { + int grammarID = 317; + int done = 0; + + init_iso1CurrentDemandResType(iso1CurrentDemandResType); + + while(!done) { + switch(grammarID) { + case 317: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso1CurrentDemandResType->ResponseCode = (iso1responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 318; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 318: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1DC_EVSEStatusType(stream, &iso1CurrentDemandResType->DC_EVSEStatus); + grammarID = 319; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 319: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEPresentVoltage); + grammarID = 320; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 320: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEPresentCurrent); + grammarID = 321; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 321: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1CurrentDemandResType->EVSECurrentLimitAchieved); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 322; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 322: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1CurrentDemandResType->EVSEVoltageLimitAchieved); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 323; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 323: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1CurrentDemandResType->EVSEPowerLimitAchieved); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 324; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 324: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEMaximumVoltageLimit); + iso1CurrentDemandResType->EVSEMaximumVoltageLimit_isUsed = 1u; + grammarID = 325; + break; + case 1: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEMaximumCurrentLimit); + iso1CurrentDemandResType->EVSEMaximumCurrentLimit_isUsed = 1u; + grammarID = 326; + break; + case 2: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEMaximumPowerLimit); + iso1CurrentDemandResType->EVSEMaximumPowerLimit_isUsed = 1u; + grammarID = 327; + break; + case 3: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1CurrentDemandResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso1CurrentDemandResType->EVSEID.charactersLen >= 2) { + iso1CurrentDemandResType->EVSEID.charactersLen = (uint16_t)(iso1CurrentDemandResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1CurrentDemandResType->EVSEID.charactersLen, iso1CurrentDemandResType->EVSEID.characters, iso1CurrentDemandResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 328; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 325: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEMaximumCurrentLimit); + iso1CurrentDemandResType->EVSEMaximumCurrentLimit_isUsed = 1u; + grammarID = 326; + break; + case 1: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEMaximumPowerLimit); + iso1CurrentDemandResType->EVSEMaximumPowerLimit_isUsed = 1u; + grammarID = 327; + break; + case 2: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1CurrentDemandResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso1CurrentDemandResType->EVSEID.charactersLen >= 2) { + iso1CurrentDemandResType->EVSEID.charactersLen = (uint16_t)(iso1CurrentDemandResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1CurrentDemandResType->EVSEID.charactersLen, iso1CurrentDemandResType->EVSEID.characters, iso1CurrentDemandResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 328; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 326: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEMaximumPowerLimit); + iso1CurrentDemandResType->EVSEMaximumPowerLimit_isUsed = 1u; + grammarID = 327; + break; + case 1: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1CurrentDemandResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso1CurrentDemandResType->EVSEID.charactersLen >= 2) { + iso1CurrentDemandResType->EVSEID.charactersLen = (uint16_t)(iso1CurrentDemandResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1CurrentDemandResType->EVSEID.charactersLen, iso1CurrentDemandResType->EVSEID.characters, iso1CurrentDemandResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 328; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 327: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1CurrentDemandResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso1CurrentDemandResType->EVSEID.charactersLen >= 2) { + iso1CurrentDemandResType->EVSEID.charactersLen = (uint16_t)(iso1CurrentDemandResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1CurrentDemandResType->EVSEID.charactersLen, iso1CurrentDemandResType->EVSEID.characters, iso1CurrentDemandResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 328; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 328: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso1CurrentDemandResType->SAScheduleTupleID = (uint8_t)(uint32 + 1); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 329; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 329: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1MeterInfoType(stream, &iso1CurrentDemandResType->MeterInfo); + iso1CurrentDemandResType->MeterInfo_isUsed = 1u; + grammarID = 330; + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1CurrentDemandResType->ReceiptRequired); + iso1CurrentDemandResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 330: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1CurrentDemandResType->ReceiptRequired); + iso1CurrentDemandResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2013:MsgDataTypes":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FreeService)', derivedBy='RESTRICTION'. */ +static int decode_iso1ServiceType(bitstream_t* stream, struct iso1ServiceType* iso1ServiceType) { + int grammarID = 331; + int done = 0; + + init_iso1ServiceType(iso1ServiceType); + + while(!done) { + switch(grammarID) { + case 331: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1ServiceType->ServiceID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 332; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 332: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1ServiceType->ServiceName.charactersLen); + if (errn == 0) { + if (iso1ServiceType->ServiceName.charactersLen >= 2) { + iso1ServiceType->ServiceName.charactersLen = (uint16_t)(iso1ServiceType->ServiceName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ServiceType->ServiceName.charactersLen, iso1ServiceType->ServiceName.characters, iso1ServiceType_ServiceName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ServiceType->ServiceName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 333; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso1ServiceType->ServiceCategory = (iso1serviceCategoryType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 334; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 333: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso1ServiceType->ServiceCategory = (iso1serviceCategoryType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 334; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 334: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1ServiceType->ServiceScope.charactersLen); + if (errn == 0) { + if (iso1ServiceType->ServiceScope.charactersLen >= 2) { + iso1ServiceType->ServiceScope.charactersLen = (uint16_t)(iso1ServiceType->ServiceScope.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ServiceType->ServiceScope.charactersLen, iso1ServiceType->ServiceScope.characters, iso1ServiceType_ServiceScope_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ServiceType->ServiceScope_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 335; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1ServiceType->FreeService); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 335: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1ServiceType->FreeService); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgBody":ServiceCategory{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso1ServiceDiscoveryReqType(bitstream_t* stream, struct iso1ServiceDiscoveryReqType* iso1ServiceDiscoveryReqType) { + int grammarID = 336; + int done = 0; + + init_iso1ServiceDiscoveryReqType(iso1ServiceDiscoveryReqType); + + while(!done) { + switch(grammarID) { + case 336: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1ServiceDiscoveryReqType->ServiceScope.charactersLen); + if (errn == 0) { + if (iso1ServiceDiscoveryReqType->ServiceScope.charactersLen >= 2) { + iso1ServiceDiscoveryReqType->ServiceScope.charactersLen = (uint16_t)(iso1ServiceDiscoveryReqType->ServiceScope.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1ServiceDiscoveryReqType->ServiceScope.charactersLen, iso1ServiceDiscoveryReqType->ServiceScope.characters, iso1ServiceDiscoveryReqType_ServiceScope_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1ServiceDiscoveryReqType->ServiceScope_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 337; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso1ServiceDiscoveryReqType->ServiceCategory = (iso1serviceCategoryType) uint32; + iso1ServiceDiscoveryReqType->ServiceCategory_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 337: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso1ServiceDiscoveryReqType->ServiceCategory = (iso1serviceCategoryType) uint32; + iso1ServiceDiscoveryReqType->ServiceCategory_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":AC_EVSEStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVSENominalVoltage,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaxCurrent)', derivedBy='EXTENSION'. */ +static int decode_iso1AC_EVSEChargeParameterType(bitstream_t* stream, struct iso1AC_EVSEChargeParameterType* iso1AC_EVSEChargeParameterType) { + int grammarID = 338; + int done = 0; + + init_iso1AC_EVSEChargeParameterType(iso1AC_EVSEChargeParameterType); + + while(!done) { + switch(grammarID) { + case 338: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1AC_EVSEStatusType(stream, &iso1AC_EVSEChargeParameterType->AC_EVSEStatus); + grammarID = 339; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 339: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1AC_EVSEChargeParameterType->EVSENominalVoltage); + grammarID = 340; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 340: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1PhysicalValueType(stream, &iso1AC_EVSEChargeParameterType->EVSEMaxCurrent); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CableCheckReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */ +static int decode_iso1CableCheckReqType(bitstream_t* stream, struct iso1CableCheckReqType* iso1CableCheckReqType) { + int grammarID = 313; + int done = 0; + + init_iso1CableCheckReqType(iso1CableCheckReqType); + + while(!done) { + switch(grammarID) { + case 313: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1DC_EVStatusType(stream, &iso1CableCheckReqType->DC_EVStatus); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SelectedServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID{0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso1SelectedServiceType(bitstream_t* stream, struct iso1SelectedServiceType* iso1SelectedServiceType) { + int grammarID = 341; + int done = 0; + + init_iso1SelectedServiceType(iso1SelectedServiceType); + + while(!done) { + switch(grammarID) { + case 341: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1SelectedServiceType->ServiceID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 342; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 342: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &iso1SelectedServiceType->ParameterSetID); + iso1SelectedServiceType->ParameterSetID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":RCD))', derivedBy='EXTENSION'. */ +static int decode_iso1AC_EVSEStatusType(bitstream_t* stream, struct iso1AC_EVSEStatusType* iso1AC_EVSEStatusType) { + int grammarID = 343; + int done = 0; + + init_iso1AC_EVSEStatusType(iso1AC_EVSEStatusType); + + while(!done) { + switch(grammarID) { + case 343: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1AC_EVSEStatusType->NotificationMaxDelay); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 344; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 344: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso1AC_EVSEStatusType->EVSENotification = (iso1EVSENotificationType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 345; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 345: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso1AC_EVSEStatusType->RCD); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SalesTariffType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SalesTariffID,"urn:iso:15118:2:2013:MsgDataTypes":SalesTariffDescription{0-1},"urn:iso:15118:2:2013:MsgDataTypes":NumEPriceLevels{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SalesTariffEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso1SalesTariffType(bitstream_t* stream, struct iso1SalesTariffType* iso1SalesTariffType) { + int grammarID = 346; + int done = 0; + + init_iso1SalesTariffType(iso1SalesTariffType); + + while(!done) { + switch(grammarID) { + case 346: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1SalesTariffType->Id.charactersLen); + if (errn == 0) { + if (iso1SalesTariffType->Id.charactersLen >= 2) { + iso1SalesTariffType->Id.charactersLen = (uint16_t)(iso1SalesTariffType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1SalesTariffType->Id.charactersLen, iso1SalesTariffType->Id.characters, iso1SalesTariffType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1SalesTariffType->Id_isUsed = 1u; + grammarID = 347; + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso1SalesTariffType->SalesTariffID = (uint8_t)(uint32 + 1); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 348; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 347: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso1SalesTariffType->SalesTariffID = (uint8_t)(uint32 + 1); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 348; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 348: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1SalesTariffType->SalesTariffDescription.charactersLen); + if (errn == 0) { + if (iso1SalesTariffType->SalesTariffDescription.charactersLen >= 2) { + iso1SalesTariffType->SalesTariffDescription.charactersLen = (uint16_t)(iso1SalesTariffType->SalesTariffDescription.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1SalesTariffType->SalesTariffDescription.charactersLen, iso1SalesTariffType->SalesTariffDescription.characters, iso1SalesTariffType_SalesTariffDescription_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1SalesTariffType->SalesTariffDescription_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 349; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso1SalesTariffType->NumEPriceLevels = (uint8_t)(uint32 + 0); + iso1SalesTariffType->NumEPriceLevels_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 350; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + if (iso1SalesTariffType->SalesTariffEntry.arrayLen < iso1SalesTariffType_SalesTariffEntry_ARRAY_SIZE) { + errn = decode_iso1SalesTariffEntryType(stream, &iso1SalesTariffType->SalesTariffEntry.array[iso1SalesTariffType->SalesTariffEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 351; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 349: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso1SalesTariffType->NumEPriceLevels = (uint8_t)(uint32 + 0); + iso1SalesTariffType->NumEPriceLevels_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 350; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + if (iso1SalesTariffType->SalesTariffEntry.arrayLen < iso1SalesTariffType_SalesTariffEntry_ARRAY_SIZE) { + errn = decode_iso1SalesTariffEntryType(stream, &iso1SalesTariffType->SalesTariffEntry.array[iso1SalesTariffType->SalesTariffEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 351; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 350: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SalesTariffType->SalesTariffEntry.arrayLen < iso1SalesTariffType_SalesTariffEntry_ARRAY_SIZE) { + errn = decode_iso1SalesTariffEntryType(stream, &iso1SalesTariffType->SalesTariffEntry.array[iso1SalesTariffType->SalesTariffEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 351; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 351: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SalesTariffType->SalesTariffEntry.arrayLen < iso1SalesTariffType_SalesTariffEntry_ARRAY_SIZE) { + errn = decode_iso1SalesTariffEntryType(stream, &iso1SalesTariffType->SalesTariffEntry.array[iso1SalesTariffType->SalesTariffEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 351; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentServiceSelectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":SelectedPaymentOption,"urn:iso:15118:2:2013:MsgBody":SelectedServiceList)', derivedBy='EXTENSION'. */ +static int decode_iso1PaymentServiceSelectionReqType(bitstream_t* stream, struct iso1PaymentServiceSelectionReqType* iso1PaymentServiceSelectionReqType) { + int grammarID = 352; + int done = 0; + + init_iso1PaymentServiceSelectionReqType(iso1PaymentServiceSelectionReqType); + + while(!done) { + switch(grammarID) { + case 352: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso1PaymentServiceSelectionReqType->SelectedPaymentOption = (iso1paymentOptionType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 353; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 353: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso1SelectedServiceListType(stream, &iso1PaymentServiceSelectionReqType->SelectedServiceList); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertiesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignatureProperty{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso1SignaturePropertiesType(bitstream_t* stream, struct iso1SignaturePropertiesType* iso1SignaturePropertiesType) { + int grammarID = 354; + int done = 0; + + init_iso1SignaturePropertiesType(iso1SignaturePropertiesType); + + while(!done) { + switch(grammarID) { + case 354: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1SignaturePropertiesType->Id.charactersLen); + if (errn == 0) { + if (iso1SignaturePropertiesType->Id.charactersLen >= 2) { + iso1SignaturePropertiesType->Id.charactersLen = (uint16_t)(iso1SignaturePropertiesType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1SignaturePropertiesType->Id.charactersLen, iso1SignaturePropertiesType->Id.characters, iso1SignaturePropertiesType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1SignaturePropertiesType->Id_isUsed = 1u; + grammarID = 355; + break; + case 1: + if (iso1SignaturePropertiesType->SignatureProperty.arrayLen < iso1SignaturePropertiesType_SignatureProperty_ARRAY_SIZE) { + errn = decode_iso1SignaturePropertyType(stream, &iso1SignaturePropertiesType->SignatureProperty.array[iso1SignaturePropertiesType->SignatureProperty.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 356; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 355: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SignaturePropertiesType->SignatureProperty.arrayLen < iso1SignaturePropertiesType_SignatureProperty_ARRAY_SIZE) { + errn = decode_iso1SignaturePropertyType(stream, &iso1SignaturePropertiesType->SignatureProperty.array[iso1SignaturePropertiesType->SignatureProperty.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 356; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 356: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SignaturePropertiesType->SignatureProperty.arrayLen < iso1SignaturePropertiesType_SignatureProperty_ARRAY_SIZE) { + errn = decode_iso1SignaturePropertyType(stream, &iso1SignaturePropertiesType->SignatureProperty.array[iso1SignaturePropertiesType->SignatureProperty.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 356; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,BodyBaseType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_iso1BodyBaseType(bitstream_t* stream, struct iso1BodyBaseType* iso1BodyBaseType) { + int grammarID = 34; + int done = 0; + + init_iso1BodyBaseType(iso1BodyBaseType); + + while(!done) { + switch(grammarID) { + case 34: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SupportedEnergyTransferModeType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EnergyTransferMode{1-6})', derivedBy='RESTRICTION'. */ +static int decode_iso1SupportedEnergyTransferModeType(bitstream_t* stream, struct iso1SupportedEnergyTransferModeType* iso1SupportedEnergyTransferModeType) { + int grammarID = 357; + int done = 0; + + init_iso1SupportedEnergyTransferModeType(iso1SupportedEnergyTransferModeType); + + while(!done) { + switch(grammarID) { + case 357: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen < iso1SupportedEnergyTransferModeType_EnergyTransferMode_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &uint32); + iso1SupportedEnergyTransferModeType->EnergyTransferMode.array[iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen] = (iso1EnergyTransferModeType) uint32; + iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 358; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 358: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen < iso1SupportedEnergyTransferModeType_EnergyTransferMode_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &uint32); + iso1SupportedEnergyTransferModeType->EnergyTransferMode.array[iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen] = (iso1EnergyTransferModeType) uint32; + iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 359; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 359: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen < iso1SupportedEnergyTransferModeType_EnergyTransferMode_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &uint32); + iso1SupportedEnergyTransferModeType->EnergyTransferMode.array[iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen] = (iso1EnergyTransferModeType) uint32; + iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 360; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 360: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen < iso1SupportedEnergyTransferModeType_EnergyTransferMode_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &uint32); + iso1SupportedEnergyTransferModeType->EnergyTransferMode.array[iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen] = (iso1EnergyTransferModeType) uint32; + iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 361; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 361: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen < iso1SupportedEnergyTransferModeType_EnergyTransferMode_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &uint32); + iso1SupportedEnergyTransferModeType->EnergyTransferMode.array[iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen] = (iso1EnergyTransferModeType) uint32; + iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 362; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 362: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen < iso1SupportedEnergyTransferModeType_EnergyTransferMode_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &uint32); + iso1SupportedEnergyTransferModeType->EnergyTransferMode.array[iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen] = (iso1EnergyTransferModeType) uint32; + iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargingStatusReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int decode_iso1ChargingStatusReqType(bitstream_t* stream, struct iso1ChargingStatusReqType* iso1ChargingStatusReqType) { + int grammarID = 34; + int done = 0; + + init_iso1ChargingStatusReqType(iso1ChargingStatusReqType); + + while(!done) { + switch(grammarID) { + case 34: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentServiceSelectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */ +static int decode_iso1PaymentServiceSelectionResType(bitstream_t* stream, struct iso1PaymentServiceSelectionResType* iso1PaymentServiceSelectionResType) { + int grammarID = 122; + int done = 0; + + init_iso1PaymentServiceSelectionResType(iso1PaymentServiceSelectionResType); + + while(!done) { + switch(grammarID) { + case 122: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso1PaymentServiceSelectionResType->ResponseCode = (iso1responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso1DigestMethodType(bitstream_t* stream, struct iso1DigestMethodType* iso1DigestMethodType) { + int grammarID = 312; + int done = 0; + + init_iso1DigestMethodType(iso1DigestMethodType); + + while(!done) { + switch(grammarID) { + case 312: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1DigestMethodType->Algorithm.charactersLen); + if (errn == 0) { + if (iso1DigestMethodType->Algorithm.charactersLen >= 2) { + iso1DigestMethodType->Algorithm.charactersLen = (uint16_t)(iso1DigestMethodType->Algorithm.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1DigestMethodType->Algorithm.charactersLen, iso1DigestMethodType->Algorithm.characters, iso1DigestMethodType_Algorithm_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 115; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 115: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 116; + break; + case 1: + done = 1; + grammarID = 4; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso1DigestMethodType->ANY.charactersLen); + if (errn == 0) { + if (iso1DigestMethodType->ANY.charactersLen >= 2) { + iso1DigestMethodType->ANY.charactersLen = (uint16_t)(iso1DigestMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1DigestMethodType->ANY.charactersLen, iso1DigestMethodType->ANY.characters, iso1DigestMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1DigestMethodType->ANY_isUsed = 1u; + grammarID = 116; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 116: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 116; + break; + case 1: + done = 1; + grammarID = 4; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso1DigestMethodType->ANY.charactersLen); + if (errn == 0) { + if (iso1DigestMethodType->ANY.charactersLen >= 2) { + iso1DigestMethodType->ANY.charactersLen = (uint16_t)(iso1DigestMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1DigestMethodType->ANY.charactersLen, iso1DigestMethodType->ANY.characters, iso1DigestMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1DigestMethodType->ANY_isUsed = 1u; + grammarID = 116; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_iso1SignaturePropertyType(bitstream_t* stream, struct iso1SignaturePropertyType* iso1SignaturePropertyType) { + int grammarID = 363; + int done = 0; + + init_iso1SignaturePropertyType(iso1SignaturePropertyType); + + while(!done) { + switch(grammarID) { + case 363: + /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1SignaturePropertyType->Id.charactersLen); + if (errn == 0) { + if (iso1SignaturePropertyType->Id.charactersLen >= 2) { + iso1SignaturePropertyType->Id.charactersLen = (uint16_t)(iso1SignaturePropertyType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1SignaturePropertyType->Id.charactersLen, iso1SignaturePropertyType->Id.characters, iso1SignaturePropertyType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1SignaturePropertyType->Id_isUsed = 1u; + grammarID = 364; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso1SignaturePropertyType->Target.charactersLen); + if (errn == 0) { + if (iso1SignaturePropertyType->Target.charactersLen >= 2) { + iso1SignaturePropertyType->Target.charactersLen = (uint16_t)(iso1SignaturePropertyType->Target.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1SignaturePropertyType->Target.charactersLen, iso1SignaturePropertyType->Target.characters, iso1SignaturePropertyType_Target_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 365; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 364: + /* StartTag[ATTRIBUTE[STRING](Target)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso1SignaturePropertyType->Target.charactersLen); + if (errn == 0) { + if (iso1SignaturePropertyType->Target.charactersLen >= 2) { + iso1SignaturePropertyType->Target.charactersLen = (uint16_t)(iso1SignaturePropertyType->Target.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1SignaturePropertyType->Target.charactersLen, iso1SignaturePropertyType->Target.characters, iso1SignaturePropertyType_Target_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 365; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 365: + /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 116; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso1SignaturePropertyType->ANY.charactersLen); + if (errn == 0) { + if (iso1SignaturePropertyType->ANY.charactersLen >= 2) { + iso1SignaturePropertyType->ANY.charactersLen = (uint16_t)(iso1SignaturePropertyType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1SignaturePropertyType->ANY.charactersLen, iso1SignaturePropertyType->ANY.characters, iso1SignaturePropertyType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1SignaturePropertyType->ANY_isUsed = 1u; + grammarID = 366; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 116: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 116; + break; + case 1: + done = 1; + grammarID = 4; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso1SignaturePropertyType->ANY.charactersLen); + if (errn == 0) { + if (iso1SignaturePropertyType->ANY.charactersLen >= 2) { + iso1SignaturePropertyType->ANY.charactersLen = (uint16_t)(iso1SignaturePropertyType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1SignaturePropertyType->ANY.charactersLen, iso1SignaturePropertyType->ANY.characters, iso1SignaturePropertyType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1SignaturePropertyType->ANY_isUsed = 1u; + grammarID = 116; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 366: + /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 116; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso1SignaturePropertyType->ANY.charactersLen); + if (errn == 0) { + if (iso1SignaturePropertyType->ANY.charactersLen >= 2) { + iso1SignaturePropertyType->ANY.charactersLen = (uint16_t)(iso1SignaturePropertyType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso1SignaturePropertyType->ANY.charactersLen, iso1SignaturePropertyType->ANY.characters, iso1SignaturePropertyType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso1SignaturePropertyType->ANY_isUsed = 1u; + grammarID = 366; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */ +static int decode_iso1PGPDataType(bitstream_t* stream, struct iso1PGPDataType* iso1PGPDataType) { + int grammarID = 367; + int done = 0; + + init_iso1PGPDataType(iso1PGPDataType); + + while(!done) { + switch(grammarID) { + case 367: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1PGPDataType->PGPKeyID.bytesLen); + if (errn == 0) { + errn = (iso1PGPDataType->PGPKeyID.bytesLen) <= iso1PGPDataType_PGPKeyID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1PGPDataType->PGPKeyID.bytesLen, iso1PGPDataType->PGPKeyID.bytes); + } + iso1PGPDataType->PGPKeyID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 368; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1PGPDataType->PGPKeyPacket.bytesLen); + if (errn == 0) { + errn = (iso1PGPDataType->PGPKeyPacket.bytesLen) <= iso1PGPDataType_PGPKeyPacket_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1PGPDataType->PGPKeyPacket.bytesLen, iso1PGPDataType->PGPKeyPacket.bytes); + } + iso1PGPDataType->PGPKeyPacket_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 369; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 368: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso1PGPDataType->PGPKeyPacket.bytesLen); + if (errn == 0) { + errn = (iso1PGPDataType->PGPKeyPacket.bytesLen) <= iso1PGPDataType_PGPKeyPacket_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso1PGPDataType->PGPKeyPacket.bytesLen, iso1PGPDataType->PGPKeyPacket.bytes); + } + iso1PGPDataType->PGPKeyPacket_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 369; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 369; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 369: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 369; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +int decode_iso1EXISchemaInformedElementFragmentGrammar(bitstream_t* stream, struct iso1EXISchemaInformedElementFragmentGrammar* exiElementFrag) { + int grammarID = 370; + int done = 0; + + init_iso1EXISchemaInformedElementFragmentGrammar(exiElementFrag); + while(!done) { + switch(grammarID) { + case 370: + /* First(xsi:type)(xsi:nil)StartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 9, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 4: + errn = decodeUnsignedInteger16(stream, &exiElementFrag->Id.charactersLen); + if (errn == 0) { + if (exiElementFrag->Id.charactersLen >= 2) { + exiElementFrag->Id.charactersLen = (uint16_t)(exiElementFrag->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiElementFrag->Id.charactersLen, exiElementFrag->Id.characters, iso1exiElementFrag_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiElementFrag->Id_isUsed = 1u; + grammarID = 370; + break; + case 255: + done = 1; + grammarID = 4; + break; + case 256: + errn = decodeUnsignedInteger16(stream, &exiElementFrag->CHARACTERS_GENERIC.charactersLen); + if (errn == 0) { + if (exiElementFrag->CHARACTERS_GENERIC.charactersLen >= 2) { + exiElementFrag->CHARACTERS_GENERIC.charactersLen = (uint16_t)(exiElementFrag->CHARACTERS_GENERIC.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiElementFrag->CHARACTERS_GENERIC.charactersLen, exiElementFrag->CHARACTERS_GENERIC.characters, iso1exiElementFrag_CHARACTERS_GENERIC_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiElementFrag->CHARACTERS_GENERIC_isUsed = 1u; + grammarID = 371; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 371: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 8, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 244: + done = 1; + grammarID = 4; + break; + case 245: + errn = decodeUnsignedInteger16(stream, &exiElementFrag->CHARACTERS_GENERIC.charactersLen); + if (errn == 0) { + if (exiElementFrag->CHARACTERS_GENERIC.charactersLen >= 2) { + exiElementFrag->CHARACTERS_GENERIC.charactersLen = (uint16_t)(exiElementFrag->CHARACTERS_GENERIC.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiElementFrag->CHARACTERS_GENERIC.charactersLen, exiElementFrag->CHARACTERS_GENERIC.characters, iso1exiElementFrag_CHARACTERS_GENERIC_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiElementFrag->CHARACTERS_GENERIC_isUsed = 1u; + grammarID = 371; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + + + + +int decode_iso1ExiDocument(bitstream_t* stream, struct iso1EXIDocument* exiDoc) { + errn = readEXIHeader(stream); + + if(errn == 0) { + /* DocContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] */ + init_iso1EXIDocument(exiDoc); + errn = decodeNBitUnsignedInteger(stream, 7, &eventCode); + if(errn == 0) { + switch(eventCode) { + case 0: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter) */ + errn = decode_iso1AC_EVChargeParameterType(stream, &exiDoc->AC_EVChargeParameter); + exiDoc->AC_EVChargeParameter_isUsed = 1u; + break; + case 1: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter) */ + errn = decode_iso1AC_EVSEChargeParameterType(stream, &exiDoc->AC_EVSEChargeParameter); + exiDoc->AC_EVSEChargeParameter_isUsed = 1u; + break; + case 2: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus) */ + errn = decode_iso1AC_EVSEStatusType(stream, &exiDoc->AC_EVSEStatus); + exiDoc->AC_EVSEStatus_isUsed = 1u; + break; + case 3: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq) */ + errn = decode_iso1AuthorizationReqType(stream, &exiDoc->AuthorizationReq); + exiDoc->AuthorizationReq_isUsed = 1u; + break; + case 4: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes) */ + errn = decode_iso1AuthorizationResType(stream, &exiDoc->AuthorizationRes); + exiDoc->AuthorizationRes_isUsed = 1u; + break; + case 5: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement) */ + errn = decode_iso1BodyBaseType(stream, &exiDoc->BodyElement); + exiDoc->BodyElement_isUsed = 1u; + break; + case 6: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq) */ + errn = decode_iso1CableCheckReqType(stream, &exiDoc->CableCheckReq); + exiDoc->CableCheckReq_isUsed = 1u; + break; + case 7: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes) */ + errn = decode_iso1CableCheckResType(stream, &exiDoc->CableCheckRes); + exiDoc->CableCheckRes_isUsed = 1u; + break; + case 8: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */ + errn = decode_iso1CanonicalizationMethodType(stream, &exiDoc->CanonicalizationMethod); + exiDoc->CanonicalizationMethod_isUsed = 1u; + break; + case 9: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq) */ + errn = decode_iso1CertificateInstallationReqType(stream, &exiDoc->CertificateInstallationReq); + exiDoc->CertificateInstallationReq_isUsed = 1u; + break; + case 10: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes) */ + errn = decode_iso1CertificateInstallationResType(stream, &exiDoc->CertificateInstallationRes); + exiDoc->CertificateInstallationRes_isUsed = 1u; + break; + case 11: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq) */ + errn = decode_iso1CertificateUpdateReqType(stream, &exiDoc->CertificateUpdateReq); + exiDoc->CertificateUpdateReq_isUsed = 1u; + break; + case 12: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes) */ + errn = decode_iso1CertificateUpdateResType(stream, &exiDoc->CertificateUpdateRes); + exiDoc->CertificateUpdateRes_isUsed = 1u; + break; + case 13: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq) */ + errn = decode_iso1ChargeParameterDiscoveryReqType(stream, &exiDoc->ChargeParameterDiscoveryReq); + exiDoc->ChargeParameterDiscoveryReq_isUsed = 1u; + break; + case 14: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes) */ + errn = decode_iso1ChargeParameterDiscoveryResType(stream, &exiDoc->ChargeParameterDiscoveryRes); + exiDoc->ChargeParameterDiscoveryRes_isUsed = 1u; + break; + case 15: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq) */ + errn = decode_iso1ChargingStatusReqType(stream, &exiDoc->ChargingStatusReq); + exiDoc->ChargingStatusReq_isUsed = 1u; + break; + case 16: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes) */ + errn = decode_iso1ChargingStatusResType(stream, &exiDoc->ChargingStatusRes); + exiDoc->ChargingStatusRes_isUsed = 1u; + break; + case 17: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq) */ + errn = decode_iso1CurrentDemandReqType(stream, &exiDoc->CurrentDemandReq); + exiDoc->CurrentDemandReq_isUsed = 1u; + break; + case 18: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes) */ + errn = decode_iso1CurrentDemandResType(stream, &exiDoc->CurrentDemandRes); + exiDoc->CurrentDemandRes_isUsed = 1u; + break; + case 19: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter) */ + errn = decode_iso1DC_EVChargeParameterType(stream, &exiDoc->DC_EVChargeParameter); + exiDoc->DC_EVChargeParameter_isUsed = 1u; + break; + case 20: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter) */ + errn = decode_iso1DC_EVPowerDeliveryParameterType(stream, &exiDoc->DC_EVPowerDeliveryParameter); + exiDoc->DC_EVPowerDeliveryParameter_isUsed = 1u; + break; + case 21: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter) */ + errn = decode_iso1DC_EVSEChargeParameterType(stream, &exiDoc->DC_EVSEChargeParameter); + exiDoc->DC_EVSEChargeParameter_isUsed = 1u; + break; + case 22: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus) */ + errn = decode_iso1DC_EVSEStatusType(stream, &exiDoc->DC_EVSEStatus); + exiDoc->DC_EVSEStatus_isUsed = 1u; + break; + case 23: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus) */ + errn = decode_iso1DC_EVStatusType(stream, &exiDoc->DC_EVStatus); + exiDoc->DC_EVStatus_isUsed = 1u; + break; + case 24: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */ + errn = decode_iso1DSAKeyValueType(stream, &exiDoc->DSAKeyValue); + exiDoc->DSAKeyValue_isUsed = 1u; + break; + case 25: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */ + errn = decode_iso1DigestMethodType(stream, &exiDoc->DigestMethod); + exiDoc->DigestMethod_isUsed = 1u; + break; + case 26: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiDoc->DigestValue.bytesLen); + if (errn == 0) { + errn = (exiDoc->DigestValue.bytesLen) <= iso1EXIDocument_DigestValue_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiDoc->DigestValue.bytesLen, exiDoc->DigestValue.bytes); + } + exiDoc->DigestValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 27: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter) */ + errn = decode_iso1EVChargeParameterType(stream, &exiDoc->EVChargeParameter); + exiDoc->EVChargeParameter_isUsed = 1u; + break; + case 28: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter) */ + errn = decode_iso1EVPowerDeliveryParameterType(stream, &exiDoc->EVPowerDeliveryParameter); + exiDoc->EVPowerDeliveryParameter_isUsed = 1u; + break; + case 29: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter) */ + errn = decode_iso1EVSEChargeParameterType(stream, &exiDoc->EVSEChargeParameter); + exiDoc->EVSEChargeParameter_isUsed = 1u; + break; + case 30: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus) */ + errn = decode_iso1EVSEStatusType(stream, &exiDoc->EVSEStatus); + exiDoc->EVSEStatus_isUsed = 1u; + break; + case 31: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus) */ + errn = decode_iso1EVStatusType(stream, &exiDoc->EVStatus); + exiDoc->EVStatus_isUsed = 1u; + break; + case 32: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry) */ + errn = decode_iso1EntryType(stream, &exiDoc->Entry); + exiDoc->Entry_isUsed = 1u; + break; + case 33: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */ + errn = decode_iso1KeyInfoType(stream, &exiDoc->KeyInfo); + exiDoc->KeyInfo_isUsed = 1u; + break; + case 34: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiDoc->KeyName.charactersLen); + if (errn == 0) { + if (exiDoc->KeyName.charactersLen >= 2) { + exiDoc->KeyName.charactersLen = (uint16_t)(exiDoc->KeyName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiDoc->KeyName.charactersLen, exiDoc->KeyName.characters, iso1EXIDocument_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiDoc->KeyName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 35: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */ + errn = decode_iso1KeyValueType(stream, &exiDoc->KeyValue); + exiDoc->KeyValue_isUsed = 1u; + break; + case 36: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */ + errn = decode_iso1ManifestType(stream, &exiDoc->Manifest); + exiDoc->Manifest_isUsed = 1u; + break; + case 37: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq) */ + errn = decode_iso1MeteringReceiptReqType(stream, &exiDoc->MeteringReceiptReq); + exiDoc->MeteringReceiptReq_isUsed = 1u; + break; + case 38: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes) */ + errn = decode_iso1MeteringReceiptResType(stream, &exiDoc->MeteringReceiptRes); + exiDoc->MeteringReceiptRes_isUsed = 1u; + break; + case 39: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiDoc->MgmtData.charactersLen); + if (errn == 0) { + if (exiDoc->MgmtData.charactersLen >= 2) { + exiDoc->MgmtData.charactersLen = (uint16_t)(exiDoc->MgmtData.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiDoc->MgmtData.charactersLen, exiDoc->MgmtData.characters, iso1EXIDocument_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiDoc->MgmtData_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 40: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */ + errn = decode_iso1ObjectType(stream, &exiDoc->Object); + exiDoc->Object_isUsed = 1u; + break; + case 41: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */ + errn = decode_iso1PGPDataType(stream, &exiDoc->PGPData); + exiDoc->PGPData_isUsed = 1u; + break; + case 42: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry) */ + errn = decode_iso1PMaxScheduleEntryType(stream, &exiDoc->PMaxScheduleEntry); + exiDoc->PMaxScheduleEntry_isUsed = 1u; + break; + case 43: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq) */ + errn = decode_iso1PaymentDetailsReqType(stream, &exiDoc->PaymentDetailsReq); + exiDoc->PaymentDetailsReq_isUsed = 1u; + break; + case 44: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes) */ + errn = decode_iso1PaymentDetailsResType(stream, &exiDoc->PaymentDetailsRes); + exiDoc->PaymentDetailsRes_isUsed = 1u; + break; + case 45: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq) */ + errn = decode_iso1PaymentServiceSelectionReqType(stream, &exiDoc->PaymentServiceSelectionReq); + exiDoc->PaymentServiceSelectionReq_isUsed = 1u; + break; + case 46: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes) */ + errn = decode_iso1PaymentServiceSelectionResType(stream, &exiDoc->PaymentServiceSelectionRes); + exiDoc->PaymentServiceSelectionRes_isUsed = 1u; + break; + case 47: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq) */ + errn = decode_iso1PowerDeliveryReqType(stream, &exiDoc->PowerDeliveryReq); + exiDoc->PowerDeliveryReq_isUsed = 1u; + break; + case 48: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes) */ + errn = decode_iso1PowerDeliveryResType(stream, &exiDoc->PowerDeliveryRes); + exiDoc->PowerDeliveryRes_isUsed = 1u; + break; + case 49: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq) */ + errn = decode_iso1PreChargeReqType(stream, &exiDoc->PreChargeReq); + exiDoc->PreChargeReq_isUsed = 1u; + break; + case 50: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes) */ + errn = decode_iso1PreChargeResType(stream, &exiDoc->PreChargeRes); + exiDoc->PreChargeRes_isUsed = 1u; + break; + case 51: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */ + errn = decode_iso1RSAKeyValueType(stream, &exiDoc->RSAKeyValue); + exiDoc->RSAKeyValue_isUsed = 1u; + break; + case 52: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */ + errn = decode_iso1ReferenceType(stream, &exiDoc->Reference); + exiDoc->Reference_isUsed = 1u; + break; + case 53: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval) */ + errn = decode_iso1RelativeTimeIntervalType(stream, &exiDoc->RelativeTimeInterval); + exiDoc->RelativeTimeInterval_isUsed = 1u; + break; + case 54: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */ + errn = decode_iso1RetrievalMethodType(stream, &exiDoc->RetrievalMethod); + exiDoc->RetrievalMethod_isUsed = 1u; + break; + case 55: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList) */ + errn = decode_iso1SAScheduleListType(stream, &exiDoc->SAScheduleList); + exiDoc->SAScheduleList_isUsed = 1u; + break; + case 56: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules) */ + errn = decode_iso1SASchedulesType(stream, &exiDoc->SASchedules); + exiDoc->SASchedules_isUsed = 1u; + break; + case 57: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */ + errn = decode_iso1SPKIDataType(stream, &exiDoc->SPKIData); + exiDoc->SPKIData_isUsed = 1u; + break; + case 58: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry) */ + errn = decode_iso1SalesTariffEntryType(stream, &exiDoc->SalesTariffEntry); + exiDoc->SalesTariffEntry_isUsed = 1u; + break; + case 59: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq) */ + errn = decode_iso1ServiceDetailReqType(stream, &exiDoc->ServiceDetailReq); + exiDoc->ServiceDetailReq_isUsed = 1u; + break; + case 60: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes) */ + errn = decode_iso1ServiceDetailResType(stream, &exiDoc->ServiceDetailRes); + exiDoc->ServiceDetailRes_isUsed = 1u; + break; + case 61: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq) */ + errn = decode_iso1ServiceDiscoveryReqType(stream, &exiDoc->ServiceDiscoveryReq); + exiDoc->ServiceDiscoveryReq_isUsed = 1u; + break; + case 62: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes) */ + errn = decode_iso1ServiceDiscoveryResType(stream, &exiDoc->ServiceDiscoveryRes); + exiDoc->ServiceDiscoveryRes_isUsed = 1u; + break; + case 63: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq) */ + errn = decode_iso1SessionSetupReqType(stream, &exiDoc->SessionSetupReq); + exiDoc->SessionSetupReq_isUsed = 1u; + break; + case 64: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes) */ + errn = decode_iso1SessionSetupResType(stream, &exiDoc->SessionSetupRes); + exiDoc->SessionSetupRes_isUsed = 1u; + break; + case 65: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq) */ + errn = decode_iso1SessionStopReqType(stream, &exiDoc->SessionStopReq); + exiDoc->SessionStopReq_isUsed = 1u; + break; + case 66: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes) */ + errn = decode_iso1SessionStopResType(stream, &exiDoc->SessionStopRes); + exiDoc->SessionStopRes_isUsed = 1u; + break; + case 67: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */ + errn = decode_iso1SignatureType(stream, &exiDoc->Signature); + exiDoc->Signature_isUsed = 1u; + break; + case 68: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */ + errn = decode_iso1SignatureMethodType(stream, &exiDoc->SignatureMethod); + exiDoc->SignatureMethod_isUsed = 1u; + break; + case 69: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */ + errn = decode_iso1SignaturePropertiesType(stream, &exiDoc->SignatureProperties); + exiDoc->SignatureProperties_isUsed = 1u; + break; + case 70: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */ + errn = decode_iso1SignaturePropertyType(stream, &exiDoc->SignatureProperty); + exiDoc->SignatureProperty_isUsed = 1u; + break; + case 71: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */ + errn = decode_iso1SignatureValueType(stream, &exiDoc->SignatureValue); + exiDoc->SignatureValue_isUsed = 1u; + break; + case 72: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */ + errn = decode_iso1SignedInfoType(stream, &exiDoc->SignedInfo); + exiDoc->SignedInfo_isUsed = 1u; + break; + case 73: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval) */ + errn = decode_iso1IntervalType(stream, &exiDoc->TimeInterval); + exiDoc->TimeInterval_isUsed = 1u; + break; + case 74: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */ + errn = decode_iso1TransformType(stream, &exiDoc->Transform); + exiDoc->Transform_isUsed = 1u; + break; + case 75: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */ + errn = decode_iso1TransformsType(stream, &exiDoc->Transforms); + exiDoc->Transforms_isUsed = 1u; + break; + case 76: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message) */ + errn = decode_iso1AnonType_V2G_Message(stream, &exiDoc->V2G_Message); + exiDoc->V2G_Message_isUsed = 1u; + break; + case 77: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq) */ + errn = decode_iso1WeldingDetectionReqType(stream, &exiDoc->WeldingDetectionReq); + exiDoc->WeldingDetectionReq_isUsed = 1u; + break; + case 78: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes) */ + errn = decode_iso1WeldingDetectionResType(stream, &exiDoc->WeldingDetectionRes); + exiDoc->WeldingDetectionRes_isUsed = 1u; + break; + case 79: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */ + errn = decode_iso1X509DataType(stream, &exiDoc->X509Data); + exiDoc->X509Data_isUsed = 1u; + break; + default: + errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; + break; + } + } + + } + + (void)exiDoc; /* avoid unused warning */ + (void)eventCode; /* avoid unused warning */ + (void)uint32; /* avoid unused warning */ + + return errn; +} + +#if DEPLOY_ISO1_CODEC_FRAGMENT == SUPPORT_YES +int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag) { + errn = readEXIHeader(stream); + + if(errn == 0) { + /* FragmentContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_DOCUMENT] */ + init_iso1EXIFragment(exiFrag); + errn = decodeNBitUnsignedInteger(stream, 8, &eventCode); + if(errn == 0) { + switch(eventCode) { + case 0: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter) */ + errn = decode_iso1AC_EVChargeParameterType(stream, &exiFrag->AC_EVChargeParameter); + exiFrag->AC_EVChargeParameter_isUsed = 1u; + break; + case 1: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter) */ + errn = decode_iso1AC_EVSEChargeParameterType(stream, &exiFrag->AC_EVSEChargeParameter); + exiFrag->AC_EVSEChargeParameter_isUsed = 1u; + break; + case 2: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus) */ + errn = decode_iso1AC_EVSEStatusType(stream, &exiFrag->AC_EVSEStatus); + exiFrag->AC_EVSEStatus_isUsed = 1u; + break; + case 3: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus) */ + errn = decode_iso1AC_EVSEStatusType(stream, &exiFrag->AC_EVSEStatus); + exiFrag->AC_EVSEStatus_isUsed = 1u; + break; + case 4: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq) */ + errn = decode_iso1AuthorizationReqType(stream, &exiFrag->AuthorizationReq); + exiFrag->AuthorizationReq_isUsed = 1u; + break; + case 5: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes) */ + errn = decode_iso1AuthorizationResType(stream, &exiFrag->AuthorizationRes); + exiFrag->AuthorizationRes_isUsed = 1u; + break; + case 6: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body) */ + errn = decode_iso1BodyType(stream, &exiFrag->Body); + exiFrag->Body_isUsed = 1u; + break; + case 7: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement) */ + errn = decode_iso1BodyBaseType(stream, &exiFrag->BodyElement); + exiFrag->BodyElement_isUsed = 1u; + break; + case 8: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->BulkChargingComplete); + exiFrag->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 9: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->BulkChargingComplete); + exiFrag->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 10: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + exiFrag->BulkSOC = (int8_t)(uint32 + 0); + exiFrag->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 11: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq) */ + errn = decode_iso1CableCheckReqType(stream, &exiFrag->CableCheckReq); + exiFrag->CableCheckReq_isUsed = 1u; + break; + case 12: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes) */ + errn = decode_iso1CableCheckResType(stream, &exiFrag->CableCheckRes); + exiFrag->CableCheckRes_isUsed = 1u; + break; + case 13: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */ + errn = decode_iso1CanonicalizationMethodType(stream, &exiFrag->CanonicalizationMethod); + exiFrag->CanonicalizationMethod_isUsed = 1u; + break; + case 14: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Certificate.bytesLen); + if (errn == 0) { + errn = (exiFrag->Certificate.bytesLen) <= iso1EXIFragment_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Certificate.bytesLen, exiFrag->Certificate.bytes); + } + exiFrag->Certificate_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 15: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq) */ + errn = decode_iso1CertificateInstallationReqType(stream, &exiFrag->CertificateInstallationReq); + exiFrag->CertificateInstallationReq_isUsed = 1u; + break; + case 16: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes) */ + errn = decode_iso1CertificateInstallationResType(stream, &exiFrag->CertificateInstallationRes); + exiFrag->CertificateInstallationRes_isUsed = 1u; + break; + case 17: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq) */ + errn = decode_iso1CertificateUpdateReqType(stream, &exiFrag->CertificateUpdateReq); + exiFrag->CertificateUpdateReq_isUsed = 1u; + break; + case 18: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes) */ + errn = decode_iso1CertificateUpdateResType(stream, &exiFrag->CertificateUpdateRes); + exiFrag->CertificateUpdateRes_isUsed = 1u; + break; + case 19: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq) */ + errn = decode_iso1ChargeParameterDiscoveryReqType(stream, &exiFrag->ChargeParameterDiscoveryReq); + exiFrag->ChargeParameterDiscoveryReq_isUsed = 1u; + break; + case 20: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes) */ + errn = decode_iso1ChargeParameterDiscoveryResType(stream, &exiFrag->ChargeParameterDiscoveryRes); + exiFrag->ChargeParameterDiscoveryRes_isUsed = 1u; + break; + case 21: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->ChargeProgress = (iso1chargeProgressType) uint32; + exiFrag->ChargeProgress_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 22: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService) */ + errn = decode_iso1ChargeServiceType(stream, &exiFrag->ChargeService); + exiFrag->ChargeService_isUsed = 1u; + break; + case 23: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->ChargingComplete); + exiFrag->ChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 24: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->ChargingComplete); + exiFrag->ChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 25: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile) */ + errn = decode_iso1ChargingProfileType(stream, &exiFrag->ChargingProfile); + exiFrag->ChargingProfile_isUsed = 1u; + break; + case 26: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &(uint32)); + exiFrag->ChargingProfileEntryMaxNumberOfPhasesInUse = (int8_t)(uint32 + 1); + exiFrag->ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 27: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->ChargingProfileEntryMaxPower); + exiFrag->ChargingProfileEntryMaxPower_isUsed = 1u; + break; + case 28: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &exiFrag->ChargingProfileEntryStart); + exiFrag->ChargingProfileEntryStart_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 29: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + exiFrag->ChargingSession = (iso1chargingSessionType) uint32; + exiFrag->ChargingSession_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 30: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq) */ + errn = decode_iso1ChargingStatusReqType(stream, &exiFrag->ChargingStatusReq); + exiFrag->ChargingStatusReq_isUsed = 1u; + break; + case 31: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes) */ + errn = decode_iso1ChargingStatusResType(stream, &exiFrag->ChargingStatusRes); + exiFrag->ChargingStatusRes_isUsed = 1u; + break; + case 32: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost) */ + errn = decode_iso1ConsumptionCostType(stream, &exiFrag->ConsumptionCost); + exiFrag->ConsumptionCost_isUsed = 1u; + break; + case 33: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain) */ + errn = decode_iso1CertificateChainType(stream, &exiFrag->ContractSignatureCertChain); + exiFrag->ContractSignatureCertChain_isUsed = 1u; + break; + case 34: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey) */ + errn = decode_iso1ContractSignatureEncryptedPrivateKeyType(stream, &exiFrag->ContractSignatureEncryptedPrivateKey); + exiFrag->ContractSignatureEncryptedPrivateKey_isUsed = 1u; + break; + case 35: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost) */ + errn = decode_iso1CostType(stream, &exiFrag->Cost); + exiFrag->Cost_isUsed = 1u; + break; + case 36: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq) */ + errn = decode_iso1CurrentDemandReqType(stream, &exiFrag->CurrentDemandReq); + exiFrag->CurrentDemandReq_isUsed = 1u; + break; + case 37: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes) */ + errn = decode_iso1CurrentDemandResType(stream, &exiFrag->CurrentDemandRes); + exiFrag->CurrentDemandRes_isUsed = 1u; + break; + case 38: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter) */ + errn = decode_iso1DC_EVChargeParameterType(stream, &exiFrag->DC_EVChargeParameter); + exiFrag->DC_EVChargeParameter_isUsed = 1u; + break; + case 39: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter) */ + errn = decode_iso1DC_EVPowerDeliveryParameterType(stream, &exiFrag->DC_EVPowerDeliveryParameter); + exiFrag->DC_EVPowerDeliveryParameter_isUsed = 1u; + break; + case 40: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter) */ + errn = decode_iso1DC_EVSEChargeParameterType(stream, &exiFrag->DC_EVSEChargeParameter); + exiFrag->DC_EVSEChargeParameter_isUsed = 1u; + break; + case 41: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus) */ + errn = decode_iso1DC_EVSEStatusType(stream, &exiFrag->DC_EVSEStatus); + exiFrag->DC_EVSEStatus_isUsed = 1u; + break; + case 42: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus) */ + errn = decode_iso1DC_EVSEStatusType(stream, &exiFrag->DC_EVSEStatus); + exiFrag->DC_EVSEStatus_isUsed = 1u; + break; + case 43: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus) */ + errn = decode_iso1DC_EVStatusType(stream, &exiFrag->DC_EVStatus); + exiFrag->DC_EVStatus_isUsed = 1u; + break; + case 44: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus) */ + errn = decode_iso1DC_EVStatusType(stream, &exiFrag->DC_EVStatus); + exiFrag->DC_EVStatus_isUsed = 1u; + break; + case 45: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey) */ + errn = decode_iso1DiffieHellmanPublickeyType(stream, &exiFrag->DHpublickey); + exiFrag->DHpublickey_isUsed = 1u; + break; + case 46: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */ + errn = decode_iso1DSAKeyValueType(stream, &exiFrag->DSAKeyValue); + exiFrag->DSAKeyValue_isUsed = 1u; + break; + case 47: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &exiFrag->DepartureTime); + exiFrag->DepartureTime_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 48: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */ + errn = decode_iso1DigestMethodType(stream, &exiFrag->DigestMethod); + exiFrag->DigestMethod_isUsed = 1u; + break; + case 49: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->DigestValue.bytesLen); + if (errn == 0) { + errn = (exiFrag->DigestValue.bytesLen) <= iso1EXIFragment_DigestValue_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->DigestValue.bytesLen, exiFrag->DigestValue.bytes); + } + exiFrag->DigestValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 50: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EAmount); + exiFrag->EAmount_isUsed = 1u; + break; + case 51: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel) */ + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->EPriceLevel = (uint8_t)(uint32 + 0); + exiFrag->EPriceLevel_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 52: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID) */ + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->EVCCID.bytesLen); + if (errn == 0) { + errn = (exiFrag->EVCCID.bytesLen) <= iso1EXIFragment_EVCCID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->EVCCID.bytesLen, exiFrag->EVCCID.bytes); + } + exiFrag->EVCCID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 53: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter) */ + errn = decode_iso1EVChargeParameterType(stream, &exiFrag->EVChargeParameter); + exiFrag->EVChargeParameter_isUsed = 1u; + break; + case 54: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVEnergyCapacity); + exiFrag->EVEnergyCapacity_isUsed = 1u; + break; + case 55: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVEnergyRequest); + exiFrag->EVEnergyRequest_isUsed = 1u; + break; + case 56: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 4, &uint32); + exiFrag->EVErrorCode = (iso1DC_EVErrorCodeType) uint32; + exiFrag->EVErrorCode_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 57: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVMaxCurrent); + exiFrag->EVMaxCurrent_isUsed = 1u; + break; + case 58: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVMaxVoltage); + exiFrag->EVMaxVoltage_isUsed = 1u; + break; + case 59: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumCurrentLimit); + exiFrag->EVMaximumCurrentLimit_isUsed = 1u; + break; + case 60: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumCurrentLimit); + exiFrag->EVMaximumCurrentLimit_isUsed = 1u; + break; + case 61: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumPowerLimit); + exiFrag->EVMaximumPowerLimit_isUsed = 1u; + break; + case 62: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumPowerLimit); + exiFrag->EVMaximumPowerLimit_isUsed = 1u; + break; + case 63: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumVoltageLimit); + exiFrag->EVMaximumVoltageLimit_isUsed = 1u; + break; + case 64: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumVoltageLimit); + exiFrag->EVMaximumVoltageLimit_isUsed = 1u; + break; + case 65: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVMinCurrent); + exiFrag->EVMinCurrent_isUsed = 1u; + break; + case 66: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter) */ + errn = decode_iso1EVPowerDeliveryParameterType(stream, &exiFrag->EVPowerDeliveryParameter); + exiFrag->EVPowerDeliveryParameter_isUsed = 1u; + break; + case 67: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + exiFrag->EVRESSSOC = (int8_t)(uint32 + 0); + exiFrag->EVRESSSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 68: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->EVReady); + exiFrag->EVReady_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 69: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter) */ + errn = decode_iso1EVSEChargeParameterType(stream, &exiFrag->EVSEChargeParameter); + exiFrag->EVSEChargeParameter_isUsed = 1u; + break; + case 70: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->EVSECurrentLimitAchieved); + exiFrag->EVSECurrentLimitAchieved_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 71: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSECurrentRegulationTolerance); + exiFrag->EVSECurrentRegulationTolerance_isUsed = 1u; + break; + case 72: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEEnergyToBeDelivered); + exiFrag->EVSEEnergyToBeDelivered_isUsed = 1u; + break; + case 73: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->EVSEID.charactersLen); + if (errn == 0) { + if (exiFrag->EVSEID.charactersLen >= 2) { + exiFrag->EVSEID.charactersLen = (uint16_t)(exiFrag->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->EVSEID.charactersLen, exiFrag->EVSEID.characters, iso1EXIFragment_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->EVSEID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 74: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &uint32); + exiFrag->EVSEIsolationStatus = (iso1isolationLevelType) uint32; + exiFrag->EVSEIsolationStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 75: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaxCurrent); + exiFrag->EVSEMaxCurrent_isUsed = 1u; + break; + case 76: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaxCurrent); + exiFrag->EVSEMaxCurrent_isUsed = 1u; + break; + case 77: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumCurrentLimit); + exiFrag->EVSEMaximumCurrentLimit_isUsed = 1u; + break; + case 78: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumCurrentLimit); + exiFrag->EVSEMaximumCurrentLimit_isUsed = 1u; + break; + case 79: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumPowerLimit); + exiFrag->EVSEMaximumPowerLimit_isUsed = 1u; + break; + case 80: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumPowerLimit); + exiFrag->EVSEMaximumPowerLimit_isUsed = 1u; + break; + case 81: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumVoltageLimit); + exiFrag->EVSEMaximumVoltageLimit_isUsed = 1u; + break; + case 82: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumVoltageLimit); + exiFrag->EVSEMaximumVoltageLimit_isUsed = 1u; + break; + case 83: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEMinimumCurrentLimit); + exiFrag->EVSEMinimumCurrentLimit_isUsed = 1u; + break; + case 84: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEMinimumVoltageLimit); + exiFrag->EVSEMinimumVoltageLimit_isUsed = 1u; + break; + case 85: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSENominalVoltage); + exiFrag->EVSENominalVoltage_isUsed = 1u; + break; + case 86: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->EVSENotification = (iso1EVSENotificationType) uint32; + exiFrag->EVSENotification_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 87: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEPeakCurrentRipple); + exiFrag->EVSEPeakCurrentRipple_isUsed = 1u; + break; + case 88: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->EVSEPowerLimitAchieved); + exiFrag->EVSEPowerLimitAchieved_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 89: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEPresentCurrent); + exiFrag->EVSEPresentCurrent_isUsed = 1u; + break; + case 90: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEPresentVoltage); + exiFrag->EVSEPresentVoltage_isUsed = 1u; + break; + case 91: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->EVSEProcessing = (iso1EVSEProcessingType) uint32; + exiFrag->EVSEProcessing_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 92: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus) */ + errn = decode_iso1EVSEStatusType(stream, &exiFrag->EVSEStatus); + exiFrag->EVSEStatus_isUsed = 1u; + break; + case 93: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 4, &uint32); + exiFrag->EVSEStatusCode = (iso1DC_EVSEStatusCodeType) uint32; + exiFrag->EVSEStatusCode_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 94: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &exiFrag->EVSETimeStamp); + exiFrag->EVSETimeStamp_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 95: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->EVSEVoltageLimitAchieved); + exiFrag->EVSEVoltageLimitAchieved_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 96: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus) */ + errn = decode_iso1EVStatusType(stream, &exiFrag->EVStatus); + exiFrag->EVStatus_isUsed = 1u; + break; + case 97: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVTargetCurrent); + exiFrag->EVTargetCurrent_isUsed = 1u; + break; + case 98: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVTargetVoltage); + exiFrag->EVTargetVoltage_isUsed = 1u; + break; + case 99: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &uint32); + exiFrag->EnergyTransferMode = (iso1EnergyTransferModeType) uint32; + exiFrag->EnergyTransferMode_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 100: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry) */ + errn = decode_iso1EntryType(stream, &exiFrag->Entry); + exiFrag->Entry_isUsed = 1u; + break; + case 101: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Exponent.bytesLen); + if (errn == 0) { + errn = (exiFrag->Exponent.bytesLen) <= iso1EXIFragment_Exponent_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Exponent.bytesLen, exiFrag->Exponent.bytes); + } + exiFrag->Exponent_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 102: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->FaultCode = (iso1faultCodeType) uint32; + exiFrag->FaultCode_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 103: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->FaultMsg.charactersLen); + if (errn == 0) { + if (exiFrag->FaultMsg.charactersLen >= 2) { + exiFrag->FaultMsg.charactersLen = (uint16_t)(exiFrag->FaultMsg.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->FaultMsg.charactersLen, exiFrag->FaultMsg.characters, iso1EXIFragment_FaultMsg_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->FaultMsg_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 104: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->FreeService); + exiFrag->FreeService_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 105: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + exiFrag->FullSOC = (int8_t)(uint32 + 0); + exiFrag->FullSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 106: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->G.bytesLen); + if (errn == 0) { + errn = (exiFrag->G.bytesLen) <= iso1EXIFragment_G_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->G.bytesLen, exiFrag->G.bytes); + } + exiFrag->G_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 107: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->GenChallenge.bytesLen); + if (errn == 0) { + errn = (exiFrag->GenChallenge.bytesLen) <= iso1EXIFragment_GenChallenge_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->GenChallenge.bytesLen, exiFrag->GenChallenge.bytes); + } + exiFrag->GenChallenge_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 108: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) */ + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &exiFrag->HMACOutputLength); + exiFrag->HMACOutputLength_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 109: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header) */ + errn = decode_iso1MessageHeaderType(stream, &exiFrag->Header); + exiFrag->Header_isUsed = 1u; + break; + case 110: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->J.bytesLen); + if (errn == 0) { + errn = (exiFrag->J.bytesLen) <= iso1EXIFragment_J_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->J.bytesLen, exiFrag->J.bytes); + } + exiFrag->J_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 111: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */ + errn = decode_iso1KeyInfoType(stream, &exiFrag->KeyInfo); + exiFrag->KeyInfo_isUsed = 1u; + break; + case 112: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->KeyName.charactersLen); + if (errn == 0) { + if (exiFrag->KeyName.charactersLen >= 2) { + exiFrag->KeyName.charactersLen = (uint16_t)(exiFrag->KeyName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->KeyName.charactersLen, exiFrag->KeyName.characters, iso1EXIFragment_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->KeyName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 113: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */ + errn = decode_iso1KeyValueType(stream, &exiFrag->KeyValue); + exiFrag->KeyValue_isUsed = 1u; + break; + case 114: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs) */ + errn = decode_iso1ListOfRootCertificateIDsType(stream, &exiFrag->ListOfRootCertificateIDs); + exiFrag->ListOfRootCertificateIDs_isUsed = 1u; + break; + case 115: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */ + errn = decode_iso1ManifestType(stream, &exiFrag->Manifest); + exiFrag->Manifest_isUsed = 1u; + break; + case 116: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->MaxEntriesSAScheduleTuple); + exiFrag->MaxEntriesSAScheduleTuple_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 117: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->MeterID.charactersLen); + if (errn == 0) { + if (exiFrag->MeterID.charactersLen >= 2) { + exiFrag->MeterID.charactersLen = (uint16_t)(exiFrag->MeterID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->MeterID.charactersLen, exiFrag->MeterID.characters, iso1EXIFragment_MeterID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->MeterID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 118: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo) */ + errn = decode_iso1MeterInfoType(stream, &exiFrag->MeterInfo); + exiFrag->MeterInfo_isUsed = 1u; + break; + case 119: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger64(stream, &exiFrag->MeterReading); + exiFrag->MeterReading_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 120: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus) */ + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->MeterStatus); + exiFrag->MeterStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 121: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq) */ + errn = decode_iso1MeteringReceiptReqType(stream, &exiFrag->MeteringReceiptReq); + exiFrag->MeteringReceiptReq_isUsed = 1u; + break; + case 122: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes) */ + errn = decode_iso1MeteringReceiptResType(stream, &exiFrag->MeteringReceiptRes); + exiFrag->MeteringReceiptRes_isUsed = 1u; + break; + case 123: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->MgmtData.charactersLen); + if (errn == 0) { + if (exiFrag->MgmtData.charactersLen >= 2) { + exiFrag->MgmtData.charactersLen = (uint16_t)(exiFrag->MgmtData.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->MgmtData.charactersLen, exiFrag->MgmtData.characters, iso1EXIFragment_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->MgmtData_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 124: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Modulus.bytesLen); + if (errn == 0) { + errn = (exiFrag->Modulus.bytesLen) <= iso1EXIFragment_Modulus_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Modulus.bytesLen, exiFrag->Modulus.bytes); + } + exiFrag->Modulus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 125: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &(uint32)); + exiFrag->Multiplier = (int8_t)(uint32 -3); + exiFrag->Multiplier_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 126: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification) */ + errn = decode_iso1NotificationType(stream, &exiFrag->Notification); + exiFrag->Notification_isUsed = 1u; + break; + case 127: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->NotificationMaxDelay); + exiFrag->NotificationMaxDelay_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 128: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels) */ + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->NumEPriceLevels = (uint8_t)(uint32 + 0); + exiFrag->NumEPriceLevels_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 129: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->OEMProvisioningCert.bytesLen); + if (errn == 0) { + errn = (exiFrag->OEMProvisioningCert.bytesLen) <= iso1EXIFragment_OEMProvisioningCert_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->OEMProvisioningCert.bytesLen, exiFrag->OEMProvisioningCert.bytes); + } + exiFrag->OEMProvisioningCert_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 130: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */ + errn = decode_iso1ObjectType(stream, &exiFrag->Object); + exiFrag->Object_isUsed = 1u; + break; + case 131: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->P.bytesLen); + if (errn == 0) { + errn = (exiFrag->P.bytesLen) <= iso1EXIFragment_P_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->P.bytesLen, exiFrag->P.bytes); + } + exiFrag->P_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 132: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */ + errn = decode_iso1PGPDataType(stream, &exiFrag->PGPData); + exiFrag->PGPData_isUsed = 1u; + break; + case 133: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->PGPKeyID.bytesLen); + if (errn == 0) { + errn = (exiFrag->PGPKeyID.bytesLen) <= iso1EXIFragment_PGPKeyID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->PGPKeyID.bytesLen, exiFrag->PGPKeyID.bytes); + } + exiFrag->PGPKeyID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 134: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->PGPKeyPacket.bytesLen); + if (errn == 0) { + errn = (exiFrag->PGPKeyPacket.bytesLen) <= iso1EXIFragment_PGPKeyPacket_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->PGPKeyPacket.bytesLen, exiFrag->PGPKeyPacket.bytes); + } + exiFrag->PGPKeyPacket_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 135: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->PMax); + exiFrag->PMax_isUsed = 1u; + break; + case 136: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule) */ + errn = decode_iso1PMaxScheduleType(stream, &exiFrag->PMaxSchedule); + exiFrag->PMaxSchedule_isUsed = 1u; + break; + case 137: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry) */ + errn = decode_iso1PMaxScheduleEntryType(stream, &exiFrag->PMaxScheduleEntry); + exiFrag->PMaxScheduleEntry_isUsed = 1u; + break; + case 138: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter) */ + errn = decode_iso1ParameterType(stream, &exiFrag->Parameter); + exiFrag->Parameter_isUsed = 1u; + break; + case 139: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet) */ + errn = decode_iso1ParameterSetType(stream, &exiFrag->ParameterSet); + exiFrag->ParameterSet_isUsed = 1u; + break; + case 140: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->ParameterSetID); + exiFrag->ParameterSetID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 141: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq) */ + errn = decode_iso1PaymentDetailsReqType(stream, &exiFrag->PaymentDetailsReq); + exiFrag->PaymentDetailsReq_isUsed = 1u; + break; + case 142: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes) */ + errn = decode_iso1PaymentDetailsResType(stream, &exiFrag->PaymentDetailsRes); + exiFrag->PaymentDetailsRes_isUsed = 1u; + break; + case 143: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + exiFrag->PaymentOption = (iso1paymentOptionType) uint32; + exiFrag->PaymentOption_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 144: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList) */ + errn = decode_iso1PaymentOptionListType(stream, &exiFrag->PaymentOptionList); + exiFrag->PaymentOptionList_isUsed = 1u; + break; + case 145: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq) */ + errn = decode_iso1PaymentServiceSelectionReqType(stream, &exiFrag->PaymentServiceSelectionReq); + exiFrag->PaymentServiceSelectionReq_isUsed = 1u; + break; + case 146: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes) */ + errn = decode_iso1PaymentServiceSelectionResType(stream, &exiFrag->PaymentServiceSelectionRes); + exiFrag->PaymentServiceSelectionRes_isUsed = 1u; + break; + case 147: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->PgenCounter.bytesLen); + if (errn == 0) { + errn = (exiFrag->PgenCounter.bytesLen) <= iso1EXIFragment_PgenCounter_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->PgenCounter.bytesLen, exiFrag->PgenCounter.bytes); + } + exiFrag->PgenCounter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 148: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq) */ + errn = decode_iso1PowerDeliveryReqType(stream, &exiFrag->PowerDeliveryReq); + exiFrag->PowerDeliveryReq_isUsed = 1u; + break; + case 149: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes) */ + errn = decode_iso1PowerDeliveryResType(stream, &exiFrag->PowerDeliveryRes); + exiFrag->PowerDeliveryRes_isUsed = 1u; + break; + case 150: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq) */ + errn = decode_iso1PreChargeReqType(stream, &exiFrag->PreChargeReq); + exiFrag->PreChargeReq_isUsed = 1u; + break; + case 151: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes) */ + errn = decode_iso1PreChargeResType(stream, &exiFrag->PreChargeRes); + exiFrag->PreChargeRes_isUsed = 1u; + break; + case 152: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry) */ + errn = decode_iso1ProfileEntryType(stream, &exiFrag->ProfileEntry); + exiFrag->ProfileEntry_isUsed = 1u; + break; + case 153: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Q.bytesLen); + if (errn == 0) { + errn = (exiFrag->Q.bytesLen) <= iso1EXIFragment_Q_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Q.bytesLen, exiFrag->Q.bytes); + } + exiFrag->Q_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 154: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->RCD); + exiFrag->RCD_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 155: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */ + errn = decode_iso1RSAKeyValueType(stream, &exiFrag->RSAKeyValue); + exiFrag->RSAKeyValue_isUsed = 1u; + break; + case 156: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->ReceiptRequired); + exiFrag->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 157: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */ + errn = decode_iso1ReferenceType(stream, &exiFrag->Reference); + exiFrag->Reference_isUsed = 1u; + break; + case 158: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval) */ + errn = decode_iso1RelativeTimeIntervalType(stream, &exiFrag->RelativeTimeInterval); + exiFrag->RelativeTimeInterval_isUsed = 1u; + break; + case 159: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->RemainingTimeToBulkSoC); + exiFrag->RemainingTimeToBulkSoC_isUsed = 1u; + break; + case 160: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->RemainingTimeToFullSoC); + exiFrag->RemainingTimeToFullSoC_isUsed = 1u; + break; + case 161: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &uint32); + exiFrag->RequestedEnergyTransferMode = (iso1EnergyTransferModeType) uint32; + exiFrag->RequestedEnergyTransferMode_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 162: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + exiFrag->ResponseCode = (iso1responseCodeType) uint32; + exiFrag->ResponseCode_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 163: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */ + errn = decode_iso1RetrievalMethodType(stream, &exiFrag->RetrievalMethod); + exiFrag->RetrievalMethod_isUsed = 1u; + break; + case 164: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->RetryCounter); + exiFrag->RetryCounter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 165: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID) */ + errn = decode_iso1X509IssuerSerialType(stream, &exiFrag->RootCertificateID); + exiFrag->RootCertificateID_isUsed = 1u; + break; + case 166: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain) */ + errn = decode_iso1CertificateChainType(stream, &exiFrag->SAProvisioningCertificateChain); + exiFrag->SAProvisioningCertificateChain_isUsed = 1u; + break; + case 167: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList) */ + errn = decode_iso1SAScheduleListType(stream, &exiFrag->SAScheduleList); + exiFrag->SAScheduleList_isUsed = 1u; + break; + case 168: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple) */ + errn = decode_iso1SAScheduleTupleType(stream, &exiFrag->SAScheduleTuple); + exiFrag->SAScheduleTuple_isUsed = 1u; + break; + case 169: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->SAScheduleTupleID = (uint8_t)(uint32 + 1); + exiFrag->SAScheduleTupleID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 170: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->SAScheduleTupleID = (uint8_t)(uint32 + 1); + exiFrag->SAScheduleTupleID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 171: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules) */ + errn = decode_iso1SASchedulesType(stream, &exiFrag->SASchedules); + exiFrag->SASchedules_isUsed = 1u; + break; + case 172: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */ + errn = decode_iso1SPKIDataType(stream, &exiFrag->SPKIData); + exiFrag->SPKIData_isUsed = 1u; + break; + case 173: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->SPKISexp.bytesLen); + if (errn == 0) { + errn = (exiFrag->SPKISexp.bytesLen) <= iso1EXIFragment_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->SPKISexp.bytesLen, exiFrag->SPKISexp.bytes); + } + exiFrag->SPKISexp_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 174: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff) */ + errn = decode_iso1SalesTariffType(stream, &exiFrag->SalesTariff); + exiFrag->SalesTariff_isUsed = 1u; + break; + case 175: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->SalesTariffDescription.charactersLen); + if (errn == 0) { + if (exiFrag->SalesTariffDescription.charactersLen >= 2) { + exiFrag->SalesTariffDescription.charactersLen = (uint16_t)(exiFrag->SalesTariffDescription.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->SalesTariffDescription.charactersLen, exiFrag->SalesTariffDescription.characters, iso1EXIFragment_SalesTariffDescription_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->SalesTariffDescription_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 176: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry) */ + errn = decode_iso1SalesTariffEntryType(stream, &exiFrag->SalesTariffEntry); + exiFrag->SalesTariffEntry_isUsed = 1u; + break; + case 177: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->SalesTariffID = (uint8_t)(uint32 + 1); + exiFrag->SalesTariffID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 178: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Seed.bytesLen); + if (errn == 0) { + errn = (exiFrag->Seed.bytesLen) <= iso1EXIFragment_Seed_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Seed.bytesLen, exiFrag->Seed.bytes); + } + exiFrag->Seed_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 179: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + exiFrag->SelectedPaymentOption = (iso1paymentOptionType) uint32; + exiFrag->SelectedPaymentOption_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 180: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService) */ + errn = decode_iso1SelectedServiceType(stream, &exiFrag->SelectedService); + exiFrag->SelectedService_isUsed = 1u; + break; + case 181: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList) */ + errn = decode_iso1SelectedServiceListType(stream, &exiFrag->SelectedServiceList); + exiFrag->SelectedServiceList_isUsed = 1u; + break; + case 182: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service) */ + errn = decode_iso1ServiceType(stream, &exiFrag->Service); + exiFrag->Service_isUsed = 1u; + break; + case 183: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->ServiceCategory = (iso1serviceCategoryType) uint32; + exiFrag->ServiceCategory_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 184: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->ServiceCategory = (iso1serviceCategoryType) uint32; + exiFrag->ServiceCategory_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 185: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq) */ + errn = decode_iso1ServiceDetailReqType(stream, &exiFrag->ServiceDetailReq); + exiFrag->ServiceDetailReq_isUsed = 1u; + break; + case 186: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes) */ + errn = decode_iso1ServiceDetailResType(stream, &exiFrag->ServiceDetailRes); + exiFrag->ServiceDetailRes_isUsed = 1u; + break; + case 187: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq) */ + errn = decode_iso1ServiceDiscoveryReqType(stream, &exiFrag->ServiceDiscoveryReq); + exiFrag->ServiceDiscoveryReq_isUsed = 1u; + break; + case 188: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes) */ + errn = decode_iso1ServiceDiscoveryResType(stream, &exiFrag->ServiceDiscoveryRes); + exiFrag->ServiceDiscoveryRes_isUsed = 1u; + break; + case 189: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID) */ + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceID); + exiFrag->ServiceID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 190: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID) */ + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceID); + exiFrag->ServiceID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 191: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList) */ + errn = decode_iso1ServiceListType(stream, &exiFrag->ServiceList); + exiFrag->ServiceList_isUsed = 1u; + break; + case 192: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceName.charactersLen); + if (errn == 0) { + if (exiFrag->ServiceName.charactersLen >= 2) { + exiFrag->ServiceName.charactersLen = (uint16_t)(exiFrag->ServiceName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->ServiceName.charactersLen, exiFrag->ServiceName.characters, iso1EXIFragment_ServiceName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->ServiceName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 193: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList) */ + errn = decode_iso1ServiceParameterListType(stream, &exiFrag->ServiceParameterList); + exiFrag->ServiceParameterList_isUsed = 1u; + break; + case 194: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceScope.charactersLen); + if (errn == 0) { + if (exiFrag->ServiceScope.charactersLen >= 2) { + exiFrag->ServiceScope.charactersLen = (uint16_t)(exiFrag->ServiceScope.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->ServiceScope.charactersLen, exiFrag->ServiceScope.characters, iso1EXIFragment_ServiceScope_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->ServiceScope_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 195: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceScope.charactersLen); + if (errn == 0) { + if (exiFrag->ServiceScope.charactersLen >= 2) { + exiFrag->ServiceScope.charactersLen = (uint16_t)(exiFrag->ServiceScope.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->ServiceScope.charactersLen, exiFrag->ServiceScope.characters, iso1EXIFragment_ServiceScope_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->ServiceScope_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 196: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID) */ + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->SessionID.bytesLen); + if (errn == 0) { + errn = (exiFrag->SessionID.bytesLen) <= iso1EXIFragment_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->SessionID.bytesLen, exiFrag->SessionID.bytes); + } + exiFrag->SessionID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 197: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID) */ + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->SessionID.bytesLen); + if (errn == 0) { + errn = (exiFrag->SessionID.bytesLen) <= iso1EXIFragment_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->SessionID.bytesLen, exiFrag->SessionID.bytes); + } + exiFrag->SessionID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 198: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq) */ + errn = decode_iso1SessionSetupReqType(stream, &exiFrag->SessionSetupReq); + exiFrag->SessionSetupReq_isUsed = 1u; + break; + case 199: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes) */ + errn = decode_iso1SessionSetupResType(stream, &exiFrag->SessionSetupRes); + exiFrag->SessionSetupRes_isUsed = 1u; + break; + case 200: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq) */ + errn = decode_iso1SessionStopReqType(stream, &exiFrag->SessionStopReq); + exiFrag->SessionStopReq_isUsed = 1u; + break; + case 201: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes) */ + errn = decode_iso1SessionStopResType(stream, &exiFrag->SessionStopRes); + exiFrag->SessionStopRes_isUsed = 1u; + break; + case 202: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->SigMeterReading.bytesLen); + if (errn == 0) { + errn = (exiFrag->SigMeterReading.bytesLen) <= iso1EXIFragment_SigMeterReading_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->SigMeterReading.bytesLen, exiFrag->SigMeterReading.bytes); + } + exiFrag->SigMeterReading_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 203: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */ + errn = decode_iso1SignatureType(stream, &exiFrag->Signature); + exiFrag->Signature_isUsed = 1u; + break; + case 204: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */ + errn = decode_iso1SignatureMethodType(stream, &exiFrag->SignatureMethod); + exiFrag->SignatureMethod_isUsed = 1u; + break; + case 205: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */ + errn = decode_iso1SignaturePropertiesType(stream, &exiFrag->SignatureProperties); + exiFrag->SignatureProperties_isUsed = 1u; + break; + case 206: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */ + errn = decode_iso1SignaturePropertyType(stream, &exiFrag->SignatureProperty); + exiFrag->SignatureProperty_isUsed = 1u; + break; + case 207: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */ + errn = decode_iso1SignatureValueType(stream, &exiFrag->SignatureValue); + exiFrag->SignatureValue_isUsed = 1u; + break; + case 208: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */ + errn = decode_iso1SignedInfoType(stream, &exiFrag->SignedInfo); + exiFrag->SignedInfo_isUsed = 1u; + break; + case 209: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates) */ + errn = decode_iso1SubCertificatesType(stream, &exiFrag->SubCertificates); + exiFrag->SubCertificates_isUsed = 1u; + break; + case 210: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode) */ + errn = decode_iso1SupportedEnergyTransferModeType(stream, &exiFrag->SupportedEnergyTransferMode); + exiFrag->SupportedEnergyTransferMode_isUsed = 1u; + break; + case 211: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &exiFrag->TMeter); + exiFrag->TMeter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 212: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval) */ + errn = decode_iso1IntervalType(stream, &exiFrag->TimeInterval); + exiFrag->TimeInterval_isUsed = 1u; + break; + case 213: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */ + errn = decode_iso1TransformType(stream, &exiFrag->Transform); + exiFrag->Transform_isUsed = 1u; + break; + case 214: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */ + errn = decode_iso1TransformsType(stream, &exiFrag->Transforms); + exiFrag->Transforms_isUsed = 1u; + break; + case 215: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &uint32); + exiFrag->Unit = (iso1unitSymbolType) uint32; + exiFrag->Unit_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 216: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message) */ + errn = decode_iso1AnonType_V2G_Message(stream, &exiFrag->V2G_Message); + exiFrag->V2G_Message_isUsed = 1u; + break; + case 217: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->Value); + exiFrag->Value_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 218: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq) */ + errn = decode_iso1WeldingDetectionReqType(stream, &exiFrag->WeldingDetectionReq); + exiFrag->WeldingDetectionReq_isUsed = 1u; + break; + case 219: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes) */ + errn = decode_iso1WeldingDetectionResType(stream, &exiFrag->WeldingDetectionRes); + exiFrag->WeldingDetectionRes_isUsed = 1u; + break; + case 220: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509CRL.bytesLen); + if (errn == 0) { + errn = (exiFrag->X509CRL.bytesLen) <= iso1EXIFragment_X509CRL_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->X509CRL.bytesLen, exiFrag->X509CRL.bytes); + } + exiFrag->X509CRL_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 221: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509Certificate.bytesLen); + if (errn == 0) { + errn = (exiFrag->X509Certificate.bytesLen) <= iso1EXIFragment_X509Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->X509Certificate.bytesLen, exiFrag->X509Certificate.bytes); + } + exiFrag->X509Certificate_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 222: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */ + errn = decode_iso1X509DataType(stream, &exiFrag->X509Data); + exiFrag->X509Data_isUsed = 1u; + break; + case 223: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509IssuerName.charactersLen); + if (errn == 0) { + if (exiFrag->X509IssuerName.charactersLen >= 2) { + exiFrag->X509IssuerName.charactersLen = (uint16_t)(exiFrag->X509IssuerName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->X509IssuerName.charactersLen, exiFrag->X509IssuerName.characters, iso1EXIFragment_X509IssuerName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->X509IssuerName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 224: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial) */ + errn = decode_iso1X509IssuerSerialType(stream, &exiFrag->X509IssuerSerial); + exiFrag->X509IssuerSerial_isUsed = 1u; + break; + case 225: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509SKI.bytesLen); + if (errn == 0) { + errn = (exiFrag->X509SKI.bytesLen) <= iso1EXIFragment_X509SKI_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->X509SKI.bytesLen, exiFrag->X509SKI.bytes); + } + exiFrag->X509SKI_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 226: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &exiFrag->X509SerialNumber); + exiFrag->X509SerialNumber_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 227: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509SubjectName.charactersLen); + if (errn == 0) { + if (exiFrag->X509SubjectName.charactersLen >= 2) { + exiFrag->X509SubjectName.charactersLen = (uint16_t)(exiFrag->X509SubjectName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->X509SubjectName.charactersLen, exiFrag->X509SubjectName.characters, iso1EXIFragment_X509SubjectName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->X509SubjectName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 228: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->XPath.charactersLen); + if (errn == 0) { + if (exiFrag->XPath.charactersLen >= 2) { + exiFrag->XPath.charactersLen = (uint16_t)(exiFrag->XPath.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->XPath.charactersLen, exiFrag->XPath.characters, iso1EXIFragment_XPath_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->XPath_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 229: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Y.bytesLen); + if (errn == 0) { + errn = (exiFrag->Y.bytesLen) <= iso1EXIFragment_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Y.bytesLen, exiFrag->Y.bytes); + } + exiFrag->Y_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 230: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &exiFrag->amount); + exiFrag->amount_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 231: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &(uint32)); + exiFrag->amountMultiplier = (int8_t)(uint32 -3); + exiFrag->amountMultiplier_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 232: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->boolValue); + exiFrag->boolValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 233: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue) */ + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->byteValue = (int8_t)(uint32 -128); + exiFrag->byteValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 234: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->costKind = (iso1costKindType) uint32; + exiFrag->costKind_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 235: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration) */ + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &exiFrag->duration); + exiFrag->duration_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 236: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID) */ + errn = decode_iso1EXISchemaInformedElementFragmentGrammar(stream, &exiFrag->eMAID); + exiFrag->eMAID_isUsed = 1u; + break; + case 237: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger32(stream, &exiFrag->intValue); + exiFrag->intValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 238: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->physicalValue); + exiFrag->physicalValue_isUsed = 1u; + break; + case 239: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->shortValue); + exiFrag->shortValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 240: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start) */ + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &exiFrag->start); + exiFrag->start_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 241: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue) */ + errn = decode_iso1PhysicalValueType(stream, &exiFrag->startValue); + exiFrag->startValue_isUsed = 1u; + break; + case 242: + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->stringValue.charactersLen); + if (errn == 0) { + if (exiFrag->stringValue.charactersLen >= 2) { + exiFrag->stringValue.charactersLen = (uint16_t)(exiFrag->stringValue.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->stringValue.charactersLen, exiFrag->stringValue.characters, iso1EXIFragment_stringValue_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->stringValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + default: + errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; + break; + } + } + if(errn == 0) { + /* EndDocument */ + errn = decodeNBitUnsignedInteger(stream, 8, &eventCode); + if (eventCode != 244) { + errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; + } + } + + } + + (void)exiFrag; /* avoid unused warning */ + + return errn; +} +#endif /* DEPLOY_ISO1_CODEC_FRAGMENT */ + + +#endif /* DEPLOY_ISO1_CODEC */ + +#endif + diff --git a/csharp/vc2022/src/iso1/iso1EXIDatatypesDecoder.h b/csharp/vc2022/src/iso1/iso1EXIDatatypesDecoder.h new file mode 100644 index 0000000..4895def --- /dev/null +++ b/csharp/vc2022/src/iso1/iso1EXIDatatypesDecoder.h @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIDatatypesDecoder.h + * \brief Decoder for datatype definitions + * + */ + +#ifndef EXI_iso1_DATATYPES_DECODER_H +#define EXI_iso1_DATATYPES_DECODER_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "iso1EXIDatatypes.h" + +#if DEPLOY_ISO1_CODEC == SUPPORT_YES + +#include + +#include "EXITypes.h" + +int decode_iso1ExiDocument(bitstream_t* stream, struct iso1EXIDocument* exiDoc); + +#if DEPLOY_ISO1_CODEC_FRAGMENT == SUPPORT_YES +int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag); +#endif /* DEPLOY_ISO1_CODEC_FRAGMENT */ + +#endif /* DEPLOY_ISO1_CODEC */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/iso1/iso1EXIDatatypesEncoder.c b/csharp/vc2022/src/iso1/iso1EXIDatatypesEncoder.c new file mode 100644 index 0000000..0a0107e --- /dev/null +++ b/csharp/vc2022/src/iso1/iso1EXIDatatypesEncoder.c @@ -0,0 +1,14591 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + + +#include "iso1EXIDatatypesEncoder.h" + +#include "EncoderChannel.h" +#include "EXIHeaderEncoder.h" + +#include "iso1EXIDatatypes.h" +#include "ErrorCodes.h" + +#ifndef EXI_iso1_DATATYPES_ENCODER_C +#define EXI_iso1_DATATYPES_ENCODER_C + +#if DEPLOY_ISO1_CODEC == SUPPORT_YES + +static int errn; + +/* Forward Declarations */ +static int encode_iso1MessageHeaderType(bitstream_t* stream, struct iso1MessageHeaderType* iso1MessageHeaderType); +static int encode_iso1SignatureType(bitstream_t* stream, struct iso1SignatureType* iso1SignatureType); +static int encode_iso1PowerDeliveryReqType(bitstream_t* stream, struct iso1PowerDeliveryReqType* iso1PowerDeliveryReqType); +static int encode_iso1ParameterType(bitstream_t* stream, struct iso1ParameterType* iso1ParameterType); +static int encode_iso1CertificateInstallationReqType(bitstream_t* stream, struct iso1CertificateInstallationReqType* iso1CertificateInstallationReqType); +static int encode_iso1SessionSetupResType(bitstream_t* stream, struct iso1SessionSetupResType* iso1SessionSetupResType); +static int encode_iso1EVChargeParameterType(bitstream_t* stream, struct iso1EVChargeParameterType* iso1EVChargeParameterType); +static int encode_iso1DiffieHellmanPublickeyType(bitstream_t* stream, struct iso1DiffieHellmanPublickeyType* iso1DiffieHellmanPublickeyType); +static int encode_iso1ServiceDiscoveryResType(bitstream_t* stream, struct iso1ServiceDiscoveryResType* iso1ServiceDiscoveryResType); +static int encode_iso1ServiceParameterListType(bitstream_t* stream, struct iso1ServiceParameterListType* iso1ServiceParameterListType); +static int encode_iso1CertificateChainType(bitstream_t* stream, struct iso1CertificateChainType* iso1CertificateChainType); +static int encode_iso1SASchedulesType(bitstream_t* stream, struct iso1SASchedulesType* iso1SASchedulesType); +static int encode_iso1DC_EVSEStatusType(bitstream_t* stream, struct iso1DC_EVSEStatusType* iso1DC_EVSEStatusType); +static int encode_iso1PreChargeResType(bitstream_t* stream, struct iso1PreChargeResType* iso1PreChargeResType); +static int encode_iso1ParameterSetType(bitstream_t* stream, struct iso1ParameterSetType* iso1ParameterSetType); +static int encode_iso1ServiceDetailReqType(bitstream_t* stream, struct iso1ServiceDetailReqType* iso1ServiceDetailReqType); +static int encode_iso1RelativeTimeIntervalType(bitstream_t* stream, struct iso1RelativeTimeIntervalType* iso1RelativeTimeIntervalType); +static int encode_iso1SignedInfoType(bitstream_t* stream, struct iso1SignedInfoType* iso1SignedInfoType); +static int encode_iso1EMAIDType(bitstream_t* stream, struct iso1EMAIDType* iso1EMAIDType); +static int encode_iso1EVStatusType(bitstream_t* stream, struct iso1EVStatusType* iso1EVStatusType); +static int encode_iso1ServiceListType(bitstream_t* stream, struct iso1ServiceListType* iso1ServiceListType); +static int encode_iso1EVSEChargeParameterType(bitstream_t* stream, struct iso1EVSEChargeParameterType* iso1EVSEChargeParameterType); +static int encode_iso1EVPowerDeliveryParameterType(bitstream_t* stream, struct iso1EVPowerDeliveryParameterType* iso1EVPowerDeliveryParameterType); +static int encode_iso1ProfileEntryType(bitstream_t* stream, struct iso1ProfileEntryType* iso1ProfileEntryType); +static int encode_iso1AuthorizationReqType(bitstream_t* stream, struct iso1AuthorizationReqType* iso1AuthorizationReqType); +static int encode_iso1MeterInfoType(bitstream_t* stream, struct iso1MeterInfoType* iso1MeterInfoType); +static int encode_iso1ManifestType(bitstream_t* stream, struct iso1ManifestType* iso1ManifestType); +static int encode_iso1ChargeParameterDiscoveryResType(bitstream_t* stream, struct iso1ChargeParameterDiscoveryResType* iso1ChargeParameterDiscoveryResType); +static int encode_iso1PowerDeliveryResType(bitstream_t* stream, struct iso1PowerDeliveryResType* iso1PowerDeliveryResType); +static int encode_iso1DC_EVChargeParameterType(bitstream_t* stream, struct iso1DC_EVChargeParameterType* iso1DC_EVChargeParameterType); +static int encode_iso1ConsumptionCostType(bitstream_t* stream, struct iso1ConsumptionCostType* iso1ConsumptionCostType); +static int encode_iso1PMaxScheduleType(bitstream_t* stream, struct iso1PMaxScheduleType* iso1PMaxScheduleType); +static int encode_iso1PaymentOptionListType(bitstream_t* stream, struct iso1PaymentOptionListType* iso1PaymentOptionListType); +static int encode_iso1ObjectType(bitstream_t* stream, struct iso1ObjectType* iso1ObjectType); +static int encode_iso1PhysicalValueType(bitstream_t* stream, struct iso1PhysicalValueType* iso1PhysicalValueType); +static int encode_iso1RSAKeyValueType(bitstream_t* stream, struct iso1RSAKeyValueType* iso1RSAKeyValueType); +static int encode_iso1SessionStopResType(bitstream_t* stream, struct iso1SessionStopResType* iso1SessionStopResType); +static int encode_iso1CertificateUpdateReqType(bitstream_t* stream, struct iso1CertificateUpdateReqType* iso1CertificateUpdateReqType); +static int encode_iso1SignatureValueType(bitstream_t* stream, struct iso1SignatureValueType* iso1SignatureValueType); +static int encode_iso1PaymentDetailsReqType(bitstream_t* stream, struct iso1PaymentDetailsReqType* iso1PaymentDetailsReqType); +static int encode_iso1AuthorizationResType(bitstream_t* stream, struct iso1AuthorizationResType* iso1AuthorizationResType); +static int encode_iso1DC_EVSEChargeParameterType(bitstream_t* stream, struct iso1DC_EVSEChargeParameterType* iso1DC_EVSEChargeParameterType); +static int encode_iso1SubCertificatesType(bitstream_t* stream, struct iso1SubCertificatesType* iso1SubCertificatesType); +static int encode_iso1ChargingStatusResType(bitstream_t* stream, struct iso1ChargingStatusResType* iso1ChargingStatusResType); +static int encode_iso1DSAKeyValueType(bitstream_t* stream, struct iso1DSAKeyValueType* iso1DSAKeyValueType); +static int encode_iso1ListOfRootCertificateIDsType(bitstream_t* stream, struct iso1ListOfRootCertificateIDsType* iso1ListOfRootCertificateIDsType); +static int encode_iso1ChargeServiceType(bitstream_t* stream, struct iso1ChargeServiceType* iso1ChargeServiceType); +static int encode_iso1IntervalType(bitstream_t* stream, struct iso1IntervalType* iso1IntervalType); +static int encode_iso1MeteringReceiptReqType(bitstream_t* stream, struct iso1MeteringReceiptReqType* iso1MeteringReceiptReqType); +static int encode_iso1ServiceDetailResType(bitstream_t* stream, struct iso1ServiceDetailResType* iso1ServiceDetailResType); +static int encode_iso1KeyValueType(bitstream_t* stream, struct iso1KeyValueType* iso1KeyValueType); +static int encode_iso1SelectedServiceListType(bitstream_t* stream, struct iso1SelectedServiceListType* iso1SelectedServiceListType); +static int encode_iso1CableCheckResType(bitstream_t* stream, struct iso1CableCheckResType* iso1CableCheckResType); +static int encode_iso1X509IssuerSerialType(bitstream_t* stream, struct iso1X509IssuerSerialType* iso1X509IssuerSerialType); +static int encode_iso1KeyInfoType(bitstream_t* stream, struct iso1KeyInfoType* iso1KeyInfoType); +static int encode_iso1TransformsType(bitstream_t* stream, struct iso1TransformsType* iso1TransformsType); +static int encode_iso1ChargeParameterDiscoveryReqType(bitstream_t* stream, struct iso1ChargeParameterDiscoveryReqType* iso1ChargeParameterDiscoveryReqType); +static int encode_iso1PreChargeReqType(bitstream_t* stream, struct iso1PreChargeReqType* iso1PreChargeReqType); +static int encode_iso1EVSEStatusType(bitstream_t* stream, struct iso1EVSEStatusType* iso1EVSEStatusType); +static int encode_iso1SignatureMethodType(bitstream_t* stream, struct iso1SignatureMethodType* iso1SignatureMethodType); +static int encode_iso1X509DataType(bitstream_t* stream, struct iso1X509DataType* iso1X509DataType); +static int encode_iso1NotificationType(bitstream_t* stream, struct iso1NotificationType* iso1NotificationType); +static int encode_iso1SAScheduleListType(bitstream_t* stream, struct iso1SAScheduleListType* iso1SAScheduleListType); +static int encode_iso1BodyType(bitstream_t* stream, struct iso1BodyType* iso1BodyType); +static int encode_iso1ChargingProfileType(bitstream_t* stream, struct iso1ChargingProfileType* iso1ChargingProfileType); +static int encode_iso1TransformType(bitstream_t* stream, struct iso1TransformType* iso1TransformType); +static int encode_iso1SAScheduleTupleType(bitstream_t* stream, struct iso1SAScheduleTupleType* iso1SAScheduleTupleType); +static int encode_iso1AC_EVChargeParameterType(bitstream_t* stream, struct iso1AC_EVChargeParameterType* iso1AC_EVChargeParameterType); +static int encode_iso1AnonType_V2G_Message(bitstream_t* stream, struct iso1AnonType_V2G_Message* iso1AnonType_V2G_Message); +static int encode_iso1PaymentDetailsResType(bitstream_t* stream, struct iso1PaymentDetailsResType* iso1PaymentDetailsResType); +static int encode_iso1ContractSignatureEncryptedPrivateKeyType(bitstream_t* stream, struct iso1ContractSignatureEncryptedPrivateKeyType* iso1ContractSignatureEncryptedPrivateKeyType); +static int encode_iso1PMaxScheduleEntryType(bitstream_t* stream, struct iso1PMaxScheduleEntryType* iso1PMaxScheduleEntryType); +static int encode_iso1SPKIDataType(bitstream_t* stream, struct iso1SPKIDataType* iso1SPKIDataType); +static int encode_iso1MeteringReceiptResType(bitstream_t* stream, struct iso1MeteringReceiptResType* iso1MeteringReceiptResType); +static int encode_iso1SessionStopReqType(bitstream_t* stream, struct iso1SessionStopReqType* iso1SessionStopReqType); +static int encode_iso1WeldingDetectionResType(bitstream_t* stream, struct iso1WeldingDetectionResType* iso1WeldingDetectionResType); +static int encode_iso1ReferenceType(bitstream_t* stream, struct iso1ReferenceType* iso1ReferenceType); +static int encode_iso1CurrentDemandReqType(bitstream_t* stream, struct iso1CurrentDemandReqType* iso1CurrentDemandReqType); +static int encode_iso1SalesTariffEntryType(bitstream_t* stream, struct iso1SalesTariffEntryType* iso1SalesTariffEntryType); +static int encode_iso1EntryType(bitstream_t* stream, struct iso1EntryType* iso1EntryType); +static int encode_iso1SessionSetupReqType(bitstream_t* stream, struct iso1SessionSetupReqType* iso1SessionSetupReqType); +static int encode_iso1CostType(bitstream_t* stream, struct iso1CostType* iso1CostType); +static int encode_iso1DC_EVPowerDeliveryParameterType(bitstream_t* stream, struct iso1DC_EVPowerDeliveryParameterType* iso1DC_EVPowerDeliveryParameterType); +static int encode_iso1RetrievalMethodType(bitstream_t* stream, struct iso1RetrievalMethodType* iso1RetrievalMethodType); +static int encode_iso1CertificateUpdateResType(bitstream_t* stream, struct iso1CertificateUpdateResType* iso1CertificateUpdateResType); +static int encode_iso1CertificateInstallationResType(bitstream_t* stream, struct iso1CertificateInstallationResType* iso1CertificateInstallationResType); +static int encode_iso1CanonicalizationMethodType(bitstream_t* stream, struct iso1CanonicalizationMethodType* iso1CanonicalizationMethodType); +static int encode_iso1WeldingDetectionReqType(bitstream_t* stream, struct iso1WeldingDetectionReqType* iso1WeldingDetectionReqType); +static int encode_iso1DC_EVStatusType(bitstream_t* stream, struct iso1DC_EVStatusType* iso1DC_EVStatusType); +static int encode_iso1CurrentDemandResType(bitstream_t* stream, struct iso1CurrentDemandResType* iso1CurrentDemandResType); +static int encode_iso1ServiceType(bitstream_t* stream, struct iso1ServiceType* iso1ServiceType); +static int encode_iso1ServiceDiscoveryReqType(bitstream_t* stream, struct iso1ServiceDiscoveryReqType* iso1ServiceDiscoveryReqType); +static int encode_iso1AC_EVSEChargeParameterType(bitstream_t* stream, struct iso1AC_EVSEChargeParameterType* iso1AC_EVSEChargeParameterType); +static int encode_iso1CableCheckReqType(bitstream_t* stream, struct iso1CableCheckReqType* iso1CableCheckReqType); +static int encode_iso1SelectedServiceType(bitstream_t* stream, struct iso1SelectedServiceType* iso1SelectedServiceType); +static int encode_iso1AC_EVSEStatusType(bitstream_t* stream, struct iso1AC_EVSEStatusType* iso1AC_EVSEStatusType); +static int encode_iso1SalesTariffType(bitstream_t* stream, struct iso1SalesTariffType* iso1SalesTariffType); +static int encode_iso1PaymentServiceSelectionReqType(bitstream_t* stream, struct iso1PaymentServiceSelectionReqType* iso1PaymentServiceSelectionReqType); +static int encode_iso1SignaturePropertiesType(bitstream_t* stream, struct iso1SignaturePropertiesType* iso1SignaturePropertiesType); +static int encode_iso1BodyBaseType(bitstream_t* stream, struct iso1BodyBaseType* iso1BodyBaseType); +static int encode_iso1SupportedEnergyTransferModeType(bitstream_t* stream, struct iso1SupportedEnergyTransferModeType* iso1SupportedEnergyTransferModeType); +static int encode_iso1ChargingStatusReqType(bitstream_t* stream, struct iso1ChargingStatusReqType* iso1ChargingStatusReqType); +static int encode_iso1PaymentServiceSelectionResType(bitstream_t* stream, struct iso1PaymentServiceSelectionResType* iso1PaymentServiceSelectionResType); +static int encode_iso1DigestMethodType(bitstream_t* stream, struct iso1DigestMethodType* iso1DigestMethodType); +static int encode_iso1SignaturePropertyType(bitstream_t* stream, struct iso1SignaturePropertyType* iso1SignaturePropertyType); +static int encode_iso1PGPDataType(bitstream_t* stream, struct iso1PGPDataType* iso1PGPDataType); + + + /* Complex type name='urn:iso:15118:2:2013:MsgHeader,MessageHeaderType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgHeader":SessionID,"urn:iso:15118:2:2013:MsgHeader":Notification{0-1},"http://www.w3.org/2000/09/xmldsig#":Signature{0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso1MessageHeaderType(bitstream_t* stream, struct iso1MessageHeaderType* iso1MessageHeaderType) { + int grammarID = 0; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 0: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1MessageHeaderType->SessionID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1MessageHeaderType->SessionID.bytes, iso1MessageHeaderType->SessionID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ + if ( iso1MessageHeaderType->Notification_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1NotificationType(stream, &iso1MessageHeaderType->Notification ); + } + grammarID = 2; + } else if ( iso1MessageHeaderType->Signature_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1SignatureType(stream, &iso1MessageHeaderType->Signature ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ + if ( iso1MessageHeaderType->Signature_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SignatureType(stream, &iso1MessageHeaderType->Signature ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso1SignatureType(bitstream_t* stream, struct iso1SignatureType* iso1SignatureType) { + int grammarID = 5; + int done = 0; + + unsigned int iso1SignatureType_Object_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 5: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ + if ( iso1SignatureType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignatureType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1SignatureType->Id.characters, iso1SignatureType->Id.charactersLen); + } + } + grammarID = 6; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1SignedInfoType(stream, &iso1SignatureType->SignedInfo ); + } + grammarID = 7; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 6: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1SignedInfoType(stream, &iso1SignatureType->SignedInfo ); + } + grammarID = 7; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 7: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1SignatureValueType(stream, &iso1SignatureType->SignatureValue ); + } + grammarID = 8; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 8: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ + if ( iso1SignatureType->KeyInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1KeyInfoType(stream, &iso1SignatureType->KeyInfo ); + } + grammarID = 9; + } else if (iso1SignatureType_Object_currArrayIndex < iso1SignatureType->Object.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1ObjectType(stream, &iso1SignatureType->Object.array [iso1SignatureType_Object_currArrayIndex++]); + } + grammarID = 9; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 9: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ + if (iso1SignatureType_Object_currArrayIndex < iso1SignatureType->Object.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ObjectType(stream, &iso1SignatureType->Object.array [iso1SignatureType_Object_currArrayIndex++]); + } + grammarID = 9; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PowerDeliveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ChargeProgress,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":ChargingProfile{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVPowerDeliveryParameter{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso1PowerDeliveryReqType(bitstream_t* stream, struct iso1PowerDeliveryReqType* iso1PowerDeliveryReqType) { + int grammarID = 10; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 10: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso1PowerDeliveryReqType->ChargeProgress); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 11; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 11: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1PowerDeliveryReqType->SAScheduleTupleID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 12; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 12: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */ + if ( iso1PowerDeliveryReqType->ChargingProfile_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso1ChargingProfileType(stream, &iso1PowerDeliveryReqType->ChargingProfile ); + } + grammarID = 13; + } else if ( iso1PowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso1DC_EVPowerDeliveryParameterType(stream, &iso1PowerDeliveryReqType->DC_EVPowerDeliveryParameter ); + } + grammarID = 3; + } else if ( iso1PowerDeliveryReqType->EVPowerDeliveryParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso1EVPowerDeliveryParameterType(stream, &iso1PowerDeliveryReqType->EVPowerDeliveryParameter ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 13: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */ + if ( iso1PowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1DC_EVPowerDeliveryParameterType(stream, &iso1PowerDeliveryReqType->DC_EVPowerDeliveryParameter ); + } + grammarID = 3; + } else if ( iso1PowerDeliveryReqType->EVPowerDeliveryParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1EVPowerDeliveryParameterType(stream, &iso1PowerDeliveryReqType->EVPowerDeliveryParameter ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ParameterType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":boolValue|"urn:iso:15118:2:2013:MsgDataTypes":byteValue|"urn:iso:15118:2:2013:MsgDataTypes":shortValue|"urn:iso:15118:2:2013:MsgDataTypes":intValue|"urn:iso:15118:2:2013:MsgDataTypes":physicalValue|"urn:iso:15118:2:2013:MsgDataTypes":stringValue)', derivedBy='RESTRICTION'. */ +static int encode_iso1ParameterType(bitstream_t* stream, struct iso1ParameterType* iso1ParameterType) { + int grammarID = 14; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 14: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ParameterType->Name.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ParameterType->Name.characters, iso1ParameterType->Name.charactersLen); + } + } + grammarID = 15; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 15: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue)] */ + if ( iso1ParameterType->boolValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1ParameterType->boolValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if ( iso1ParameterType->byteValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1ParameterType->byteValue + 128)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if ( iso1ParameterType->shortValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, iso1ParameterType->shortValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if ( iso1ParameterType->intValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger32(stream, iso1ParameterType->intValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if ( iso1ParameterType->physicalValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1ParameterType->physicalValue ); + } + grammarID = 3; + } else if ( iso1ParameterType->stringValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ParameterType->stringValue.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ParameterType->stringValue.characters, iso1ParameterType->stringValue.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateInstallationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":OEMProvisioningCert,"urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */ +static int encode_iso1CertificateInstallationReqType(bitstream_t* stream, struct iso1CertificateInstallationReqType* iso1CertificateInstallationReqType) { + int grammarID = 16; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 16: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CertificateInstallationReqType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1CertificateInstallationReqType->Id.characters, iso1CertificateInstallationReqType->Id.charactersLen); + } + } + grammarID = 17; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 17: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CertificateInstallationReqType->OEMProvisioningCert.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1CertificateInstallationReqType->OEMProvisioningCert.bytes, iso1CertificateInstallationReqType->OEMProvisioningCert.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 18; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 18: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1ListOfRootCertificateIDsType(stream, &iso1CertificateInstallationReqType->ListOfRootCertificateIDs ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionSetupResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":EVSETimeStamp{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso1SessionSetupResType(bitstream_t* stream, struct iso1SessionSetupResType* iso1SessionSetupResType) { + int grammarID = 19; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 19: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso1SessionSetupResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 20; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 20: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SessionSetupResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1SessionSetupResType->EVSEID.characters, iso1SessionSetupResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 21; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 21: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), END_ELEMENT] */ + if ( iso1SessionSetupResType->EVSETimeStamp_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, iso1SessionSetupResType->EVSETimeStamp); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVChargeParameterType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso1EVChargeParameterType(bitstream_t* stream, struct iso1EVChargeParameterType* iso1EVChargeParameterType) { + int grammarID = 22; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 22: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */ + if ( iso1EVChargeParameterType->DepartureTime_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, iso1EVChargeParameterType->DepartureTime); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DiffieHellmanPublickeyType', base type name='dHpublickeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int encode_iso1DiffieHellmanPublickeyType(bitstream_t* stream, struct iso1DiffieHellmanPublickeyType* iso1DiffieHellmanPublickeyType) { + int grammarID = 23; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 23: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DiffieHellmanPublickeyType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1DiffieHellmanPublickeyType->Id.characters, iso1DiffieHellmanPublickeyType->Id.charactersLen); + } + } + grammarID = 24; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 24: + /* StartTag[CHARACTERS[BINARY_BASE64]] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DiffieHellmanPublickeyType->CONTENT.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1DiffieHellmanPublickeyType->CONTENT.bytes, iso1DiffieHellmanPublickeyType->CONTENT.bytesLen); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":PaymentOptionList,"urn:iso:15118:2:2013:MsgBody":ChargeService,"urn:iso:15118:2:2013:MsgBody":ServiceList{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso1ServiceDiscoveryResType(bitstream_t* stream, struct iso1ServiceDiscoveryResType* iso1ServiceDiscoveryResType) { + int grammarID = 25; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 25: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso1ServiceDiscoveryResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 26; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 26: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PaymentOptionListType(stream, &iso1ServiceDiscoveryResType->PaymentOptionList ); + } + grammarID = 27; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 27: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1ChargeServiceType(stream, &iso1ServiceDiscoveryResType->ChargeService ); + } + grammarID = 28; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 28: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), END_ELEMENT] */ + if ( iso1ServiceDiscoveryResType->ServiceList_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ServiceListType(stream, &iso1ServiceDiscoveryResType->ServiceList ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceParameterListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ParameterSet{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso1ServiceParameterListType(bitstream_t* stream, struct iso1ServiceParameterListType* iso1ServiceParameterListType) { + int grammarID = 29; + int done = 0; + + unsigned int iso1ServiceParameterListType_ParameterSet_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 29: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet)] */ + if (iso1ServiceParameterListType_ParameterSet_currArrayIndex < iso1ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1ParameterSetType(stream, &iso1ServiceParameterListType->ParameterSet.array [iso1ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 30; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 30: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso1ServiceParameterListType_ParameterSet_currArrayIndex < iso1ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ParameterSetType(stream, &iso1ServiceParameterListType->ParameterSet.array [iso1ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 30; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso1CertificateChainType(bitstream_t* stream, struct iso1CertificateChainType* iso1CertificateChainType) { + int grammarID = 31; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 31: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */ + if ( iso1CertificateChainType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CertificateChainType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1CertificateChainType->Id.characters, iso1CertificateChainType->Id.charactersLen); + } + } + grammarID = 32; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CertificateChainType->Certificate.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1CertificateChainType->Certificate.bytes, iso1CertificateChainType->Certificate.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 33; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 32: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CertificateChainType->Certificate.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1CertificateChainType->Certificate.bytes, iso1CertificateChainType->Certificate.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 33; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 33: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), END_ELEMENT] */ + if ( iso1CertificateChainType->SubCertificates_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SubCertificatesType(stream, &iso1CertificateChainType->SubCertificates ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SASchedulesType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_iso1SASchedulesType(bitstream_t* stream, struct iso1SASchedulesType* iso1SASchedulesType) { + int grammarID = 34; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 34: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */ +static int encode_iso1DC_EVSEStatusType(bitstream_t* stream, struct iso1DC_EVSEStatusType* iso1DC_EVSEStatusType) { + int grammarID = 35; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 35: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso1DC_EVSEStatusType->NotificationMaxDelay); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 36; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 36: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso1DC_EVSEStatusType->EVSENotification); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 37; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 37: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */ + if ( iso1DC_EVSEStatusType->EVSEIsolationStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, iso1DC_EVSEStatusType->EVSEIsolationStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 38; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 4, iso1DC_EVSEStatusType->EVSEStatusCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 38: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 4, iso1DC_EVSEStatusType->EVSEStatusCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PreChargeResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */ +static int encode_iso1PreChargeResType(bitstream_t* stream, struct iso1PreChargeResType* iso1PreChargeResType) { + int grammarID = 39; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 39: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso1PreChargeResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 40; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 40: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1DC_EVSEStatusType(stream, &iso1PreChargeResType->DC_EVSEStatus ); + } + grammarID = 41; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 41: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1PreChargeResType->EVSEPresentVoltage ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2013:MsgDataTypes":Parameter{1-16})', derivedBy='RESTRICTION'. */ +static int encode_iso1ParameterSetType(bitstream_t* stream, struct iso1ParameterSetType* iso1ParameterSetType) { + int grammarID = 42; + int done = 0; + + unsigned int iso1ParameterSetType_Parameter_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 42: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, iso1ParameterSetType->ParameterSetID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 43; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 43: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter)] */ + if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 44; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 44: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 45; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 45: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 46; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 46: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 47; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 47: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 48; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 48: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 49; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 49: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 50; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 50: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 51; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 51: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 52; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 52: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 53; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 53: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 54; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 54: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 55; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 55: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 56; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 56: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 57; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 57: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 58; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 58: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDetailReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ServiceID)', derivedBy='EXTENSION'. */ +static int encode_iso1ServiceDetailReqType(bitstream_t* stream, struct iso1ServiceDetailReqType* iso1ServiceDetailReqType) { + int grammarID = 59; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 59: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso1ServiceDetailReqType->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":start,"urn:iso:15118:2:2013:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso1RelativeTimeIntervalType(bitstream_t* stream, struct iso1RelativeTimeIntervalType* iso1RelativeTimeIntervalType) { + int grammarID = 60; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 60: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, iso1RelativeTimeIntervalType->start); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 61; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 61: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), END_ELEMENT] */ + if ( iso1RelativeTimeIntervalType->duration_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, iso1RelativeTimeIntervalType->duration); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso1SignedInfoType(bitstream_t* stream, struct iso1SignedInfoType* iso1SignedInfoType) { + int grammarID = 62; + int done = 0; + + unsigned int iso1SignedInfoType_Reference_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 62: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ + if ( iso1SignedInfoType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignedInfoType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1SignedInfoType->Id.characters, iso1SignedInfoType->Id.charactersLen); + } + } + grammarID = 63; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1CanonicalizationMethodType(stream, &iso1SignedInfoType->CanonicalizationMethod ); + } + grammarID = 64; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 63: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1CanonicalizationMethodType(stream, &iso1SignedInfoType->CanonicalizationMethod ); + } + grammarID = 64; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 64: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1SignatureMethodType(stream, &iso1SignedInfoType->SignatureMethod ); + } + grammarID = 65; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 65: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + if (iso1SignedInfoType_Reference_currArrayIndex < iso1SignedInfoType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1ReferenceType(stream, &iso1SignedInfoType->Reference.array [iso1SignedInfoType_Reference_currArrayIndex++]); + } + grammarID = 66; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 66: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ + if (iso1SignedInfoType_Reference_currArrayIndex < iso1SignedInfoType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ReferenceType(stream, &iso1SignedInfoType->Reference.array [iso1SignedInfoType_Reference_currArrayIndex++]); + } + grammarID = 66; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EMAIDType', base type name='eMAIDType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int encode_iso1EMAIDType(bitstream_t* stream, struct iso1EMAIDType* iso1EMAIDType) { + int grammarID = 67; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 67: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1EMAIDType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1EMAIDType->Id.characters, iso1EMAIDType->Id.charactersLen); + } + } + grammarID = 68; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 68: + /* StartTag[CHARACTERS[STRING]] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1EMAIDType->CONTENT.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1EMAIDType->CONTENT.characters, iso1EMAIDType->CONTENT.charactersLen); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVStatusType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_iso1EVStatusType(bitstream_t* stream, struct iso1EVStatusType* iso1EVStatusType) { + int grammarID = 34; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 34: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Service{1-8})', derivedBy='RESTRICTION'. */ +static int encode_iso1ServiceListType(bitstream_t* stream, struct iso1ServiceListType* iso1ServiceListType) { + int grammarID = 69; + int done = 0; + + unsigned int iso1ServiceListType_Service_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 69: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service)] */ + if (iso1ServiceListType_Service_currArrayIndex < iso1ServiceListType->Service.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1ServiceType(stream, &iso1ServiceListType->Service.array [iso1ServiceListType_Service_currArrayIndex++]); + } + grammarID = 70; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 70: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */ + if (iso1ServiceListType_Service_currArrayIndex < iso1ServiceListType->Service.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ServiceType(stream, &iso1ServiceListType->Service.array [iso1ServiceListType_Service_currArrayIndex++]); + } + grammarID = 71; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 71: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */ + if (iso1ServiceListType_Service_currArrayIndex < iso1ServiceListType->Service.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ServiceType(stream, &iso1ServiceListType->Service.array [iso1ServiceListType_Service_currArrayIndex++]); + } + grammarID = 72; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 72: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */ + if (iso1ServiceListType_Service_currArrayIndex < iso1ServiceListType->Service.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ServiceType(stream, &iso1ServiceListType->Service.array [iso1ServiceListType_Service_currArrayIndex++]); + } + grammarID = 73; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 73: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */ + if (iso1ServiceListType_Service_currArrayIndex < iso1ServiceListType->Service.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ServiceType(stream, &iso1ServiceListType->Service.array [iso1ServiceListType_Service_currArrayIndex++]); + } + grammarID = 74; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 74: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */ + if (iso1ServiceListType_Service_currArrayIndex < iso1ServiceListType->Service.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ServiceType(stream, &iso1ServiceListType->Service.array [iso1ServiceListType_Service_currArrayIndex++]); + } + grammarID = 75; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 75: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */ + if (iso1ServiceListType_Service_currArrayIndex < iso1ServiceListType->Service.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ServiceType(stream, &iso1ServiceListType->Service.array [iso1ServiceListType_Service_currArrayIndex++]); + } + grammarID = 76; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 76: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */ + if (iso1ServiceListType_Service_currArrayIndex < iso1ServiceListType->Service.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ServiceType(stream, &iso1ServiceListType->Service.array [iso1ServiceListType_Service_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEChargeParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_iso1EVSEChargeParameterType(bitstream_t* stream, struct iso1EVSEChargeParameterType* iso1EVSEChargeParameterType) { + int grammarID = 34; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 34: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVPowerDeliveryParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_iso1EVPowerDeliveryParameterType(bitstream_t* stream, struct iso1EVPowerDeliveryParameterType* iso1EVPowerDeliveryParameterType) { + int grammarID = 34; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 34: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ProfileEntryType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryStart,"urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxPower,"urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxNumberOfPhasesInUse{0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso1ProfileEntryType(bitstream_t* stream, struct iso1ProfileEntryType* iso1ProfileEntryType) { + int grammarID = 77; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 77: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, iso1ProfileEntryType->ChargingProfileEntryStart); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 78; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 78: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1ProfileEntryType->ChargingProfileEntryMaxPower ); + } + grammarID = 79; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 79: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), END_ELEMENT] */ + if ( iso1ProfileEntryType->ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, (uint32_t)(iso1ProfileEntryType->ChargingProfileEntryMaxNumberOfPhasesInUse - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,AuthorizationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":GenChallenge{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso1AuthorizationReqType(bitstream_t* stream, struct iso1AuthorizationReqType* iso1AuthorizationReqType) { + int grammarID = 80; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 80: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */ + if ( iso1AuthorizationReqType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1AuthorizationReqType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1AuthorizationReqType->Id.characters, iso1AuthorizationReqType->Id.charactersLen); + } + } + grammarID = 81; + } else if ( iso1AuthorizationReqType->GenChallenge_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1AuthorizationReqType->GenChallenge.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1AuthorizationReqType->GenChallenge.bytes, iso1AuthorizationReqType->GenChallenge.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 81: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */ + if ( iso1AuthorizationReqType->GenChallenge_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1AuthorizationReqType->GenChallenge.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1AuthorizationReqType->GenChallenge.bytes, iso1AuthorizationReqType->GenChallenge.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":MeterID,"urn:iso:15118:2:2013:MsgDataTypes":MeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso1MeterInfoType(bitstream_t* stream, struct iso1MeterInfoType* iso1MeterInfoType) { + int grammarID = 82; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 82: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1MeterInfoType->MeterID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1MeterInfoType->MeterID.characters, iso1MeterInfoType->MeterID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 83; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 83: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */ + if ( iso1MeterInfoType->MeterReading_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger64(stream, iso1MeterInfoType->MeterReading); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 84; + } else if ( iso1MeterInfoType->SigMeterReading_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1MeterInfoType->SigMeterReading.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1MeterInfoType->SigMeterReading.bytes, iso1MeterInfoType->SigMeterReading.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 85; + } else if ( iso1MeterInfoType->MeterStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, iso1MeterInfoType->MeterStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 86; + } else if ( iso1MeterInfoType->TMeter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, iso1MeterInfoType->TMeter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 84: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */ + if ( iso1MeterInfoType->SigMeterReading_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1MeterInfoType->SigMeterReading.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1MeterInfoType->SigMeterReading.bytes, iso1MeterInfoType->SigMeterReading.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 85; + } else if ( iso1MeterInfoType->MeterStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, iso1MeterInfoType->MeterStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 86; + } else if ( iso1MeterInfoType->TMeter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, iso1MeterInfoType->TMeter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 85: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */ + if ( iso1MeterInfoType->MeterStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, iso1MeterInfoType->MeterStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 86; + } else if ( iso1MeterInfoType->TMeter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, iso1MeterInfoType->TMeter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 86: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */ + if ( iso1MeterInfoType->TMeter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, iso1MeterInfoType->TMeter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ManifestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso1ManifestType(bitstream_t* stream, struct iso1ManifestType* iso1ManifestType) { + int grammarID = 87; + int done = 0; + + unsigned int iso1ManifestType_Reference_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 87: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + if ( iso1ManifestType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ManifestType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ManifestType->Id.characters, iso1ManifestType->Id.charactersLen); + } + } + grammarID = 88; + } else if (iso1ManifestType_Reference_currArrayIndex < iso1ManifestType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1ReferenceType(stream, &iso1ManifestType->Reference.array [iso1ManifestType_Reference_currArrayIndex++]); + } + grammarID = 66; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 88: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + if (iso1ManifestType_Reference_currArrayIndex < iso1ManifestType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1ReferenceType(stream, &iso1ManifestType->Reference.array [iso1ManifestType_Reference_currArrayIndex++]); + } + grammarID = 66; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 66: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ + if (iso1ManifestType_Reference_currArrayIndex < iso1ManifestType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ReferenceType(stream, &iso1ManifestType->Reference.array [iso1ManifestType_Reference_currArrayIndex++]); + } + grammarID = 66; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargeParameterDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing,"urn:iso:15118:2:2013:MsgDataTypes":SASchedules{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEChargeParameter)', derivedBy='EXTENSION'. */ +static int encode_iso1ChargeParameterDiscoveryResType(bitstream_t* stream, struct iso1ChargeParameterDiscoveryResType* iso1ChargeParameterDiscoveryResType) { + int grammarID = 89; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 89: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso1ChargeParameterDiscoveryResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 90; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 90: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso1ChargeParameterDiscoveryResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 91; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 91: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */ + if ( iso1ChargeParameterDiscoveryResType->SAScheduleList_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso1SAScheduleListType(stream, &iso1ChargeParameterDiscoveryResType->SAScheduleList ); + } + grammarID = 92; + } else if ( iso1ChargeParameterDiscoveryResType->SASchedules_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso1SASchedulesType(stream, &iso1ChargeParameterDiscoveryResType->SASchedules ); + } + grammarID = 92; + } else if ( iso1ChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso1AC_EVSEChargeParameterType(stream, &iso1ChargeParameterDiscoveryResType->AC_EVSEChargeParameter ); + } + grammarID = 3; + } else if ( iso1ChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso1DC_EVSEChargeParameterType(stream, &iso1ChargeParameterDiscoveryResType->DC_EVSEChargeParameter ); + } + grammarID = 3; + } else if ( iso1ChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_iso1EVSEChargeParameterType(stream, &iso1ChargeParameterDiscoveryResType->EVSEChargeParameter ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 92: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */ + if ( iso1ChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1AC_EVSEChargeParameterType(stream, &iso1ChargeParameterDiscoveryResType->AC_EVSEChargeParameter ); + } + grammarID = 3; + } else if ( iso1ChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1DC_EVSEChargeParameterType(stream, &iso1ChargeParameterDiscoveryResType->DC_EVSEChargeParameter ); + } + grammarID = 3; + } else if ( iso1ChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso1EVSEChargeParameterType(stream, &iso1ChargeParameterDiscoveryResType->EVSEChargeParameter ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PowerDeliveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */ +static int encode_iso1PowerDeliveryResType(bitstream_t* stream, struct iso1PowerDeliveryResType* iso1PowerDeliveryResType) { + int grammarID = 93; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 93: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso1PowerDeliveryResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 94; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 94: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus)] */ + if ( iso1PowerDeliveryResType->AC_EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1AC_EVSEStatusType(stream, &iso1PowerDeliveryResType->AC_EVSEStatus ); + } + grammarID = 3; + } else if ( iso1PowerDeliveryResType->DC_EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1DC_EVSEStatusType(stream, &iso1PowerDeliveryResType->DC_EVSEStatus ); + } + grammarID = 3; + } else if ( iso1PowerDeliveryResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso1EVSEStatusType(stream, &iso1PowerDeliveryResType->EVSEStatus ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1}),("urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVEnergyCapacity{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVEnergyRequest{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FullSOC{0-1},"urn:iso:15118:2:2013:MsgDataTypes":BulkSOC{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso1DC_EVChargeParameterType(bitstream_t* stream, struct iso1DC_EVChargeParameterType* iso1DC_EVChargeParameterType) { + int grammarID = 95; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 95: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */ + if ( iso1DC_EVChargeParameterType->DepartureTime_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, iso1DC_EVChargeParameterType->DepartureTime); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 96; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1DC_EVStatusType(stream, &iso1DC_EVChargeParameterType->DC_EVStatus ); + } + grammarID = 97; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 96: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1DC_EVStatusType(stream, &iso1DC_EVChargeParameterType->DC_EVStatus ); + } + grammarID = 97; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 97: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVMaximumCurrentLimit ); + } + grammarID = 98; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 98: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */ + if ( iso1DC_EVChargeParameterType->EVMaximumPowerLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVMaximumPowerLimit ); + } + grammarID = 99; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVMaximumVoltageLimit ); + } + grammarID = 100; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 99: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVMaximumVoltageLimit ); + } + grammarID = 100; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 100: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */ + if ( iso1DC_EVChargeParameterType->EVEnergyCapacity_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVEnergyCapacity ); + } + grammarID = 101; + } else if ( iso1DC_EVChargeParameterType->EVEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVEnergyRequest ); + } + grammarID = 102; + } else if ( iso1DC_EVChargeParameterType->FullSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso1DC_EVChargeParameterType->FullSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 103; + } else if ( iso1DC_EVChargeParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso1DC_EVChargeParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 101: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */ + if ( iso1DC_EVChargeParameterType->EVEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVEnergyRequest ); + } + grammarID = 102; + } else if ( iso1DC_EVChargeParameterType->FullSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso1DC_EVChargeParameterType->FullSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 103; + } else if ( iso1DC_EVChargeParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso1DC_EVChargeParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 102: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */ + if ( iso1DC_EVChargeParameterType->FullSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso1DC_EVChargeParameterType->FullSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 103; + } else if ( iso1DC_EVChargeParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso1DC_EVChargeParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 103: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */ + if ( iso1DC_EVChargeParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso1DC_EVChargeParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ConsumptionCostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":startValue,"urn:iso:15118:2:2013:MsgDataTypes":Cost{1-3})', derivedBy='RESTRICTION'. */ +static int encode_iso1ConsumptionCostType(bitstream_t* stream, struct iso1ConsumptionCostType* iso1ConsumptionCostType) { + int grammarID = 104; + int done = 0; + + unsigned int iso1ConsumptionCostType_Cost_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 104: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1ConsumptionCostType->startValue ); + } + grammarID = 105; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 105: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost)] */ + if (iso1ConsumptionCostType_Cost_currArrayIndex < iso1ConsumptionCostType->Cost.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1CostType(stream, &iso1ConsumptionCostType->Cost.array [iso1ConsumptionCostType_Cost_currArrayIndex++]); + } + grammarID = 106; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 106: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */ + if (iso1ConsumptionCostType_Cost_currArrayIndex < iso1ConsumptionCostType->Cost.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1CostType(stream, &iso1ConsumptionCostType->Cost.array [iso1ConsumptionCostType_Cost_currArrayIndex++]); + } + grammarID = 107; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 107: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */ + if (iso1ConsumptionCostType_Cost_currArrayIndex < iso1ConsumptionCostType->Cost.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1CostType(stream, &iso1ConsumptionCostType->Cost.array [iso1ConsumptionCostType_Cost_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PMaxScheduleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":PMaxScheduleEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso1PMaxScheduleType(bitstream_t* stream, struct iso1PMaxScheduleType* iso1PMaxScheduleType) { + int grammarID = 108; + int done = 0; + + unsigned int iso1PMaxScheduleType_PMaxScheduleEntry_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 108: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry)] */ + if (iso1PMaxScheduleType_PMaxScheduleEntry_currArrayIndex < iso1PMaxScheduleType->PMaxScheduleEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PMaxScheduleEntryType(stream, &iso1PMaxScheduleType->PMaxScheduleEntry.array [iso1PMaxScheduleType_PMaxScheduleEntry_currArrayIndex++]); + } + grammarID = 109; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 109: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */ + if (iso1PMaxScheduleType_PMaxScheduleEntry_currArrayIndex < iso1PMaxScheduleType->PMaxScheduleEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1PMaxScheduleEntryType(stream, &iso1PMaxScheduleType->PMaxScheduleEntry.array [iso1PMaxScheduleType_PMaxScheduleEntry_currArrayIndex++]); + } + grammarID = 109; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PaymentOptionListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":PaymentOption{1-2})', derivedBy='RESTRICTION'. */ +static int encode_iso1PaymentOptionListType(bitstream_t* stream, struct iso1PaymentOptionListType* iso1PaymentOptionListType) { + int grammarID = 110; + int done = 0; + + unsigned int iso1PaymentOptionListType_PaymentOption_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 110: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption)] */ + if (iso1PaymentOptionListType_PaymentOption_currArrayIndex < iso1PaymentOptionListType->PaymentOption.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso1PaymentOptionListType->PaymentOption.array[iso1PaymentOptionListType_PaymentOption_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 111; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 111: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), END_ELEMENT] */ + if (iso1PaymentOptionListType_PaymentOption_currArrayIndex < iso1PaymentOptionListType->PaymentOption.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso1PaymentOptionListType->PaymentOption.array[iso1PaymentOptionListType_PaymentOption_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_iso1ObjectType(bitstream_t* stream, struct iso1ObjectType* iso1ObjectType) { + int grammarID = 112; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 112: + /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( iso1ObjectType->Encoding_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->Encoding.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ObjectType->Encoding.characters, iso1ObjectType->Encoding.charactersLen); + } + } + grammarID = 113; + } else if ( iso1ObjectType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ObjectType->Id.characters, iso1ObjectType->Id.charactersLen); + } + } + grammarID = 114; + } else if ( iso1ObjectType->MimeType_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->MimeType.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ObjectType->MimeType.characters, iso1ObjectType->MimeType.charactersLen); + } + } + grammarID = 115; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 116; + } else if ( iso1ObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso1ObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ObjectType->ANY.characters, iso1ObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 116; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 113: + /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( iso1ObjectType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ObjectType->Id.characters, iso1ObjectType->Id.charactersLen); + } + } + grammarID = 114; + } else if ( iso1ObjectType->MimeType_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->MimeType.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ObjectType->MimeType.characters, iso1ObjectType->MimeType.charactersLen); + } + } + grammarID = 115; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 116; + } else if ( iso1ObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso1ObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ObjectType->ANY.characters, iso1ObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 116; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 114: + /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( iso1ObjectType->MimeType_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->MimeType.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ObjectType->MimeType.characters, iso1ObjectType->MimeType.charactersLen); + } + } + grammarID = 115; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 116; + } else if ( iso1ObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso1ObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ObjectType->ANY.characters, iso1ObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 116; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 115: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 116; + } else if ( iso1ObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso1ObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ObjectType->ANY.characters, iso1ObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 116; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 116: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 116; + } else if ( iso1ObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso1ObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ObjectType->ANY.characters, iso1ObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 116; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ +static int encode_iso1PhysicalValueType(bitstream_t* stream, struct iso1PhysicalValueType* iso1PhysicalValueType) { + int grammarID = 117; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 117: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, (uint32_t)(iso1PhysicalValueType->Multiplier + 3)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 118; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 118: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, iso1PhysicalValueType->Unit); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 119; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 119: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, iso1PhysicalValueType->Value); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */ +static int encode_iso1RSAKeyValueType(bitstream_t* stream, struct iso1RSAKeyValueType* iso1RSAKeyValueType) { + int grammarID = 120; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 120: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1RSAKeyValueType->Modulus.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1RSAKeyValueType->Modulus.bytes, iso1RSAKeyValueType->Modulus.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 121; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 121: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1RSAKeyValueType->Exponent.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1RSAKeyValueType->Exponent.bytes, iso1RSAKeyValueType->Exponent.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionStopResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */ +static int encode_iso1SessionStopResType(bitstream_t* stream, struct iso1SessionStopResType* iso1SessionStopResType) { + int grammarID = 122; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 122: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso1SessionStopResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateUpdateReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */ +static int encode_iso1CertificateUpdateReqType(bitstream_t* stream, struct iso1CertificateUpdateReqType* iso1CertificateUpdateReqType) { + int grammarID = 123; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 123: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CertificateUpdateReqType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1CertificateUpdateReqType->Id.characters, iso1CertificateUpdateReqType->Id.charactersLen); + } + } + grammarID = 124; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 124: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1CertificateChainType(stream, &iso1CertificateUpdateReqType->ContractSignatureCertChain ); + } + grammarID = 125; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 125: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CertificateUpdateReqType->eMAID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1CertificateUpdateReqType->eMAID.characters, iso1CertificateUpdateReqType->eMAID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 18; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 18: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1ListOfRootCertificateIDsType(stream, &iso1CertificateUpdateReqType->ListOfRootCertificateIDs ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int encode_iso1SignatureValueType(bitstream_t* stream, struct iso1SignatureValueType* iso1SignatureValueType) { + int grammarID = 126; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 126: + /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */ + if ( iso1SignatureValueType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignatureValueType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1SignatureValueType->Id.characters, iso1SignatureValueType->Id.charactersLen); + } + } + grammarID = 24; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignatureValueType->CONTENT.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1SignatureValueType->CONTENT.bytes, iso1SignatureValueType->CONTENT.bytesLen); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 24: + /* StartTag[CHARACTERS[BINARY_BASE64]] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignatureValueType->CONTENT.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1SignatureValueType->CONTENT.bytes, iso1SignatureValueType->CONTENT.bytesLen); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentDetailsReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain)', derivedBy='EXTENSION'. */ +static int encode_iso1PaymentDetailsReqType(bitstream_t* stream, struct iso1PaymentDetailsReqType* iso1PaymentDetailsReqType) { + int grammarID = 127; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 127: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1PaymentDetailsReqType->eMAID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1PaymentDetailsReqType->eMAID.characters, iso1PaymentDetailsReqType->eMAID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 128; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 128: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1CertificateChainType(stream, &iso1PaymentDetailsReqType->ContractSignatureCertChain ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,AuthorizationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */ +static int encode_iso1AuthorizationResType(bitstream_t* stream, struct iso1AuthorizationResType* iso1AuthorizationResType) { + int grammarID = 129; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 129: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso1AuthorizationResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 130; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 130: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso1AuthorizationResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumPowerLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2013:MsgDataTypes":EVSEEnergyToBeDelivered{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso1DC_EVSEChargeParameterType(bitstream_t* stream, struct iso1DC_EVSEChargeParameterType* iso1DC_EVSEChargeParameterType) { + int grammarID = 131; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 131: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1DC_EVSEStatusType(stream, &iso1DC_EVSEChargeParameterType->DC_EVSEStatus ); + } + grammarID = 132; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 132: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEMaximumCurrentLimit ); + } + grammarID = 133; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 133: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEMaximumPowerLimit ); + } + grammarID = 134; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 134: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEMaximumVoltageLimit ); + } + grammarID = 135; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 135: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEMinimumCurrentLimit ); + } + grammarID = 136; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 136: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEMinimumVoltageLimit ); + } + grammarID = 137; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 137: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */ + if ( iso1DC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSECurrentRegulationTolerance ); + } + grammarID = 138; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEPeakCurrentRipple ); + } + grammarID = 139; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 138: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEPeakCurrentRipple ); + } + grammarID = 139; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 139: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */ + if ( iso1DC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEEnergyToBeDelivered ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SubCertificatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate{1-4})', derivedBy='RESTRICTION'. */ +static int encode_iso1SubCertificatesType(bitstream_t* stream, struct iso1SubCertificatesType* iso1SubCertificatesType) { + int grammarID = 140; + int done = 0; + + unsigned int iso1SubCertificatesType_Certificate_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 140: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */ + if (iso1SubCertificatesType_Certificate_currArrayIndex < iso1SubCertificatesType->Certificate.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytes, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytesLen); + iso1SubCertificatesType_Certificate_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 141; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 141: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */ + if (iso1SubCertificatesType_Certificate_currArrayIndex < iso1SubCertificatesType->Certificate.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytes, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytesLen); + iso1SubCertificatesType_Certificate_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 142; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 142: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */ + if (iso1SubCertificatesType_Certificate_currArrayIndex < iso1SubCertificatesType->Certificate.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytes, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytesLen); + iso1SubCertificatesType_Certificate_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 143; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 143: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */ + if (iso1SubCertificatesType_Certificate_currArrayIndex < iso1SubCertificatesType->Certificate.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytes, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytesLen); + iso1SubCertificatesType_Certificate_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargingStatusResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":EVSEMaxCurrent{0-1},"urn:iso:15118:2:2013:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2013:MsgBody":ReceiptRequired{0-1},"urn:iso:15118:2:2013:MsgBody":AC_EVSEStatus)', derivedBy='EXTENSION'. */ +static int encode_iso1ChargingStatusResType(bitstream_t* stream, struct iso1ChargingStatusResType* iso1ChargingStatusResType) { + int grammarID = 144; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 144: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso1ChargingStatusResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 145; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 145: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ChargingStatusResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ChargingStatusResType->EVSEID.characters, iso1ChargingStatusResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 146; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 146: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1ChargingStatusResType->SAScheduleTupleID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 147; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 147: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */ + if ( iso1ChargingStatusResType->EVSEMaxCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1ChargingStatusResType->EVSEMaxCurrent ); + } + grammarID = 148; + } else if ( iso1ChargingStatusResType->MeterInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso1MeterInfoType(stream, &iso1ChargingStatusResType->MeterInfo ); + } + grammarID = 149; + } else if ( iso1ChargingStatusResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1ChargingStatusResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 150; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso1AC_EVSEStatusType(stream, &iso1ChargingStatusResType->AC_EVSEStatus ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 148: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */ + if ( iso1ChargingStatusResType->MeterInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1MeterInfoType(stream, &iso1ChargingStatusResType->MeterInfo ); + } + grammarID = 149; + } else if ( iso1ChargingStatusResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1ChargingStatusResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 150; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso1AC_EVSEStatusType(stream, &iso1ChargingStatusResType->AC_EVSEStatus ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 149: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */ + if ( iso1ChargingStatusResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1ChargingStatusResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 150; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1AC_EVSEStatusType(stream, &iso1ChargingStatusResType->AC_EVSEStatus ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 150: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1AC_EVSEStatusType(stream, &iso1ChargingStatusResType->AC_EVSEStatus ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso1DSAKeyValueType(bitstream_t* stream, struct iso1DSAKeyValueType* iso1DSAKeyValueType) { + int grammarID = 151; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 151: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + if ( iso1DSAKeyValueType->P_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->P.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1DSAKeyValueType->P.bytes, iso1DSAKeyValueType->P.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 152; + } else if ( iso1DSAKeyValueType->G_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->G.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1DSAKeyValueType->G.bytes, iso1DSAKeyValueType->G.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 153; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->Y.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1DSAKeyValueType->Y.bytes, iso1DSAKeyValueType->Y.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 154; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 152: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */ + if ( iso1DSAKeyValueType->Q_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->Q.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1DSAKeyValueType->Q.bytes, iso1DSAKeyValueType->Q.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 155; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 155: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + if ( iso1DSAKeyValueType->G_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->G.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1DSAKeyValueType->G.bytes, iso1DSAKeyValueType->G.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 153; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->Y.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1DSAKeyValueType->Y.bytes, iso1DSAKeyValueType->Y.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 154; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 153: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->Y.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1DSAKeyValueType->Y.bytes, iso1DSAKeyValueType->Y.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 154; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 154: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ + if ( iso1DSAKeyValueType->J_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->J.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1DSAKeyValueType->J.bytes, iso1DSAKeyValueType->J.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 156; + } else if ( iso1DSAKeyValueType->Seed_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->Seed.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1DSAKeyValueType->Seed.bytes, iso1DSAKeyValueType->Seed.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 157; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 156: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ + if ( iso1DSAKeyValueType->Seed_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->Seed.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1DSAKeyValueType->Seed.bytes, iso1DSAKeyValueType->Seed.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 157; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 157: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */ + if ( iso1DSAKeyValueType->PgenCounter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->PgenCounter.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1DSAKeyValueType->PgenCounter.bytes, iso1DSAKeyValueType->PgenCounter.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":RootCertificateID{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso1ListOfRootCertificateIDsType(bitstream_t* stream, struct iso1ListOfRootCertificateIDsType* iso1ListOfRootCertificateIDsType) { + int grammarID = 158; + int done = 0; + + unsigned int iso1ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 158: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID)] */ + if (iso1ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso1ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1X509IssuerSerialType(stream, &iso1ListOfRootCertificateIDsType->RootCertificateID.array [iso1ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 159; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 159: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso1ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso1ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1X509IssuerSerialType(stream, &iso1ListOfRootCertificateIDsType->RootCertificateID.array [iso1ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 159; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ChargeServiceType', base type name='ServiceType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2013:MsgDataTypes":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FreeService),("urn:iso:15118:2:2013:MsgDataTypes":SupportedEnergyTransferMode))', derivedBy='EXTENSION'. */ +static int encode_iso1ChargeServiceType(bitstream_t* stream, struct iso1ChargeServiceType* iso1ChargeServiceType) { + int grammarID = 160; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 160: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso1ChargeServiceType->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 161; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 161: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */ + if ( iso1ChargeServiceType->ServiceName_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ChargeServiceType->ServiceName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ChargeServiceType->ServiceName.characters, iso1ChargeServiceType->ServiceName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 162; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso1ChargeServiceType->ServiceCategory); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 163; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 162: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso1ChargeServiceType->ServiceCategory); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 163; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 163: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */ + if ( iso1ChargeServiceType->ServiceScope_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ChargeServiceType->ServiceScope.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ChargeServiceType->ServiceScope.characters, iso1ChargeServiceType->ServiceScope.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 164; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1ChargeServiceType->FreeService); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 165; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 164: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1ChargeServiceType->FreeService); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 165; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 165: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1SupportedEnergyTransferModeType(stream, &iso1ChargeServiceType->SupportedEnergyTransferMode ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_iso1IntervalType(bitstream_t* stream, struct iso1IntervalType* iso1IntervalType) { + int grammarID = 34; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 34: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,MeteringReceiptReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":SessionID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2013:MsgBody":MeterInfo)', derivedBy='EXTENSION'. */ +static int encode_iso1MeteringReceiptReqType(bitstream_t* stream, struct iso1MeteringReceiptReqType* iso1MeteringReceiptReqType) { + int grammarID = 166; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 166: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */ + if ( iso1MeteringReceiptReqType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1MeteringReceiptReqType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1MeteringReceiptReqType->Id.characters, iso1MeteringReceiptReqType->Id.charactersLen); + } + } + grammarID = 167; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1MeteringReceiptReqType->SessionID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1MeteringReceiptReqType->SessionID.bytes, iso1MeteringReceiptReqType->SessionID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 168; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 167: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1MeteringReceiptReqType->SessionID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1MeteringReceiptReqType->SessionID.bytes, iso1MeteringReceiptReqType->SessionID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 168; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 168: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */ + if ( iso1MeteringReceiptReqType->SAScheduleTupleID_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1MeteringReceiptReqType->SAScheduleTupleID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 169; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1MeterInfoType(stream, &iso1MeteringReceiptReqType->MeterInfo ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 169: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1MeterInfoType(stream, &iso1MeteringReceiptReqType->MeterInfo ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDetailResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":ServiceID,"urn:iso:15118:2:2013:MsgBody":ServiceParameterList{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso1ServiceDetailResType(bitstream_t* stream, struct iso1ServiceDetailResType* iso1ServiceDetailResType) { + int grammarID = 170; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 170: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso1ServiceDetailResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 171; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 171: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso1ServiceDetailResType->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 172; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 172: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), END_ELEMENT] */ + if ( iso1ServiceDetailResType->ServiceParameterList_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ServiceParameterListType(stream, &iso1ServiceDetailResType->ServiceParameterList ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */ +static int encode_iso1KeyValueType(bitstream_t* stream, struct iso1KeyValueType* iso1KeyValueType) { + int grammarID = 173; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 173: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if ( iso1KeyValueType->DSAKeyValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso1DSAKeyValueType(stream, &iso1KeyValueType->DSAKeyValue ); + } + grammarID = 174; + } else if ( iso1KeyValueType->RSAKeyValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso1RSAKeyValueType(stream, &iso1KeyValueType->RSAKeyValue ); + } + grammarID = 174; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 174; + } else if ( iso1KeyValueType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyValueType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1KeyValueType->ANY.characters, iso1KeyValueType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 175; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 174: + /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( iso1KeyValueType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso1KeyValueType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyValueType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1KeyValueType->ANY.characters, iso1KeyValueType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 174; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 175: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if ( iso1KeyValueType->DSAKeyValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso1DSAKeyValueType(stream, &iso1KeyValueType->DSAKeyValue ); + } + grammarID = 174; + } else if ( iso1KeyValueType->RSAKeyValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso1RSAKeyValueType(stream, &iso1KeyValueType->RSAKeyValue ); + } + grammarID = 174; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 174; + } else if ( iso1KeyValueType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyValueType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1KeyValueType->ANY.characters, iso1KeyValueType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 175; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SelectedServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SelectedService{1-16})', derivedBy='RESTRICTION'. */ +static int encode_iso1SelectedServiceListType(bitstream_t* stream, struct iso1SelectedServiceListType* iso1SelectedServiceListType) { + int grammarID = 176; + int done = 0; + + unsigned int iso1SelectedServiceListType_SelectedService_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 176: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService)] */ + if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 177; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 177: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 178; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 178: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 179; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 179: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 180; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 180: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 181; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 181: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 182; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 182: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 183; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 183: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 184; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 184: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 185; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 185: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 186; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 186: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 187; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 187: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 188; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 188: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 189; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 189: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 190; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 190: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 191; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 191: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CableCheckResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */ +static int encode_iso1CableCheckResType(bitstream_t* stream, struct iso1CableCheckResType* iso1CableCheckResType) { + int grammarID = 192; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 192: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso1CableCheckResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 193; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 193: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1DC_EVSEStatusType(stream, &iso1CableCheckResType->DC_EVSEStatus ); + } + grammarID = 130; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 130: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso1CableCheckResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */ +static int encode_iso1X509IssuerSerialType(bitstream_t* stream, struct iso1X509IssuerSerialType* iso1X509IssuerSerialType) { + int grammarID = 194; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 194: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1X509IssuerSerialType->X509IssuerName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1X509IssuerSerialType->X509IssuerName.characters, iso1X509IssuerSerialType->X509IssuerName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 195; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 195: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* errn = encodeInteger64(stream, iso1X509IssuerSerialType->X509SerialNumber); */ + errn = encodeIntegerBig(stream, iso1X509IssuerSerialType->X509SerialNumber.negative, iso1X509IssuerSerialType_X509SerialNumber_BYTES_SIZE, iso1X509IssuerSerialType->X509SerialNumber.data, iso1X509IssuerSerialType->X509SerialNumber.len); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_iso1KeyInfoType(bitstream_t* stream, struct iso1KeyInfoType* iso1KeyInfoType) { + int grammarID = 196; + int done = 0; + int wcDone = 0; + + unsigned int iso1KeyInfoType_KeyName_currArrayIndex = 0; + unsigned int iso1KeyInfoType_KeyValue_currArrayIndex = 0; + unsigned int iso1KeyInfoType_RetrievalMethod_currArrayIndex = 0; + unsigned int iso1KeyInfoType_X509Data_currArrayIndex = 0; + unsigned int iso1KeyInfoType_PGPData_currArrayIndex = 0; + unsigned int iso1KeyInfoType_SPKIData_currArrayIndex = 0; + unsigned int iso1KeyInfoType_MgmtData_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 196: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if ( iso1KeyInfoType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1KeyInfoType->Id.characters, iso1KeyInfoType->Id.charactersLen); + } + } + grammarID = 197; + } else if (iso1KeyInfoType_KeyName_currArrayIndex < iso1KeyInfoType->KeyName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].characters, iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].charactersLen); + iso1KeyInfoType_KeyName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 198; + } else if (iso1KeyInfoType_KeyValue_currArrayIndex < iso1KeyInfoType->KeyValue.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + errn = encode_iso1KeyValueType(stream, &iso1KeyInfoType->KeyValue.array [iso1KeyInfoType_KeyValue_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_RetrievalMethod_currArrayIndex < iso1KeyInfoType->RetrievalMethod.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + errn = encode_iso1RetrievalMethodType(stream, &iso1KeyInfoType->RetrievalMethod.array [iso1KeyInfoType_RetrievalMethod_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_X509Data_currArrayIndex < iso1KeyInfoType->X509Data.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + errn = encode_iso1X509DataType(stream, &iso1KeyInfoType->X509Data.array [iso1KeyInfoType_X509Data_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_PGPData_currArrayIndex < iso1KeyInfoType->PGPData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + errn = encode_iso1PGPDataType(stream, &iso1KeyInfoType->PGPData.array [iso1KeyInfoType_PGPData_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_SPKIData_currArrayIndex < iso1KeyInfoType->SPKIData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + errn = encode_iso1SPKIDataType(stream, &iso1KeyInfoType->SPKIData.array [iso1KeyInfoType_SPKIData_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_MgmtData_currArrayIndex < iso1KeyInfoType->MgmtData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 7); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].characters, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].charactersLen); + iso1KeyInfoType_MgmtData_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 198; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 198; + } else if ( iso1KeyInfoType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 9); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1KeyInfoType->ANY.characters, iso1KeyInfoType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 199; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 197: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if (iso1KeyInfoType_KeyName_currArrayIndex < iso1KeyInfoType->KeyName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].characters, iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].charactersLen); + iso1KeyInfoType_KeyName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 198; + } else if (iso1KeyInfoType_KeyValue_currArrayIndex < iso1KeyInfoType->KeyValue.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + errn = encode_iso1KeyValueType(stream, &iso1KeyInfoType->KeyValue.array [iso1KeyInfoType_KeyValue_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_RetrievalMethod_currArrayIndex < iso1KeyInfoType->RetrievalMethod.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + errn = encode_iso1RetrievalMethodType(stream, &iso1KeyInfoType->RetrievalMethod.array [iso1KeyInfoType_RetrievalMethod_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_X509Data_currArrayIndex < iso1KeyInfoType->X509Data.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + errn = encode_iso1X509DataType(stream, &iso1KeyInfoType->X509Data.array [iso1KeyInfoType_X509Data_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_PGPData_currArrayIndex < iso1KeyInfoType->PGPData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + errn = encode_iso1PGPDataType(stream, &iso1KeyInfoType->PGPData.array [iso1KeyInfoType_PGPData_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_SPKIData_currArrayIndex < iso1KeyInfoType->SPKIData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + errn = encode_iso1SPKIDataType(stream, &iso1KeyInfoType->SPKIData.array [iso1KeyInfoType_SPKIData_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_MgmtData_currArrayIndex < iso1KeyInfoType->MgmtData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].characters, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].charactersLen); + iso1KeyInfoType_MgmtData_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 198; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 198; + } else if ( iso1KeyInfoType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 8); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1KeyInfoType->ANY.characters, iso1KeyInfoType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 199; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 198: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (iso1KeyInfoType_KeyName_currArrayIndex < iso1KeyInfoType->KeyName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].characters, iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].charactersLen); + iso1KeyInfoType_KeyName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 198; + } else if (iso1KeyInfoType_KeyValue_currArrayIndex < iso1KeyInfoType->KeyValue.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + errn = encode_iso1KeyValueType(stream, &iso1KeyInfoType->KeyValue.array [iso1KeyInfoType_KeyValue_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_RetrievalMethod_currArrayIndex < iso1KeyInfoType->RetrievalMethod.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + errn = encode_iso1RetrievalMethodType(stream, &iso1KeyInfoType->RetrievalMethod.array [iso1KeyInfoType_RetrievalMethod_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_X509Data_currArrayIndex < iso1KeyInfoType->X509Data.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + errn = encode_iso1X509DataType(stream, &iso1KeyInfoType->X509Data.array [iso1KeyInfoType_X509Data_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_PGPData_currArrayIndex < iso1KeyInfoType->PGPData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + errn = encode_iso1PGPDataType(stream, &iso1KeyInfoType->PGPData.array [iso1KeyInfoType_PGPData_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_SPKIData_currArrayIndex < iso1KeyInfoType->SPKIData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + errn = encode_iso1SPKIDataType(stream, &iso1KeyInfoType->SPKIData.array [iso1KeyInfoType_SPKIData_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_MgmtData_currArrayIndex < iso1KeyInfoType->MgmtData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].characters, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].charactersLen); + iso1KeyInfoType_MgmtData_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 198; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 198; + } else if ( iso1KeyInfoType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 4, 8); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso1KeyInfoType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 9); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1KeyInfoType->ANY.characters, iso1KeyInfoType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 198; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 199: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if (iso1KeyInfoType_KeyName_currArrayIndex < iso1KeyInfoType->KeyName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].characters, iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].charactersLen); + iso1KeyInfoType_KeyName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 198; + } else if (iso1KeyInfoType_KeyValue_currArrayIndex < iso1KeyInfoType->KeyValue.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + errn = encode_iso1KeyValueType(stream, &iso1KeyInfoType->KeyValue.array [iso1KeyInfoType_KeyValue_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_RetrievalMethod_currArrayIndex < iso1KeyInfoType->RetrievalMethod.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + errn = encode_iso1RetrievalMethodType(stream, &iso1KeyInfoType->RetrievalMethod.array [iso1KeyInfoType_RetrievalMethod_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_X509Data_currArrayIndex < iso1KeyInfoType->X509Data.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + errn = encode_iso1X509DataType(stream, &iso1KeyInfoType->X509Data.array [iso1KeyInfoType_X509Data_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_PGPData_currArrayIndex < iso1KeyInfoType->PGPData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + errn = encode_iso1PGPDataType(stream, &iso1KeyInfoType->PGPData.array [iso1KeyInfoType_PGPData_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_SPKIData_currArrayIndex < iso1KeyInfoType->SPKIData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + errn = encode_iso1SPKIDataType(stream, &iso1KeyInfoType->SPKIData.array [iso1KeyInfoType_SPKIData_currArrayIndex++]); + } + grammarID = 198; + } else if (iso1KeyInfoType_MgmtData_currArrayIndex < iso1KeyInfoType->MgmtData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].characters, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].charactersLen); + iso1KeyInfoType_MgmtData_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 198; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 198; + } else if ( iso1KeyInfoType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 8); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1KeyInfoType->ANY.characters, iso1KeyInfoType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 199; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso1TransformsType(bitstream_t* stream, struct iso1TransformsType* iso1TransformsType) { + int grammarID = 200; + int done = 0; + + unsigned int iso1TransformsType_Transform_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 200: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */ + if (iso1TransformsType_Transform_currArrayIndex < iso1TransformsType->Transform.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1TransformType(stream, &iso1TransformsType->Transform.array [iso1TransformsType_Transform_currArrayIndex++]); + } + grammarID = 201; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 201: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */ + if (iso1TransformsType_Transform_currArrayIndex < iso1TransformsType->Transform.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1TransformType(stream, &iso1TransformsType->Transform.array [iso1TransformsType_Transform_currArrayIndex++]); + } + grammarID = 201; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargeParameterDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":MaxEntriesSAScheduleTuple{0-1},"urn:iso:15118:2:2013:MsgBody":RequestedEnergyTransferMode,"urn:iso:15118:2:2013:MsgDataTypes":EVChargeParameter)', derivedBy='EXTENSION'. */ +static int encode_iso1ChargeParameterDiscoveryReqType(bitstream_t* stream, struct iso1ChargeParameterDiscoveryReqType* iso1ChargeParameterDiscoveryReqType) { + int grammarID = 202; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 202: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */ + if ( iso1ChargeParameterDiscoveryReqType->MaxEntriesSAScheduleTuple_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso1ChargeParameterDiscoveryReqType->MaxEntriesSAScheduleTuple); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 203; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, iso1ChargeParameterDiscoveryReqType->RequestedEnergyTransferMode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 204; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 203: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, iso1ChargeParameterDiscoveryReqType->RequestedEnergyTransferMode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 204; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 204: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter)] */ + if ( iso1ChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1AC_EVChargeParameterType(stream, &iso1ChargeParameterDiscoveryReqType->AC_EVChargeParameter ); + } + grammarID = 3; + } else if ( iso1ChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1DC_EVChargeParameterType(stream, &iso1ChargeParameterDiscoveryReqType->DC_EVChargeParameter ); + } + grammarID = 3; + } else if ( iso1ChargeParameterDiscoveryReqType->EVChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso1EVChargeParameterType(stream, &iso1ChargeParameterDiscoveryReqType->EVChargeParameter ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PreChargeReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus,"urn:iso:15118:2:2013:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2013:MsgBody":EVTargetCurrent)', derivedBy='EXTENSION'. */ +static int encode_iso1PreChargeReqType(bitstream_t* stream, struct iso1PreChargeReqType* iso1PreChargeReqType) { + int grammarID = 205; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 205: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1DC_EVStatusType(stream, &iso1PreChargeReqType->DC_EVStatus ); + } + grammarID = 206; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 206: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1PreChargeReqType->EVTargetVoltage ); + } + grammarID = 207; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 207: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1PreChargeReqType->EVTargetCurrent ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ +static int encode_iso1EVSEStatusType(bitstream_t* stream, struct iso1EVSEStatusType* iso1EVSEStatusType) { + int grammarID = 208; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 208: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso1EVSEStatusType->NotificationMaxDelay); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 209; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 209: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso1EVSEStatusType->EVSENotification); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso1SignatureMethodType(bitstream_t* stream, struct iso1SignatureMethodType* iso1SignatureMethodType) { + int grammarID = 210; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 210: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignatureMethodType->Algorithm.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1SignatureMethodType->Algorithm.characters, iso1SignatureMethodType->Algorithm.charactersLen); + } + } + grammarID = 211; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 211: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( iso1SignatureMethodType->HMACOutputLength_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, iso1SignatureMethodType->HMACOutputLength); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 116; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 116; + } else if ( iso1SignatureMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso1SignatureMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignatureMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1SignatureMethodType->ANY.characters, iso1SignatureMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 212; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 116: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 116; + } else if ( iso1SignatureMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso1SignatureMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignatureMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1SignatureMethodType->ANY.characters, iso1SignatureMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 116; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 212: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( iso1SignatureMethodType->HMACOutputLength_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, iso1SignatureMethodType->HMACOutputLength); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 116; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 116; + } else if ( iso1SignatureMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso1SignatureMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignatureMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1SignatureMethodType->ANY.characters, iso1SignatureMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 212; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_iso1X509DataType(bitstream_t* stream, struct iso1X509DataType* iso1X509DataType) { + int grammarID = 213; + int done = 0; + int wcDone = 0; + + unsigned int iso1X509DataType_X509IssuerSerial_currArrayIndex = 0; + unsigned int iso1X509DataType_X509SKI_currArrayIndex = 0; + unsigned int iso1X509DataType_X509SubjectName_currArrayIndex = 0; + unsigned int iso1X509DataType_X509Certificate_currArrayIndex = 0; + unsigned int iso1X509DataType_X509CRL_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 213: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */ + if (iso1X509DataType_X509IssuerSerial_currArrayIndex < iso1X509DataType->X509IssuerSerial.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso1X509IssuerSerialType(stream, &iso1X509DataType->X509IssuerSerial.array [iso1X509DataType_X509IssuerSerial_currArrayIndex++]); + } + grammarID = 214; + } else if (iso1X509DataType_X509SKI_currArrayIndex < iso1X509DataType->X509SKI.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1X509DataType->X509SKI.array[iso1X509DataType_X509SKI_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1X509DataType->X509SKI.array[iso1X509DataType_X509SKI_currArrayIndex].bytes, iso1X509DataType->X509SKI.array[iso1X509DataType_X509SKI_currArrayIndex].bytesLen); + iso1X509DataType_X509SKI_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 214; + } else if (iso1X509DataType_X509SubjectName_currArrayIndex < iso1X509DataType->X509SubjectName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1X509DataType->X509SubjectName.array[iso1X509DataType_X509SubjectName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1X509DataType->X509SubjectName.array[iso1X509DataType_X509SubjectName_currArrayIndex].characters, iso1X509DataType->X509SubjectName.array[iso1X509DataType_X509SubjectName_currArrayIndex].charactersLen); + iso1X509DataType_X509SubjectName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 214; + } else if (iso1X509DataType_X509Certificate_currArrayIndex < iso1X509DataType->X509Certificate.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1X509DataType->X509Certificate.array[iso1X509DataType_X509Certificate_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1X509DataType->X509Certificate.array[iso1X509DataType_X509Certificate_currArrayIndex].bytes, iso1X509DataType->X509Certificate.array[iso1X509DataType_X509Certificate_currArrayIndex].bytesLen); + iso1X509DataType_X509Certificate_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 214; + } else if (iso1X509DataType_X509CRL_currArrayIndex < iso1X509DataType->X509CRL.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1X509DataType->X509CRL.array[iso1X509DataType_X509CRL_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1X509DataType->X509CRL.array[iso1X509DataType_X509CRL_currArrayIndex].bytes, iso1X509DataType->X509CRL.array[iso1X509DataType_X509CRL_currArrayIndex].bytesLen); + iso1X509DataType_X509CRL_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 214; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 214; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 214: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */ + if (iso1X509DataType_X509IssuerSerial_currArrayIndex < iso1X509DataType->X509IssuerSerial.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso1X509IssuerSerialType(stream, &iso1X509DataType->X509IssuerSerial.array [iso1X509DataType_X509IssuerSerial_currArrayIndex++]); + } + grammarID = 214; + } else if (iso1X509DataType_X509SKI_currArrayIndex < iso1X509DataType->X509SKI.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1X509DataType->X509SKI.array[iso1X509DataType_X509SKI_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1X509DataType->X509SKI.array[iso1X509DataType_X509SKI_currArrayIndex].bytes, iso1X509DataType->X509SKI.array[iso1X509DataType_X509SKI_currArrayIndex].bytesLen); + iso1X509DataType_X509SKI_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 214; + } else if (iso1X509DataType_X509SubjectName_currArrayIndex < iso1X509DataType->X509SubjectName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1X509DataType->X509SubjectName.array[iso1X509DataType_X509SubjectName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1X509DataType->X509SubjectName.array[iso1X509DataType_X509SubjectName_currArrayIndex].characters, iso1X509DataType->X509SubjectName.array[iso1X509DataType_X509SubjectName_currArrayIndex].charactersLen); + iso1X509DataType_X509SubjectName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 214; + } else if (iso1X509DataType_X509Certificate_currArrayIndex < iso1X509DataType->X509Certificate.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1X509DataType->X509Certificate.array[iso1X509DataType_X509Certificate_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1X509DataType->X509Certificate.array[iso1X509DataType_X509Certificate_currArrayIndex].bytes, iso1X509DataType->X509Certificate.array[iso1X509DataType_X509Certificate_currArrayIndex].bytesLen); + iso1X509DataType_X509Certificate_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 214; + } else if (iso1X509DataType_X509CRL_currArrayIndex < iso1X509DataType->X509CRL.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1X509DataType->X509CRL.array[iso1X509DataType_X509CRL_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1X509DataType->X509CRL.array[iso1X509DataType_X509CRL_currArrayIndex].bytes, iso1X509DataType->X509CRL.array[iso1X509DataType_X509CRL_currArrayIndex].bytesLen); + iso1X509DataType_X509CRL_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 214; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 214; + } else if ( iso1X509DataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 6); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,NotificationType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":FaultCode,"urn:iso:15118:2:2013:MsgDataTypes":FaultMsg{0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso1NotificationType(bitstream_t* stream, struct iso1NotificationType* iso1NotificationType) { + int grammarID = 215; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 215: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso1NotificationType->FaultCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 216; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 216: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), END_ELEMENT] */ + if ( iso1NotificationType->FaultMsg_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1NotificationType->FaultMsg.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1NotificationType->FaultMsg.characters, iso1NotificationType->FaultMsg.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SAScheduleListType', base type name='SASchedulesType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTuple{1-3})', derivedBy='EXTENSION'. */ +static int encode_iso1SAScheduleListType(bitstream_t* stream, struct iso1SAScheduleListType* iso1SAScheduleListType) { + int grammarID = 217; + int done = 0; + + unsigned int iso1SAScheduleListType_SAScheduleTuple_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 217: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple)] */ + if (iso1SAScheduleListType_SAScheduleTuple_currArrayIndex < iso1SAScheduleListType->SAScheduleTuple.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1SAScheduleTupleType(stream, &iso1SAScheduleListType->SAScheduleTuple.array [iso1SAScheduleListType_SAScheduleTuple_currArrayIndex++]); + } + grammarID = 218; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 218: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */ + if (iso1SAScheduleListType_SAScheduleTuple_currArrayIndex < iso1SAScheduleListType->SAScheduleTuple.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SAScheduleTupleType(stream, &iso1SAScheduleListType->SAScheduleTuple.array [iso1SAScheduleListType_SAScheduleTuple_currArrayIndex++]); + } + grammarID = 219; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 219: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */ + if (iso1SAScheduleListType_SAScheduleTuple_currArrayIndex < iso1SAScheduleListType->SAScheduleTuple.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SAScheduleTupleType(stream, &iso1SAScheduleListType->SAScheduleTuple.array [iso1SAScheduleListType_SAScheduleTuple_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,BodyType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":BodyElement{0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso1BodyType(bitstream_t* stream, struct iso1BodyType* iso1BodyType) { + int grammarID = 220; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 220: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] */ + if ( iso1BodyType->AuthorizationReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 0); + if(errn == 0) { + errn = encode_iso1AuthorizationReqType(stream, &iso1BodyType->AuthorizationReq ); + } + grammarID = 3; + } else if ( iso1BodyType->AuthorizationRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 1); + if(errn == 0) { + errn = encode_iso1AuthorizationResType(stream, &iso1BodyType->AuthorizationRes ); + } + grammarID = 3; + } else if ( iso1BodyType->BodyElement_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 2); + if(errn == 0) { + errn = encode_iso1BodyBaseType(stream, &iso1BodyType->BodyElement ); + } + grammarID = 3; + } else if ( iso1BodyType->CableCheckReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 3); + if(errn == 0) { + errn = encode_iso1CableCheckReqType(stream, &iso1BodyType->CableCheckReq ); + } + grammarID = 3; + } else if ( iso1BodyType->CableCheckRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 4); + if(errn == 0) { + errn = encode_iso1CableCheckResType(stream, &iso1BodyType->CableCheckRes ); + } + grammarID = 3; + } else if ( iso1BodyType->CertificateInstallationReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 5); + if(errn == 0) { + errn = encode_iso1CertificateInstallationReqType(stream, &iso1BodyType->CertificateInstallationReq ); + } + grammarID = 3; + } else if ( iso1BodyType->CertificateInstallationRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 6); + if(errn == 0) { + errn = encode_iso1CertificateInstallationResType(stream, &iso1BodyType->CertificateInstallationRes ); + } + grammarID = 3; + } else if ( iso1BodyType->CertificateUpdateReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 7); + if(errn == 0) { + errn = encode_iso1CertificateUpdateReqType(stream, &iso1BodyType->CertificateUpdateReq ); + } + grammarID = 3; + } else if ( iso1BodyType->CertificateUpdateRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 8); + if(errn == 0) { + errn = encode_iso1CertificateUpdateResType(stream, &iso1BodyType->CertificateUpdateRes ); + } + grammarID = 3; + } else if ( iso1BodyType->ChargeParameterDiscoveryReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 9); + if(errn == 0) { + errn = encode_iso1ChargeParameterDiscoveryReqType(stream, &iso1BodyType->ChargeParameterDiscoveryReq ); + } + grammarID = 3; + } else if ( iso1BodyType->ChargeParameterDiscoveryRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 10); + if(errn == 0) { + errn = encode_iso1ChargeParameterDiscoveryResType(stream, &iso1BodyType->ChargeParameterDiscoveryRes ); + } + grammarID = 3; + } else if ( iso1BodyType->ChargingStatusReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 11); + if(errn == 0) { + errn = encode_iso1ChargingStatusReqType(stream, &iso1BodyType->ChargingStatusReq ); + } + grammarID = 3; + } else if ( iso1BodyType->ChargingStatusRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 12); + if(errn == 0) { + errn = encode_iso1ChargingStatusResType(stream, &iso1BodyType->ChargingStatusRes ); + } + grammarID = 3; + } else if ( iso1BodyType->CurrentDemandReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 13); + if(errn == 0) { + errn = encode_iso1CurrentDemandReqType(stream, &iso1BodyType->CurrentDemandReq ); + } + grammarID = 3; + } else if ( iso1BodyType->CurrentDemandRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 14); + if(errn == 0) { + errn = encode_iso1CurrentDemandResType(stream, &iso1BodyType->CurrentDemandRes ); + } + grammarID = 3; + } else if ( iso1BodyType->MeteringReceiptReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 15); + if(errn == 0) { + errn = encode_iso1MeteringReceiptReqType(stream, &iso1BodyType->MeteringReceiptReq ); + } + grammarID = 3; + } else if ( iso1BodyType->MeteringReceiptRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 16); + if(errn == 0) { + errn = encode_iso1MeteringReceiptResType(stream, &iso1BodyType->MeteringReceiptRes ); + } + grammarID = 3; + } else if ( iso1BodyType->PaymentDetailsReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 17); + if(errn == 0) { + errn = encode_iso1PaymentDetailsReqType(stream, &iso1BodyType->PaymentDetailsReq ); + } + grammarID = 3; + } else if ( iso1BodyType->PaymentDetailsRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 18); + if(errn == 0) { + errn = encode_iso1PaymentDetailsResType(stream, &iso1BodyType->PaymentDetailsRes ); + } + grammarID = 3; + } else if ( iso1BodyType->PaymentServiceSelectionReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 19); + if(errn == 0) { + errn = encode_iso1PaymentServiceSelectionReqType(stream, &iso1BodyType->PaymentServiceSelectionReq ); + } + grammarID = 3; + } else if ( iso1BodyType->PaymentServiceSelectionRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 20); + if(errn == 0) { + errn = encode_iso1PaymentServiceSelectionResType(stream, &iso1BodyType->PaymentServiceSelectionRes ); + } + grammarID = 3; + } else if ( iso1BodyType->PowerDeliveryReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 21); + if(errn == 0) { + errn = encode_iso1PowerDeliveryReqType(stream, &iso1BodyType->PowerDeliveryReq ); + } + grammarID = 3; + } else if ( iso1BodyType->PowerDeliveryRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 22); + if(errn == 0) { + errn = encode_iso1PowerDeliveryResType(stream, &iso1BodyType->PowerDeliveryRes ); + } + grammarID = 3; + } else if ( iso1BodyType->PreChargeReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 23); + if(errn == 0) { + errn = encode_iso1PreChargeReqType(stream, &iso1BodyType->PreChargeReq ); + } + grammarID = 3; + } else if ( iso1BodyType->PreChargeRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 24); + if(errn == 0) { + errn = encode_iso1PreChargeResType(stream, &iso1BodyType->PreChargeRes ); + } + grammarID = 3; + } else if ( iso1BodyType->ServiceDetailReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 25); + if(errn == 0) { + errn = encode_iso1ServiceDetailReqType(stream, &iso1BodyType->ServiceDetailReq ); + } + grammarID = 3; + } else if ( iso1BodyType->ServiceDetailRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 26); + if(errn == 0) { + errn = encode_iso1ServiceDetailResType(stream, &iso1BodyType->ServiceDetailRes ); + } + grammarID = 3; + } else if ( iso1BodyType->ServiceDiscoveryReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 27); + if(errn == 0) { + errn = encode_iso1ServiceDiscoveryReqType(stream, &iso1BodyType->ServiceDiscoveryReq ); + } + grammarID = 3; + } else if ( iso1BodyType->ServiceDiscoveryRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 28); + if(errn == 0) { + errn = encode_iso1ServiceDiscoveryResType(stream, &iso1BodyType->ServiceDiscoveryRes ); + } + grammarID = 3; + } else if ( iso1BodyType->SessionSetupReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 29); + if(errn == 0) { + errn = encode_iso1SessionSetupReqType(stream, &iso1BodyType->SessionSetupReq ); + } + grammarID = 3; + } else if ( iso1BodyType->SessionSetupRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 30); + if(errn == 0) { + errn = encode_iso1SessionSetupResType(stream, &iso1BodyType->SessionSetupRes ); + } + grammarID = 3; + } else if ( iso1BodyType->SessionStopReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 31); + if(errn == 0) { + errn = encode_iso1SessionStopReqType(stream, &iso1BodyType->SessionStopReq ); + } + grammarID = 3; + } else if ( iso1BodyType->SessionStopRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 32); + if(errn == 0) { + errn = encode_iso1SessionStopResType(stream, &iso1BodyType->SessionStopRes ); + } + grammarID = 3; + } else if ( iso1BodyType->WeldingDetectionReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 33); + if(errn == 0) { + errn = encode_iso1WeldingDetectionReqType(stream, &iso1BodyType->WeldingDetectionReq ); + } + grammarID = 3; + } else if ( iso1BodyType->WeldingDetectionRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 34); + if(errn == 0) { + errn = encode_iso1WeldingDetectionResType(stream, &iso1BodyType->WeldingDetectionRes ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 6, 35); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ChargingProfileType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ProfileEntry{1-24})', derivedBy='RESTRICTION'. */ +static int encode_iso1ChargingProfileType(bitstream_t* stream, struct iso1ChargingProfileType* iso1ChargingProfileType) { + int grammarID = 221; + int done = 0; + + unsigned int iso1ChargingProfileType_ProfileEntry_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 221: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry)] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 222; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 222: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 223; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 223: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 224; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 224: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 225; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 225: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 226; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 226: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 227; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 227: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 228; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 228: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 229; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 229: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 230; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 230: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 231; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 231: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 232; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 232: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 233; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 233: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 234; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 234: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 235; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 235: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 236; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 236: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 237; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 237: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 238; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 238: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 239; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 239: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 240; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 240: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 241; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 241: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 242; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 242: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 243; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 243: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 244; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 244: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_iso1TransformType(bitstream_t* stream, struct iso1TransformType* iso1TransformType) { + int grammarID = 245; + int done = 0; + int wcDone = 0; + + unsigned int iso1TransformType_XPath_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 245: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1TransformType->Algorithm.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1TransformType->Algorithm.characters, iso1TransformType->Algorithm.charactersLen); + } + } + grammarID = 246; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 246: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (iso1TransformType_XPath_currArrayIndex < iso1TransformType->XPath.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1TransformType->XPath.array[iso1TransformType_XPath_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1TransformType->XPath.array[iso1TransformType_XPath_currArrayIndex].characters, iso1TransformType->XPath.array[iso1TransformType_XPath_currArrayIndex].charactersLen); + iso1TransformType_XPath_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 247; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 247; + } else if ( iso1TransformType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso1TransformType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1TransformType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1TransformType->ANY.characters, iso1TransformType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 247; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 247: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (iso1TransformType_XPath_currArrayIndex < iso1TransformType->XPath.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1TransformType->XPath.array[iso1TransformType_XPath_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1TransformType->XPath.array[iso1TransformType_XPath_currArrayIndex].characters, iso1TransformType->XPath.array[iso1TransformType_XPath_currArrayIndex].charactersLen); + iso1TransformType_XPath_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 247; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 247; + } else if ( iso1TransformType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso1TransformType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1TransformType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1TransformType->ANY.characters, iso1TransformType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 247; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SAScheduleTupleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgDataTypes":PMaxSchedule,"urn:iso:15118:2:2013:MsgDataTypes":SalesTariff{0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso1SAScheduleTupleType(bitstream_t* stream, struct iso1SAScheduleTupleType* iso1SAScheduleTupleType) { + int grammarID = 248; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 248: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1SAScheduleTupleType->SAScheduleTupleID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 249; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 249: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PMaxScheduleType(stream, &iso1SAScheduleTupleType->PMaxSchedule ); + } + grammarID = 250; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 250: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), END_ELEMENT] */ + if ( iso1SAScheduleTupleType->SalesTariff_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SalesTariffType(stream, &iso1SAScheduleTupleType->SalesTariff ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1}),("urn:iso:15118:2:2013:MsgDataTypes":EAmount,"urn:iso:15118:2:2013:MsgDataTypes":EVMaxVoltage,"urn:iso:15118:2:2013:MsgDataTypes":EVMaxCurrent,"urn:iso:15118:2:2013:MsgDataTypes":EVMinCurrent))', derivedBy='EXTENSION'. */ +static int encode_iso1AC_EVChargeParameterType(bitstream_t* stream, struct iso1AC_EVChargeParameterType* iso1AC_EVChargeParameterType) { + int grammarID = 251; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 251: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */ + if ( iso1AC_EVChargeParameterType->DepartureTime_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, iso1AC_EVChargeParameterType->DepartureTime); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 252; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1AC_EVChargeParameterType->EAmount ); + } + grammarID = 253; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 252: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1AC_EVChargeParameterType->EAmount ); + } + grammarID = 253; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 253: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1AC_EVChargeParameterType->EVMaxVoltage ); + } + grammarID = 254; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 254: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1AC_EVChargeParameterType->EVMaxCurrent ); + } + grammarID = 255; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 255: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1AC_EVChargeParameterType->EVMinCurrent ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDef,#AnonType_V2G_Message', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDef":Header,"urn:iso:15118:2:2013:MsgDef":Body)', derivedBy='RESTRICTION'. */ +static int encode_iso1AnonType_V2G_Message(bitstream_t* stream, struct iso1AnonType_V2G_Message* iso1AnonType_V2G_Message) { + int grammarID = 256; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 256: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1MessageHeaderType(stream, &iso1AnonType_V2G_Message->Header ); + } + grammarID = 257; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 257: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1BodyType(stream, &iso1AnonType_V2G_Message->Body ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentDetailsResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":GenChallenge,"urn:iso:15118:2:2013:MsgBody":EVSETimeStamp)', derivedBy='EXTENSION'. */ +static int encode_iso1PaymentDetailsResType(bitstream_t* stream, struct iso1PaymentDetailsResType* iso1PaymentDetailsResType) { + int grammarID = 258; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 258: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso1PaymentDetailsResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 259; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 259: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1PaymentDetailsResType->GenChallenge.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1PaymentDetailsResType->GenChallenge.bytes, iso1PaymentDetailsResType->GenChallenge.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 260; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 260: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, iso1PaymentDetailsResType->EVSETimeStamp); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ContractSignatureEncryptedPrivateKeyType', base type name='privateKeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int encode_iso1ContractSignatureEncryptedPrivateKeyType(bitstream_t* stream, struct iso1ContractSignatureEncryptedPrivateKeyType* iso1ContractSignatureEncryptedPrivateKeyType) { + int grammarID = 23; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 23: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ContractSignatureEncryptedPrivateKeyType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ContractSignatureEncryptedPrivateKeyType->Id.characters, iso1ContractSignatureEncryptedPrivateKeyType->Id.charactersLen); + } + } + grammarID = 24; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 24: + /* StartTag[CHARACTERS[BINARY_BASE64]] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ContractSignatureEncryptedPrivateKeyType->CONTENT.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1ContractSignatureEncryptedPrivateKeyType->CONTENT.bytes, iso1ContractSignatureEncryptedPrivateKeyType->CONTENT.bytesLen); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2013:MsgDataTypes":PMax))', derivedBy='EXTENSION'. */ +static int encode_iso1PMaxScheduleEntryType(bitstream_t* stream, struct iso1PMaxScheduleEntryType* iso1PMaxScheduleEntryType) { + int grammarID = 261; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 261: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */ + if ( iso1PMaxScheduleEntryType->RelativeTimeInterval_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1RelativeTimeIntervalType(stream, &iso1PMaxScheduleEntryType->RelativeTimeInterval ); + } + grammarID = 262; + } else if ( iso1PMaxScheduleEntryType->TimeInterval_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1IntervalType(stream, &iso1PMaxScheduleEntryType->TimeInterval ); + } + grammarID = 262; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 262: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1PMaxScheduleEntryType->PMax ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_iso1SPKIDataType(bitstream_t* stream, struct iso1SPKIDataType* iso1SPKIDataType) { + int grammarID = 263; + int done = 0; + int wcDone = 0; + + unsigned int iso1SPKIDataType_SPKISexp_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 263: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */ + if (iso1SPKIDataType_SPKISexp_currArrayIndex < iso1SPKIDataType->SPKISexp.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType_SPKISexp_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType_SPKISexp_currArrayIndex].bytes, iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType_SPKISexp_currArrayIndex].bytesLen); + iso1SPKIDataType_SPKISexp_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 264; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 264: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */ + if (iso1SPKIDataType_SPKISexp_currArrayIndex < iso1SPKIDataType->SPKISexp.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType_SPKISexp_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType_SPKISexp_currArrayIndex].bytes, iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType_SPKISexp_currArrayIndex].bytesLen); + iso1SPKIDataType_SPKISexp_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 264; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 265; + } else if ( iso1SPKIDataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 265: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */ + if (iso1SPKIDataType_SPKISexp_currArrayIndex < iso1SPKIDataType->SPKISexp.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType_SPKISexp_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType_SPKISexp_currArrayIndex].bytes, iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType_SPKISexp_currArrayIndex].bytesLen); + iso1SPKIDataType_SPKISexp_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 264; + } else if ( iso1SPKIDataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,MeteringReceiptResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */ +static int encode_iso1MeteringReceiptResType(bitstream_t* stream, struct iso1MeteringReceiptResType* iso1MeteringReceiptResType) { + int grammarID = 93; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 93: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso1MeteringReceiptResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 94; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 94: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus)] */ + if ( iso1MeteringReceiptResType->AC_EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1AC_EVSEStatusType(stream, &iso1MeteringReceiptResType->AC_EVSEStatus ); + } + grammarID = 3; + } else if ( iso1MeteringReceiptResType->DC_EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1DC_EVSEStatusType(stream, &iso1MeteringReceiptResType->DC_EVSEStatus ); + } + grammarID = 3; + } else if ( iso1MeteringReceiptResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso1EVSEStatusType(stream, &iso1MeteringReceiptResType->EVSEStatus ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionStopReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ChargingSession)', derivedBy='EXTENSION'. */ +static int encode_iso1SessionStopReqType(bitstream_t* stream, struct iso1SessionStopReqType* iso1SessionStopReqType) { + int grammarID = 266; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 266: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso1SessionStopReqType->ChargingSession); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,WeldingDetectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */ +static int encode_iso1WeldingDetectionResType(bitstream_t* stream, struct iso1WeldingDetectionResType* iso1WeldingDetectionResType) { + int grammarID = 39; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 39: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso1WeldingDetectionResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 40; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 40: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1DC_EVSEStatusType(stream, &iso1WeldingDetectionResType->DC_EVSEStatus ); + } + grammarID = 41; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 41: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1WeldingDetectionResType->EVSEPresentVoltage ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ +static int encode_iso1ReferenceType(bitstream_t* stream, struct iso1ReferenceType* iso1ReferenceType) { + int grammarID = 267; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 267: + /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( iso1ReferenceType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ReferenceType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ReferenceType->Id.characters, iso1ReferenceType->Id.charactersLen); + } + } + grammarID = 268; + } else if ( iso1ReferenceType->Type_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ReferenceType->Type.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ReferenceType->Type.characters, iso1ReferenceType->Type.charactersLen); + } + } + grammarID = 269; + } else if ( iso1ReferenceType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ReferenceType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ReferenceType->URI.characters, iso1ReferenceType->URI.charactersLen); + } + } + grammarID = 270; + } else if ( iso1ReferenceType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso1TransformsType(stream, &iso1ReferenceType->Transforms ); + } + grammarID = 271; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_iso1DigestMethodType(stream, &iso1ReferenceType->DigestMethod ); + } + grammarID = 272; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 268: + /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( iso1ReferenceType->Type_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ReferenceType->Type.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ReferenceType->Type.characters, iso1ReferenceType->Type.charactersLen); + } + } + grammarID = 269; + } else if ( iso1ReferenceType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ReferenceType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ReferenceType->URI.characters, iso1ReferenceType->URI.charactersLen); + } + } + grammarID = 270; + } else if ( iso1ReferenceType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso1TransformsType(stream, &iso1ReferenceType->Transforms ); + } + grammarID = 271; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso1DigestMethodType(stream, &iso1ReferenceType->DigestMethod ); + } + grammarID = 272; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 269: + /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( iso1ReferenceType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ReferenceType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ReferenceType->URI.characters, iso1ReferenceType->URI.charactersLen); + } + } + grammarID = 270; + } else if ( iso1ReferenceType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1TransformsType(stream, &iso1ReferenceType->Transforms ); + } + grammarID = 271; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso1DigestMethodType(stream, &iso1ReferenceType->DigestMethod ); + } + grammarID = 272; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 270: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( iso1ReferenceType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1TransformsType(stream, &iso1ReferenceType->Transforms ); + } + grammarID = 271; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1DigestMethodType(stream, &iso1ReferenceType->DigestMethod ); + } + grammarID = 272; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 271: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1DigestMethodType(stream, &iso1ReferenceType->DigestMethod ); + } + grammarID = 272; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 272: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ReferenceType->DigestValue.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1ReferenceType->DigestValue.bytes, iso1ReferenceType->DigestValue.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CurrentDemandReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus,"urn:iso:15118:2:2013:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2013:MsgBody":EVMaximumVoltageLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVMaximumCurrentLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgBody":BulkChargingComplete{0-1},"urn:iso:15118:2:2013:MsgBody":ChargingComplete,"urn:iso:15118:2:2013:MsgBody":RemainingTimeToFullSoC{0-1},"urn:iso:15118:2:2013:MsgBody":RemainingTimeToBulkSoC{0-1},"urn:iso:15118:2:2013:MsgBody":EVTargetVoltage)', derivedBy='EXTENSION'. */ +static int encode_iso1CurrentDemandReqType(bitstream_t* stream, struct iso1CurrentDemandReqType* iso1CurrentDemandReqType) { + int grammarID = 273; + int done = 0; + + // printf("🏁 [DEBUG CurrentDemandReq] Starting encoding, stream pos: %zu\n", *stream->pos); + + while(!done) { + // printf("🔍 [DEBUG CurrentDemandReq] Grammar case: %d, stream pos: %zu\n", grammarID, *stream->pos); + switch(grammarID) { + case 273: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1DC_EVStatusType(stream, &iso1CurrentDemandReqType->DC_EVStatus ); + } + grammarID = 274; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 274: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVTargetCurrent ); + } + grammarID = 275; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 275: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */ + if ( iso1CurrentDemandReqType->EVMaximumVoltageLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVMaximumVoltageLimit ); + } + grammarID = 276; + } else if ( iso1CurrentDemandReqType->EVMaximumCurrentLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVMaximumCurrentLimit ); + } + grammarID = 277; + } else if ( iso1CurrentDemandReqType->EVMaximumPowerLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVMaximumPowerLimit ); + } + grammarID = 278; + } else if ( iso1CurrentDemandReqType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1CurrentDemandReqType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 279; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1CurrentDemandReqType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 280; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 276: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */ + if ( iso1CurrentDemandReqType->EVMaximumCurrentLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVMaximumCurrentLimit ); + } + grammarID = 277; + } else if ( iso1CurrentDemandReqType->EVMaximumPowerLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVMaximumPowerLimit ); + } + grammarID = 278; + } else if ( iso1CurrentDemandReqType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1CurrentDemandReqType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 279; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1CurrentDemandReqType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 280; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 277: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */ + if ( iso1CurrentDemandReqType->EVMaximumPowerLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVMaximumPowerLimit ); + } + grammarID = 278; + } else if ( iso1CurrentDemandReqType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1CurrentDemandReqType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 279; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1CurrentDemandReqType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 280; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 278: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */ + if ( iso1CurrentDemandReqType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1CurrentDemandReqType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 279; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1CurrentDemandReqType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 280; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 279: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1CurrentDemandReqType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 280; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 280: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */ + if ( iso1CurrentDemandReqType->RemainingTimeToFullSoC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->RemainingTimeToFullSoC ); + } + grammarID = 281; + } else if ( iso1CurrentDemandReqType->RemainingTimeToBulkSoC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->RemainingTimeToBulkSoC ); + } + grammarID = 282; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVTargetVoltage ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 281: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */ + if ( iso1CurrentDemandReqType->RemainingTimeToBulkSoC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->RemainingTimeToBulkSoC ); + } + grammarID = 282; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVTargetVoltage ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 282: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVTargetVoltage ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SalesTariffEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2013:MsgDataTypes":EPriceLevel{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ConsumptionCost{0-3}))', derivedBy='EXTENSION'. */ +static int encode_iso1SalesTariffEntryType(bitstream_t* stream, struct iso1SalesTariffEntryType* iso1SalesTariffEntryType) { + int grammarID = 283; + int done = 0; + + unsigned int iso1SalesTariffEntryType_ConsumptionCost_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 283: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */ + if ( iso1SalesTariffEntryType->RelativeTimeInterval_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1RelativeTimeIntervalType(stream, &iso1SalesTariffEntryType->RelativeTimeInterval ); + } + grammarID = 284; + } else if ( iso1SalesTariffEntryType->TimeInterval_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1IntervalType(stream, &iso1SalesTariffEntryType->TimeInterval ); + } + grammarID = 284; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 284: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ + if ( iso1SalesTariffEntryType->EPriceLevel_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1SalesTariffEntryType->EPriceLevel - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 285; + } else if (iso1SalesTariffEntryType_ConsumptionCost_currArrayIndex < iso1SalesTariffEntryType->ConsumptionCost.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1ConsumptionCostType(stream, &iso1SalesTariffEntryType->ConsumptionCost.array [iso1SalesTariffEntryType_ConsumptionCost_currArrayIndex++]); + } + grammarID = 286; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 285: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ + if (iso1SalesTariffEntryType_ConsumptionCost_currArrayIndex < iso1SalesTariffEntryType->ConsumptionCost.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ConsumptionCostType(stream, &iso1SalesTariffEntryType->ConsumptionCost.array [iso1SalesTariffEntryType_ConsumptionCost_currArrayIndex++]); + } + grammarID = 286; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 286: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ + if (iso1SalesTariffEntryType_ConsumptionCost_currArrayIndex < iso1SalesTariffEntryType->ConsumptionCost.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ConsumptionCostType(stream, &iso1SalesTariffEntryType->ConsumptionCost.array [iso1SalesTariffEntryType_ConsumptionCost_currArrayIndex++]); + } + grammarID = 287; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 287: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ + if (iso1SalesTariffEntryType_ConsumptionCost_currArrayIndex < iso1SalesTariffEntryType->ConsumptionCost.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1ConsumptionCostType(stream, &iso1SalesTariffEntryType->ConsumptionCost.array [iso1SalesTariffEntryType_ConsumptionCost_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EntryType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval)', derivedBy='RESTRICTION'. */ +static int encode_iso1EntryType(bitstream_t* stream, struct iso1EntryType* iso1EntryType) { + int grammarID = 288; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 288: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */ + if ( iso1EntryType->RelativeTimeInterval_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1RelativeTimeIntervalType(stream, &iso1EntryType->RelativeTimeInterval ); + } + grammarID = 3; + } else if ( iso1EntryType->TimeInterval_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1IntervalType(stream, &iso1EntryType->TimeInterval ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":EVCCID)', derivedBy='EXTENSION'. */ +static int encode_iso1SessionSetupReqType(bitstream_t* stream, struct iso1SessionSetupReqType* iso1SessionSetupReqType) { + int grammarID = 289; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 289: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SessionSetupReqType->EVCCID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1SessionSetupReqType->EVCCID.bytes, iso1SessionSetupReqType->EVCCID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":costKind,"urn:iso:15118:2:2013:MsgDataTypes":amount,"urn:iso:15118:2:2013:MsgDataTypes":amountMultiplier{0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso1CostType(bitstream_t* stream, struct iso1CostType* iso1CostType) { + int grammarID = 290; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 290: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso1CostType->costKind); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 291; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 291: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, iso1CostType->amount); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 292; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 292: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), END_ELEMENT] */ + if ( iso1CostType->amountMultiplier_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, (uint32_t)(iso1CostType->amountMultiplier + 3)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVPowerDeliveryParameterType', base type name='EVPowerDeliveryParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2013:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ChargingComplete)', derivedBy='EXTENSION'. */ +static int encode_iso1DC_EVPowerDeliveryParameterType(bitstream_t* stream, struct iso1DC_EVPowerDeliveryParameterType* iso1DC_EVPowerDeliveryParameterType) { + int grammarID = 293; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 293: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1DC_EVStatusType(stream, &iso1DC_EVPowerDeliveryParameterType->DC_EVStatus ); + } + grammarID = 294; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 294: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */ + if ( iso1DC_EVPowerDeliveryParameterType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1DC_EVPowerDeliveryParameterType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 295; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1DC_EVPowerDeliveryParameterType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 295: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1DC_EVPowerDeliveryParameterType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso1RetrievalMethodType(bitstream_t* stream, struct iso1RetrievalMethodType* iso1RetrievalMethodType) { + int grammarID = 296; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 296: + /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + if ( iso1RetrievalMethodType->Type_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1RetrievalMethodType->Type.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1RetrievalMethodType->Type.characters, iso1RetrievalMethodType->Type.charactersLen); + } + } + grammarID = 297; + } else if ( iso1RetrievalMethodType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1RetrievalMethodType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1RetrievalMethodType->URI.characters, iso1RetrievalMethodType->URI.charactersLen); + } + } + grammarID = 298; + } else if ( iso1RetrievalMethodType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso1TransformsType(stream, &iso1RetrievalMethodType->Transforms ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 297: + /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + if ( iso1RetrievalMethodType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1RetrievalMethodType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1RetrievalMethodType->URI.characters, iso1RetrievalMethodType->URI.charactersLen); + } + } + grammarID = 298; + } else if ( iso1RetrievalMethodType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1TransformsType(stream, &iso1RetrievalMethodType->Transforms ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 298: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + if ( iso1RetrievalMethodType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1TransformsType(stream, &iso1RetrievalMethodType->Transforms ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateUpdateResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2013:MsgBody":DHpublickey,"urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":RetryCounter{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso1CertificateUpdateResType(bitstream_t* stream, struct iso1CertificateUpdateResType* iso1CertificateUpdateResType) { + int grammarID = 299; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 299: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso1CertificateUpdateResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 300; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 300: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1CertificateChainType(stream, &iso1CertificateUpdateResType->SAProvisioningCertificateChain ); + } + grammarID = 301; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 301: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1CertificateChainType(stream, &iso1CertificateUpdateResType->ContractSignatureCertChain ); + } + grammarID = 302; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 302: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1ContractSignatureEncryptedPrivateKeyType(stream, &iso1CertificateUpdateResType->ContractSignatureEncryptedPrivateKey ); + } + grammarID = 303; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 303: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1DiffieHellmanPublickeyType(stream, &iso1CertificateUpdateResType->DHpublickey ); + } + grammarID = 304; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 304: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1EMAIDType(stream, &iso1CertificateUpdateResType->eMAID ); + } + grammarID = 305; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 305: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), END_ELEMENT] */ + if ( iso1CertificateUpdateResType->RetryCounter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, iso1CertificateUpdateResType->RetryCounter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateInstallationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2013:MsgBody":DHpublickey,"urn:iso:15118:2:2013:MsgBody":eMAID)', derivedBy='EXTENSION'. */ +static int encode_iso1CertificateInstallationResType(bitstream_t* stream, struct iso1CertificateInstallationResType* iso1CertificateInstallationResType) { + int grammarID = 306; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 306: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso1CertificateInstallationResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 307; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 307: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1CertificateChainType(stream, &iso1CertificateInstallationResType->SAProvisioningCertificateChain ); + } + grammarID = 308; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 308: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1CertificateChainType(stream, &iso1CertificateInstallationResType->ContractSignatureCertChain ); + } + grammarID = 309; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 309: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1ContractSignatureEncryptedPrivateKeyType(stream, &iso1CertificateInstallationResType->ContractSignatureEncryptedPrivateKey ); + } + grammarID = 310; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 310: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1DiffieHellmanPublickeyType(stream, &iso1CertificateInstallationResType->DHpublickey ); + } + grammarID = 311; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 311: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1EMAIDType(stream, &iso1CertificateInstallationResType->eMAID ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso1CanonicalizationMethodType(bitstream_t* stream, struct iso1CanonicalizationMethodType* iso1CanonicalizationMethodType) { + int grammarID = 312; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 312: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CanonicalizationMethodType->Algorithm.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1CanonicalizationMethodType->Algorithm.characters, iso1CanonicalizationMethodType->Algorithm.charactersLen); + } + } + grammarID = 115; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 115: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 116; + } else if ( iso1CanonicalizationMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso1CanonicalizationMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CanonicalizationMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1CanonicalizationMethodType->ANY.characters, iso1CanonicalizationMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 116; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 116: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 116; + } else if ( iso1CanonicalizationMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso1CanonicalizationMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CanonicalizationMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1CanonicalizationMethodType->ANY.characters, iso1CanonicalizationMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 116; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,WeldingDetectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */ +static int encode_iso1WeldingDetectionReqType(bitstream_t* stream, struct iso1WeldingDetectionReqType* iso1WeldingDetectionReqType) { + int grammarID = 313; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 313: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1DC_EVStatusType(stream, &iso1WeldingDetectionReqType->DC_EVStatus ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */ +static int encode_iso1DC_EVStatusType(bitstream_t* stream, struct iso1DC_EVStatusType* iso1DC_EVStatusType) { + int grammarID = 314; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 314: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1DC_EVStatusType->EVReady); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 315; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 315: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 4, iso1DC_EVStatusType->EVErrorCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 316; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 316: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso1DC_EVStatusType->EVRESSSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CurrentDemandResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2013:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2013:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEMaximumVoltageLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEMaximumCurrentLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2013:MsgBody":ReceiptRequired{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso1CurrentDemandResType(bitstream_t* stream, struct iso1CurrentDemandResType* iso1CurrentDemandResType) { + int grammarID = 317; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 317: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso1CurrentDemandResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 318; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 318: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1DC_EVSEStatusType(stream, &iso1CurrentDemandResType->DC_EVSEStatus ); + } + grammarID = 319; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 319: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEPresentVoltage ); + } + grammarID = 320; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 320: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEPresentCurrent ); + } + grammarID = 321; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 321: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1CurrentDemandResType->EVSECurrentLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 322; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 322: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1CurrentDemandResType->EVSEVoltageLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 323; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 323: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1CurrentDemandResType->EVSEPowerLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 324; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 324: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */ + if ( iso1CurrentDemandResType->EVSEMaximumVoltageLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEMaximumVoltageLimit ); + } + grammarID = 325; + } else if ( iso1CurrentDemandResType->EVSEMaximumCurrentLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEMaximumCurrentLimit ); + } + grammarID = 326; + } else if ( iso1CurrentDemandResType->EVSEMaximumPowerLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEMaximumPowerLimit ); + } + grammarID = 327; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CurrentDemandResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1CurrentDemandResType->EVSEID.characters, iso1CurrentDemandResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 328; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 325: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */ + if ( iso1CurrentDemandResType->EVSEMaximumCurrentLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEMaximumCurrentLimit ); + } + grammarID = 326; + } else if ( iso1CurrentDemandResType->EVSEMaximumPowerLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEMaximumPowerLimit ); + } + grammarID = 327; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CurrentDemandResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1CurrentDemandResType->EVSEID.characters, iso1CurrentDemandResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 328; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 326: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */ + if ( iso1CurrentDemandResType->EVSEMaximumPowerLimit_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEMaximumPowerLimit ); + } + grammarID = 327; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CurrentDemandResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1CurrentDemandResType->EVSEID.characters, iso1CurrentDemandResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 328; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 327: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CurrentDemandResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1CurrentDemandResType->EVSEID.characters, iso1CurrentDemandResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 328; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 328: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1CurrentDemandResType->SAScheduleTupleID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 329; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 329: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */ + if ( iso1CurrentDemandResType->MeterInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1MeterInfoType(stream, &iso1CurrentDemandResType->MeterInfo ); + } + grammarID = 330; + } else if ( iso1CurrentDemandResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1CurrentDemandResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 330: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */ + if ( iso1CurrentDemandResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1CurrentDemandResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2013:MsgDataTypes":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FreeService)', derivedBy='RESTRICTION'. */ +static int encode_iso1ServiceType(bitstream_t* stream, struct iso1ServiceType* iso1ServiceType) { + int grammarID = 331; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 331: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso1ServiceType->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 332; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 332: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */ + if ( iso1ServiceType->ServiceName_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ServiceType->ServiceName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ServiceType->ServiceName.characters, iso1ServiceType->ServiceName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 333; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso1ServiceType->ServiceCategory); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 334; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 333: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso1ServiceType->ServiceCategory); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 334; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 334: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */ + if ( iso1ServiceType->ServiceScope_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ServiceType->ServiceScope.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ServiceType->ServiceScope.characters, iso1ServiceType->ServiceScope.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 335; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1ServiceType->FreeService); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 335: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1ServiceType->FreeService); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgBody":ServiceCategory{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso1ServiceDiscoveryReqType(bitstream_t* stream, struct iso1ServiceDiscoveryReqType* iso1ServiceDiscoveryReqType) { + int grammarID = 336; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 336: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */ + if ( iso1ServiceDiscoveryReqType->ServiceScope_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ServiceDiscoveryReqType->ServiceScope.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1ServiceDiscoveryReqType->ServiceScope.characters, iso1ServiceDiscoveryReqType->ServiceScope.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 337; + } else if ( iso1ServiceDiscoveryReqType->ServiceCategory_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso1ServiceDiscoveryReqType->ServiceCategory); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 337: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */ + if ( iso1ServiceDiscoveryReqType->ServiceCategory_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso1ServiceDiscoveryReqType->ServiceCategory); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":AC_EVSEStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVSENominalVoltage,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaxCurrent)', derivedBy='EXTENSION'. */ +static int encode_iso1AC_EVSEChargeParameterType(bitstream_t* stream, struct iso1AC_EVSEChargeParameterType* iso1AC_EVSEChargeParameterType) { + int grammarID = 338; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 338: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1AC_EVSEStatusType(stream, &iso1AC_EVSEChargeParameterType->AC_EVSEStatus ); + } + grammarID = 339; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 339: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1AC_EVSEChargeParameterType->EVSENominalVoltage ); + } + grammarID = 340; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 340: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &iso1AC_EVSEChargeParameterType->EVSEMaxCurrent ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,CableCheckReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */ +static int encode_iso1CableCheckReqType(bitstream_t* stream, struct iso1CableCheckReqType* iso1CableCheckReqType) { + int grammarID = 313; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 313: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1DC_EVStatusType(stream, &iso1CableCheckReqType->DC_EVStatus ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SelectedServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID{0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso1SelectedServiceType(bitstream_t* stream, struct iso1SelectedServiceType* iso1SelectedServiceType) { + int grammarID = 341; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 341: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso1SelectedServiceType->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 342; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 342: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), END_ELEMENT] */ + if ( iso1SelectedServiceType->ParameterSetID_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, iso1SelectedServiceType->ParameterSetID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":RCD))', derivedBy='EXTENSION'. */ +static int encode_iso1AC_EVSEStatusType(bitstream_t* stream, struct iso1AC_EVSEStatusType* iso1AC_EVSEStatusType) { + int grammarID = 343; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 343: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso1AC_EVSEStatusType->NotificationMaxDelay); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 344; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 344: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso1AC_EVSEStatusType->EVSENotification); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 345; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 345: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso1AC_EVSEStatusType->RCD); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SalesTariffType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SalesTariffID,"urn:iso:15118:2:2013:MsgDataTypes":SalesTariffDescription{0-1},"urn:iso:15118:2:2013:MsgDataTypes":NumEPriceLevels{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SalesTariffEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso1SalesTariffType(bitstream_t* stream, struct iso1SalesTariffType* iso1SalesTariffType) { + int grammarID = 346; + int done = 0; + + unsigned int iso1SalesTariffType_SalesTariffEntry_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 346: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */ + if ( iso1SalesTariffType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SalesTariffType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1SalesTariffType->Id.characters, iso1SalesTariffType->Id.charactersLen); + } + } + grammarID = 347; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1SalesTariffType->SalesTariffID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 348; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 347: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1SalesTariffType->SalesTariffID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 348; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 348: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */ + if ( iso1SalesTariffType->SalesTariffDescription_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SalesTariffType->SalesTariffDescription.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1SalesTariffType->SalesTariffDescription.characters, iso1SalesTariffType->SalesTariffDescription.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 349; + } else if ( iso1SalesTariffType->NumEPriceLevels_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1SalesTariffType->NumEPriceLevels - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 350; + } else if (iso1SalesTariffType_SalesTariffEntry_currArrayIndex < iso1SalesTariffType->SalesTariffEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso1SalesTariffEntryType(stream, &iso1SalesTariffType->SalesTariffEntry.array [iso1SalesTariffType_SalesTariffEntry_currArrayIndex++]); + } + grammarID = 351; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 349: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */ + if ( iso1SalesTariffType->NumEPriceLevels_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1SalesTariffType->NumEPriceLevels - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 350; + } else if (iso1SalesTariffType_SalesTariffEntry_currArrayIndex < iso1SalesTariffType->SalesTariffEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1SalesTariffEntryType(stream, &iso1SalesTariffType->SalesTariffEntry.array [iso1SalesTariffType_SalesTariffEntry_currArrayIndex++]); + } + grammarID = 351; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 350: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */ + if (iso1SalesTariffType_SalesTariffEntry_currArrayIndex < iso1SalesTariffType->SalesTariffEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1SalesTariffEntryType(stream, &iso1SalesTariffType->SalesTariffEntry.array [iso1SalesTariffType_SalesTariffEntry_currArrayIndex++]); + } + grammarID = 351; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 351: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */ + if (iso1SalesTariffType_SalesTariffEntry_currArrayIndex < iso1SalesTariffType->SalesTariffEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SalesTariffEntryType(stream, &iso1SalesTariffType->SalesTariffEntry.array [iso1SalesTariffType_SalesTariffEntry_currArrayIndex++]); + } + grammarID = 351; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentServiceSelectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":SelectedPaymentOption,"urn:iso:15118:2:2013:MsgBody":SelectedServiceList)', derivedBy='EXTENSION'. */ +static int encode_iso1PaymentServiceSelectionReqType(bitstream_t* stream, struct iso1PaymentServiceSelectionReqType* iso1PaymentServiceSelectionReqType) { + int grammarID = 352; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 352: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso1PaymentServiceSelectionReqType->SelectedPaymentOption); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 353; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 353: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1SelectedServiceListType(stream, &iso1PaymentServiceSelectionReqType->SelectedServiceList ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertiesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignatureProperty{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso1SignaturePropertiesType(bitstream_t* stream, struct iso1SignaturePropertiesType* iso1SignaturePropertiesType) { + int grammarID = 354; + int done = 0; + + unsigned int iso1SignaturePropertiesType_SignatureProperty_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 354: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ + if ( iso1SignaturePropertiesType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignaturePropertiesType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1SignaturePropertiesType->Id.characters, iso1SignaturePropertiesType->Id.charactersLen); + } + } + grammarID = 355; + } else if (iso1SignaturePropertiesType_SignatureProperty_currArrayIndex < iso1SignaturePropertiesType->SignatureProperty.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso1SignaturePropertyType(stream, &iso1SignaturePropertiesType->SignatureProperty.array [iso1SignaturePropertiesType_SignatureProperty_currArrayIndex++]); + } + grammarID = 356; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 355: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ + if (iso1SignaturePropertiesType_SignatureProperty_currArrayIndex < iso1SignaturePropertiesType->SignatureProperty.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso1SignaturePropertyType(stream, &iso1SignaturePropertiesType->SignatureProperty.array [iso1SignaturePropertiesType_SignatureProperty_currArrayIndex++]); + } + grammarID = 356; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 356: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */ + if (iso1SignaturePropertiesType_SignatureProperty_currArrayIndex < iso1SignaturePropertiesType->SignatureProperty.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso1SignaturePropertyType(stream, &iso1SignaturePropertiesType->SignatureProperty.array [iso1SignaturePropertiesType_SignatureProperty_currArrayIndex++]); + } + grammarID = 356; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,BodyBaseType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_iso1BodyBaseType(bitstream_t* stream, struct iso1BodyBaseType* iso1BodyBaseType) { + int grammarID = 34; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 34: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SupportedEnergyTransferModeType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EnergyTransferMode{1-6})', derivedBy='RESTRICTION'. */ +static int encode_iso1SupportedEnergyTransferModeType(bitstream_t* stream, struct iso1SupportedEnergyTransferModeType* iso1SupportedEnergyTransferModeType) { + int grammarID = 357; + int done = 0; + + unsigned int iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 357: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode)] */ + if (iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex < iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, iso1SupportedEnergyTransferModeType->EnergyTransferMode.array[iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 358; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 358: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */ + if (iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex < iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, iso1SupportedEnergyTransferModeType->EnergyTransferMode.array[iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 359; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 359: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */ + if (iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex < iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, iso1SupportedEnergyTransferModeType->EnergyTransferMode.array[iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 360; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 360: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */ + if (iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex < iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, iso1SupportedEnergyTransferModeType->EnergyTransferMode.array[iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 361; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 361: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */ + if (iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex < iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, iso1SupportedEnergyTransferModeType->EnergyTransferMode.array[iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 362; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 362: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */ + if (iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex < iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, iso1SupportedEnergyTransferModeType->EnergyTransferMode.array[iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargingStatusReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int encode_iso1ChargingStatusReqType(bitstream_t* stream, struct iso1ChargingStatusReqType* iso1ChargingStatusReqType) { + int grammarID = 34; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 34: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentServiceSelectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */ +static int encode_iso1PaymentServiceSelectionResType(bitstream_t* stream, struct iso1PaymentServiceSelectionResType* iso1PaymentServiceSelectionResType) { + int grammarID = 122; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 122: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso1PaymentServiceSelectionResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso1DigestMethodType(bitstream_t* stream, struct iso1DigestMethodType* iso1DigestMethodType) { + int grammarID = 312; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 312: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DigestMethodType->Algorithm.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1DigestMethodType->Algorithm.characters, iso1DigestMethodType->Algorithm.charactersLen); + } + } + grammarID = 115; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 115: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 116; + } else if ( iso1DigestMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso1DigestMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DigestMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1DigestMethodType->ANY.characters, iso1DigestMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 116; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 116: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 116; + } else if ( iso1DigestMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso1DigestMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DigestMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1DigestMethodType->ANY.characters, iso1DigestMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 116; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_iso1SignaturePropertyType(bitstream_t* stream, struct iso1SignaturePropertyType* iso1SignaturePropertyType) { + int grammarID = 363; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 363: + /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */ + if ( iso1SignaturePropertyType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignaturePropertyType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1SignaturePropertyType->Id.characters, iso1SignaturePropertyType->Id.charactersLen); + } + } + grammarID = 364; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignaturePropertyType->Target.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1SignaturePropertyType->Target.characters, iso1SignaturePropertyType->Target.charactersLen); + } + } + grammarID = 365; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 364: + /* StartTag[ATTRIBUTE[STRING](Target)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignaturePropertyType->Target.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1SignaturePropertyType->Target.characters, iso1SignaturePropertyType->Target.charactersLen); + } + } + grammarID = 365; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 365: + /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 116; + } else if ( iso1SignaturePropertyType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignaturePropertyType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1SignaturePropertyType->ANY.characters, iso1SignaturePropertyType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 366; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 116: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 116; + } else if ( iso1SignaturePropertyType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso1SignaturePropertyType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignaturePropertyType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1SignaturePropertyType->ANY.characters, iso1SignaturePropertyType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 116; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 366: + /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 116; + } else if ( iso1SignaturePropertyType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignaturePropertyType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso1SignaturePropertyType->ANY.characters, iso1SignaturePropertyType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 366; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */ +static int encode_iso1PGPDataType(bitstream_t* stream, struct iso1PGPDataType* iso1PGPDataType) { + int grammarID = 367; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 367: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */ + if ( iso1PGPDataType->PGPKeyID_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1PGPDataType->PGPKeyID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1PGPDataType->PGPKeyID.bytes, iso1PGPDataType->PGPKeyID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 368; + } else if ( iso1PGPDataType->PGPKeyPacket_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1PGPDataType->PGPKeyPacket.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1PGPDataType->PGPKeyPacket.bytes, iso1PGPDataType->PGPKeyPacket.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 369; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 368: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */ + if ( iso1PGPDataType->PGPKeyPacket_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1PGPDataType->PGPKeyPacket.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso1PGPDataType->PGPKeyPacket.bytes, iso1PGPDataType->PGPKeyPacket.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 369; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 369; + } else if ( iso1PGPDataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 369: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 369; + } else if ( iso1PGPDataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +int encode_iso1EXISchemaInformedElementFragmentGrammar(bitstream_t* stream, struct iso1EXISchemaInformedElementFragmentGrammar* exiElementFrag) { + int grammarID = 370; + int done = 0; + + while(!done) { + switch(grammarID) { + case 370: + /* First(xsi:type)(xsi:nil)StartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( exiElementFrag->Id_isUsed == 1u ) { + exiElementFrag->Id_isUsed = 0u; /* hack to indicate for next loop that this has been handled already */ + errn = encodeNBitUnsignedInteger(stream, 9, 4); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiElementFrag->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiElementFrag->Id.characters, exiElementFrag->Id.charactersLen); + } + } + grammarID = 370; + } else if (1==0) { + errn = encodeNBitUnsignedInteger(stream, 9, 255); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( exiElementFrag->CHARACTERS_GENERIC_isUsed == 1u ) { + exiElementFrag->CHARACTERS_GENERIC_isUsed = 0u; /* hack to indicate for next loop that this has been handled already */ + errn = encodeNBitUnsignedInteger(stream, 9, 256); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiElementFrag->CHARACTERS_GENERIC.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiElementFrag->CHARACTERS_GENERIC.characters, exiElementFrag->CHARACTERS_GENERIC.charactersLen); + } + } + grammarID = 371; + } else { + errn = encodeNBitUnsignedInteger(stream, 9, 255); /* EE */ + done = 1; + } + break; + case 371: + /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = encodeNBitUnsignedInteger(stream, 8, 244); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( exiElementFrag->CHARACTERS_GENERIC_isUsed == 1u ) { + exiElementFrag->CHARACTERS_GENERIC_isUsed = 0u; /* hack to indicate for next loop that this has been handled already */ + errn = encodeNBitUnsignedInteger(stream, 8, 245); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiElementFrag->CHARACTERS_GENERIC.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiElementFrag->CHARACTERS_GENERIC.characters, exiElementFrag->CHARACTERS_GENERIC.charactersLen); + } + } + grammarID = 371; + } else { + errn = encodeNBitUnsignedInteger(stream, 8, 244); /* EE */ + done = 1; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + + + +int encode_iso1ExiDocument(bitstream_t* stream, struct iso1EXIDocument* exiDoc) { + errn = writeEXIHeader(stream); + + if(errn == 0) { + /* DocContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] */ + if ( exiDoc->AC_EVChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 0); + if(errn == 0) { + errn = encode_iso1AC_EVChargeParameterType(stream, &exiDoc->AC_EVChargeParameter ); + } + } else if ( exiDoc->AC_EVSEChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 1); + if(errn == 0) { + errn = encode_iso1AC_EVSEChargeParameterType(stream, &exiDoc->AC_EVSEChargeParameter ); + } + } else if ( exiDoc->AC_EVSEStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus) */ + errn = encodeNBitUnsignedInteger(stream, 7, 2); + if(errn == 0) { + errn = encode_iso1AC_EVSEStatusType(stream, &exiDoc->AC_EVSEStatus ); + } + } else if ( exiDoc->AuthorizationReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 3); + if(errn == 0) { + errn = encode_iso1AuthorizationReqType(stream, &exiDoc->AuthorizationReq ); + } + } else if ( exiDoc->AuthorizationRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 4); + if(errn == 0) { + errn = encode_iso1AuthorizationResType(stream, &exiDoc->AuthorizationRes ); + } + } else if ( exiDoc->BodyElement_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement) */ + errn = encodeNBitUnsignedInteger(stream, 7, 5); + if(errn == 0) { + errn = encode_iso1BodyBaseType(stream, &exiDoc->BodyElement ); + } + } else if ( exiDoc->CableCheckReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 6); + if(errn == 0) { + errn = encode_iso1CableCheckReqType(stream, &exiDoc->CableCheckReq ); + } + } else if ( exiDoc->CableCheckRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 7); + if(errn == 0) { + errn = encode_iso1CableCheckResType(stream, &exiDoc->CableCheckRes ); + } + } else if ( exiDoc->CanonicalizationMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */ + errn = encodeNBitUnsignedInteger(stream, 7, 8); + if(errn == 0) { + errn = encode_iso1CanonicalizationMethodType(stream, &exiDoc->CanonicalizationMethod ); + } + } else if ( exiDoc->CertificateInstallationReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 9); + if(errn == 0) { + errn = encode_iso1CertificateInstallationReqType(stream, &exiDoc->CertificateInstallationReq ); + } + } else if ( exiDoc->CertificateInstallationRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 10); + if(errn == 0) { + errn = encode_iso1CertificateInstallationResType(stream, &exiDoc->CertificateInstallationRes ); + } + } else if ( exiDoc->CertificateUpdateReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 11); + if(errn == 0) { + errn = encode_iso1CertificateUpdateReqType(stream, &exiDoc->CertificateUpdateReq ); + } + } else if ( exiDoc->CertificateUpdateRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 12); + if(errn == 0) { + errn = encode_iso1CertificateUpdateResType(stream, &exiDoc->CertificateUpdateRes ); + } + } else if ( exiDoc->ChargeParameterDiscoveryReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 13); + if(errn == 0) { + errn = encode_iso1ChargeParameterDiscoveryReqType(stream, &exiDoc->ChargeParameterDiscoveryReq ); + } + } else if ( exiDoc->ChargeParameterDiscoveryRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 14); + if(errn == 0) { + errn = encode_iso1ChargeParameterDiscoveryResType(stream, &exiDoc->ChargeParameterDiscoveryRes ); + } + } else if ( exiDoc->ChargingStatusReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 15); + if(errn == 0) { + errn = encode_iso1ChargingStatusReqType(stream, &exiDoc->ChargingStatusReq ); + } + } else if ( exiDoc->ChargingStatusRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 16); + if(errn == 0) { + errn = encode_iso1ChargingStatusResType(stream, &exiDoc->ChargingStatusRes ); + } + } else if ( exiDoc->CurrentDemandReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 17); + if(errn == 0) { + errn = encode_iso1CurrentDemandReqType(stream, &exiDoc->CurrentDemandReq ); + } + } else if ( exiDoc->CurrentDemandRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 18); + if(errn == 0) { + errn = encode_iso1CurrentDemandResType(stream, &exiDoc->CurrentDemandRes ); + } + } else if ( exiDoc->DC_EVChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 19); + if(errn == 0) { + errn = encode_iso1DC_EVChargeParameterType(stream, &exiDoc->DC_EVChargeParameter ); + } + } else if ( exiDoc->DC_EVPowerDeliveryParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 20); + if(errn == 0) { + errn = encode_iso1DC_EVPowerDeliveryParameterType(stream, &exiDoc->DC_EVPowerDeliveryParameter ); + } + } else if ( exiDoc->DC_EVSEChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 21); + if(errn == 0) { + errn = encode_iso1DC_EVSEChargeParameterType(stream, &exiDoc->DC_EVSEChargeParameter ); + } + } else if ( exiDoc->DC_EVSEStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus) */ + errn = encodeNBitUnsignedInteger(stream, 7, 22); + if(errn == 0) { + errn = encode_iso1DC_EVSEStatusType(stream, &exiDoc->DC_EVSEStatus ); + } + } else if ( exiDoc->DC_EVStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus) */ + errn = encodeNBitUnsignedInteger(stream, 7, 23); + if(errn == 0) { + errn = encode_iso1DC_EVStatusType(stream, &exiDoc->DC_EVStatus ); + } + } else if ( exiDoc->DSAKeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 7, 24); + if(errn == 0) { + errn = encode_iso1DSAKeyValueType(stream, &exiDoc->DSAKeyValue ); + } + } else if ( exiDoc->DigestMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */ + errn = encodeNBitUnsignedInteger(stream, 7, 25); + if(errn == 0) { + errn = encode_iso1DigestMethodType(stream, &exiDoc->DigestMethod ); + } + } else if ( exiDoc->DigestValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */ + errn = encodeNBitUnsignedInteger(stream, 7, 26); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiDoc->DigestValue.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiDoc->DigestValue.bytes, exiDoc->DigestValue.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiDoc->EVChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 27); + if(errn == 0) { + errn = encode_iso1EVChargeParameterType(stream, &exiDoc->EVChargeParameter ); + } + } else if ( exiDoc->EVPowerDeliveryParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 28); + if(errn == 0) { + errn = encode_iso1EVPowerDeliveryParameterType(stream, &exiDoc->EVPowerDeliveryParameter ); + } + } else if ( exiDoc->EVSEChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 29); + if(errn == 0) { + errn = encode_iso1EVSEChargeParameterType(stream, &exiDoc->EVSEChargeParameter ); + } + } else if ( exiDoc->EVSEStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus) */ + errn = encodeNBitUnsignedInteger(stream, 7, 30); + if(errn == 0) { + errn = encode_iso1EVSEStatusType(stream, &exiDoc->EVSEStatus ); + } + } else if ( exiDoc->EVStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus) */ + errn = encodeNBitUnsignedInteger(stream, 7, 31); + if(errn == 0) { + errn = encode_iso1EVStatusType(stream, &exiDoc->EVStatus ); + } + } else if ( exiDoc->Entry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry) */ + errn = encodeNBitUnsignedInteger(stream, 7, 32); + if(errn == 0) { + errn = encode_iso1EntryType(stream, &exiDoc->Entry ); + } + } else if ( exiDoc->KeyInfo_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */ + errn = encodeNBitUnsignedInteger(stream, 7, 33); + if(errn == 0) { + errn = encode_iso1KeyInfoType(stream, &exiDoc->KeyInfo ); + } + } else if ( exiDoc->KeyName_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */ + errn = encodeNBitUnsignedInteger(stream, 7, 34); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiDoc->KeyName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiDoc->KeyName.characters, exiDoc->KeyName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiDoc->KeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 7, 35); + if(errn == 0) { + errn = encode_iso1KeyValueType(stream, &exiDoc->KeyValue ); + } + } else if ( exiDoc->Manifest_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */ + errn = encodeNBitUnsignedInteger(stream, 7, 36); + if(errn == 0) { + errn = encode_iso1ManifestType(stream, &exiDoc->Manifest ); + } + } else if ( exiDoc->MeteringReceiptReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 37); + if(errn == 0) { + errn = encode_iso1MeteringReceiptReqType(stream, &exiDoc->MeteringReceiptReq ); + } + } else if ( exiDoc->MeteringReceiptRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 38); + if(errn == 0) { + errn = encode_iso1MeteringReceiptResType(stream, &exiDoc->MeteringReceiptRes ); + } + } else if ( exiDoc->MgmtData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */ + errn = encodeNBitUnsignedInteger(stream, 7, 39); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiDoc->MgmtData.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiDoc->MgmtData.characters, exiDoc->MgmtData.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiDoc->Object_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */ + errn = encodeNBitUnsignedInteger(stream, 7, 40); + if(errn == 0) { + errn = encode_iso1ObjectType(stream, &exiDoc->Object ); + } + } else if ( exiDoc->PGPData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */ + errn = encodeNBitUnsignedInteger(stream, 7, 41); + if(errn == 0) { + errn = encode_iso1PGPDataType(stream, &exiDoc->PGPData ); + } + } else if ( exiDoc->PMaxScheduleEntry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry) */ + errn = encodeNBitUnsignedInteger(stream, 7, 42); + if(errn == 0) { + errn = encode_iso1PMaxScheduleEntryType(stream, &exiDoc->PMaxScheduleEntry ); + } + } else if ( exiDoc->PaymentDetailsReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 43); + if(errn == 0) { + errn = encode_iso1PaymentDetailsReqType(stream, &exiDoc->PaymentDetailsReq ); + } + } else if ( exiDoc->PaymentDetailsRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 44); + if(errn == 0) { + errn = encode_iso1PaymentDetailsResType(stream, &exiDoc->PaymentDetailsRes ); + } + } else if ( exiDoc->PaymentServiceSelectionReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 45); + if(errn == 0) { + errn = encode_iso1PaymentServiceSelectionReqType(stream, &exiDoc->PaymentServiceSelectionReq ); + } + } else if ( exiDoc->PaymentServiceSelectionRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 46); + if(errn == 0) { + errn = encode_iso1PaymentServiceSelectionResType(stream, &exiDoc->PaymentServiceSelectionRes ); + } + } else if ( exiDoc->PowerDeliveryReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 47); + if(errn == 0) { + errn = encode_iso1PowerDeliveryReqType(stream, &exiDoc->PowerDeliveryReq ); + } + } else if ( exiDoc->PowerDeliveryRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 48); + if(errn == 0) { + errn = encode_iso1PowerDeliveryResType(stream, &exiDoc->PowerDeliveryRes ); + } + } else if ( exiDoc->PreChargeReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 49); + if(errn == 0) { + errn = encode_iso1PreChargeReqType(stream, &exiDoc->PreChargeReq ); + } + } else if ( exiDoc->PreChargeRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 50); + if(errn == 0) { + errn = encode_iso1PreChargeResType(stream, &exiDoc->PreChargeRes ); + } + } else if ( exiDoc->RSAKeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 7, 51); + if(errn == 0) { + errn = encode_iso1RSAKeyValueType(stream, &exiDoc->RSAKeyValue ); + } + } else if ( exiDoc->Reference_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */ + errn = encodeNBitUnsignedInteger(stream, 7, 52); + if(errn == 0) { + errn = encode_iso1ReferenceType(stream, &exiDoc->Reference ); + } + } else if ( exiDoc->RelativeTimeInterval_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval) */ + errn = encodeNBitUnsignedInteger(stream, 7, 53); + if(errn == 0) { + errn = encode_iso1RelativeTimeIntervalType(stream, &exiDoc->RelativeTimeInterval ); + } + } else if ( exiDoc->RetrievalMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */ + errn = encodeNBitUnsignedInteger(stream, 7, 54); + if(errn == 0) { + errn = encode_iso1RetrievalMethodType(stream, &exiDoc->RetrievalMethod ); + } + } else if ( exiDoc->SAScheduleList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList) */ + errn = encodeNBitUnsignedInteger(stream, 7, 55); + if(errn == 0) { + errn = encode_iso1SAScheduleListType(stream, &exiDoc->SAScheduleList ); + } + } else if ( exiDoc->SASchedules_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules) */ + errn = encodeNBitUnsignedInteger(stream, 7, 56); + if(errn == 0) { + errn = encode_iso1SASchedulesType(stream, &exiDoc->SASchedules ); + } + } else if ( exiDoc->SPKIData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */ + errn = encodeNBitUnsignedInteger(stream, 7, 57); + if(errn == 0) { + errn = encode_iso1SPKIDataType(stream, &exiDoc->SPKIData ); + } + } else if ( exiDoc->SalesTariffEntry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry) */ + errn = encodeNBitUnsignedInteger(stream, 7, 58); + if(errn == 0) { + errn = encode_iso1SalesTariffEntryType(stream, &exiDoc->SalesTariffEntry ); + } + } else if ( exiDoc->ServiceDetailReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 59); + if(errn == 0) { + errn = encode_iso1ServiceDetailReqType(stream, &exiDoc->ServiceDetailReq ); + } + } else if ( exiDoc->ServiceDetailRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 60); + if(errn == 0) { + errn = encode_iso1ServiceDetailResType(stream, &exiDoc->ServiceDetailRes ); + } + } else if ( exiDoc->ServiceDiscoveryReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 61); + if(errn == 0) { + errn = encode_iso1ServiceDiscoveryReqType(stream, &exiDoc->ServiceDiscoveryReq ); + } + } else if ( exiDoc->ServiceDiscoveryRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 62); + if(errn == 0) { + errn = encode_iso1ServiceDiscoveryResType(stream, &exiDoc->ServiceDiscoveryRes ); + } + } else if ( exiDoc->SessionSetupReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 63); + if(errn == 0) { + errn = encode_iso1SessionSetupReqType(stream, &exiDoc->SessionSetupReq ); + } + } else if ( exiDoc->SessionSetupRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 64); + if(errn == 0) { + errn = encode_iso1SessionSetupResType(stream, &exiDoc->SessionSetupRes ); + } + } else if ( exiDoc->SessionStopReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 65); + if(errn == 0) { + errn = encode_iso1SessionStopReqType(stream, &exiDoc->SessionStopReq ); + } + } else if ( exiDoc->SessionStopRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 66); + if(errn == 0) { + errn = encode_iso1SessionStopResType(stream, &exiDoc->SessionStopRes ); + } + } else if ( exiDoc->Signature_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */ + errn = encodeNBitUnsignedInteger(stream, 7, 67); + if(errn == 0) { + errn = encode_iso1SignatureType(stream, &exiDoc->Signature ); + } + } else if ( exiDoc->SignatureMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */ + errn = encodeNBitUnsignedInteger(stream, 7, 68); + if(errn == 0) { + errn = encode_iso1SignatureMethodType(stream, &exiDoc->SignatureMethod ); + } + } else if ( exiDoc->SignatureProperties_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */ + errn = encodeNBitUnsignedInteger(stream, 7, 69); + if(errn == 0) { + errn = encode_iso1SignaturePropertiesType(stream, &exiDoc->SignatureProperties ); + } + } else if ( exiDoc->SignatureProperty_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */ + errn = encodeNBitUnsignedInteger(stream, 7, 70); + if(errn == 0) { + errn = encode_iso1SignaturePropertyType(stream, &exiDoc->SignatureProperty ); + } + } else if ( exiDoc->SignatureValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */ + errn = encodeNBitUnsignedInteger(stream, 7, 71); + if(errn == 0) { + errn = encode_iso1SignatureValueType(stream, &exiDoc->SignatureValue ); + } + } else if ( exiDoc->SignedInfo_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */ + errn = encodeNBitUnsignedInteger(stream, 7, 72); + if(errn == 0) { + errn = encode_iso1SignedInfoType(stream, &exiDoc->SignedInfo ); + } + } else if ( exiDoc->TimeInterval_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval) */ + errn = encodeNBitUnsignedInteger(stream, 7, 73); + if(errn == 0) { + errn = encode_iso1IntervalType(stream, &exiDoc->TimeInterval ); + } + } else if ( exiDoc->Transform_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */ + errn = encodeNBitUnsignedInteger(stream, 7, 74); + if(errn == 0) { + errn = encode_iso1TransformType(stream, &exiDoc->Transform ); + } + } else if ( exiDoc->Transforms_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */ + errn = encodeNBitUnsignedInteger(stream, 7, 75); + if(errn == 0) { + errn = encode_iso1TransformsType(stream, &exiDoc->Transforms ); + } + } else if ( exiDoc->V2G_Message_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message) */ + errn = encodeNBitUnsignedInteger(stream, 7, 76); + if(errn == 0) { + errn = encode_iso1AnonType_V2G_Message(stream, &exiDoc->V2G_Message ); + } + } else if ( exiDoc->WeldingDetectionReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 77); + if(errn == 0) { + errn = encode_iso1WeldingDetectionReqType(stream, &exiDoc->WeldingDetectionReq ); + } + } else if ( exiDoc->WeldingDetectionRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 78); + if(errn == 0) { + errn = encode_iso1WeldingDetectionResType(stream, &exiDoc->WeldingDetectionRes ); + } + } else if ( exiDoc->X509Data_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */ + errn = encodeNBitUnsignedInteger(stream, 7, 79); + if(errn == 0) { + errn = encode_iso1X509DataType(stream, &exiDoc->X509Data ); + } + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + + } + + if(errn == 0) { + /* flush any pending bits */ + errn = encodeFinish(stream); + } + + return errn; +} + +#if DEPLOY_ISO1_CODEC_FRAGMENT == SUPPORT_YES +int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag) { + errn = writeEXIHeader(stream); + + if(errn == 0) { + /* FragmentContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_DOCUMENT] */ + if ( exiFrag->AC_EVChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 0); + if(errn == 0) { + errn = encode_iso1AC_EVChargeParameterType(stream, &exiFrag->AC_EVChargeParameter ); + } + } else if ( exiFrag->AC_EVSEChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 1); + if(errn == 0) { + errn = encode_iso1AC_EVSEChargeParameterType(stream, &exiFrag->AC_EVSEChargeParameter ); + } + } else if ( exiFrag->AC_EVSEStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 2); + if(errn == 0) { + errn = encode_iso1AC_EVSEStatusType(stream, &exiFrag->AC_EVSEStatus ); + } + } else if ( exiFrag->AC_EVSEStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 3); + if(errn == 0) { + errn = encode_iso1AC_EVSEStatusType(stream, &exiFrag->AC_EVSEStatus ); + } + } else if ( exiFrag->AuthorizationReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 4); + if(errn == 0) { + errn = encode_iso1AuthorizationReqType(stream, &exiFrag->AuthorizationReq ); + } + } else if ( exiFrag->AuthorizationRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 5); + if(errn == 0) { + errn = encode_iso1AuthorizationResType(stream, &exiFrag->AuthorizationRes ); + } + } else if ( exiFrag->Body_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body) */ + errn = encodeNBitUnsignedInteger(stream, 8, 6); + if(errn == 0) { + errn = encode_iso1BodyType(stream, &exiFrag->Body ); + } + } else if ( exiFrag->BodyElement_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement) */ + errn = encodeNBitUnsignedInteger(stream, 8, 7); + if(errn == 0) { + errn = encode_iso1BodyBaseType(stream, &exiFrag->BodyElement ); + } + } else if ( exiFrag->BulkChargingComplete_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete) */ + errn = encodeNBitUnsignedInteger(stream, 8, 8); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->BulkChargingComplete_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete) */ + errn = encodeNBitUnsignedInteger(stream, 8, 9); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->BulkSOC_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC) */ + errn = encodeNBitUnsignedInteger(stream, 8, 10); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(exiFrag->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->CableCheckReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 11); + if(errn == 0) { + errn = encode_iso1CableCheckReqType(stream, &exiFrag->CableCheckReq ); + } + } else if ( exiFrag->CableCheckRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 12); + if(errn == 0) { + errn = encode_iso1CableCheckResType(stream, &exiFrag->CableCheckRes ); + } + } else if ( exiFrag->CanonicalizationMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */ + errn = encodeNBitUnsignedInteger(stream, 8, 13); + if(errn == 0) { + errn = encode_iso1CanonicalizationMethodType(stream, &exiFrag->CanonicalizationMethod ); + } + } else if ( exiFrag->Certificate_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate) */ + errn = encodeNBitUnsignedInteger(stream, 8, 14); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Certificate.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Certificate.bytes, exiFrag->Certificate.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->CertificateInstallationReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 15); + if(errn == 0) { + errn = encode_iso1CertificateInstallationReqType(stream, &exiFrag->CertificateInstallationReq ); + } + } else if ( exiFrag->CertificateInstallationRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 16); + if(errn == 0) { + errn = encode_iso1CertificateInstallationResType(stream, &exiFrag->CertificateInstallationRes ); + } + } else if ( exiFrag->CertificateUpdateReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 17); + if(errn == 0) { + errn = encode_iso1CertificateUpdateReqType(stream, &exiFrag->CertificateUpdateReq ); + } + } else if ( exiFrag->CertificateUpdateRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 18); + if(errn == 0) { + errn = encode_iso1CertificateUpdateResType(stream, &exiFrag->CertificateUpdateRes ); + } + } else if ( exiFrag->ChargeParameterDiscoveryReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 19); + if(errn == 0) { + errn = encode_iso1ChargeParameterDiscoveryReqType(stream, &exiFrag->ChargeParameterDiscoveryReq ); + } + } else if ( exiFrag->ChargeParameterDiscoveryRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 20); + if(errn == 0) { + errn = encode_iso1ChargeParameterDiscoveryResType(stream, &exiFrag->ChargeParameterDiscoveryRes ); + } + } else if ( exiFrag->ChargeProgress_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress) */ + errn = encodeNBitUnsignedInteger(stream, 8, 21); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->ChargeProgress); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ChargeService_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService) */ + errn = encodeNBitUnsignedInteger(stream, 8, 22); + if(errn == 0) { + errn = encode_iso1ChargeServiceType(stream, &exiFrag->ChargeService ); + } + } else if ( exiFrag->ChargingComplete_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete) */ + errn = encodeNBitUnsignedInteger(stream, 8, 23); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ChargingComplete_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete) */ + errn = encodeNBitUnsignedInteger(stream, 8, 24); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ChargingProfile_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile) */ + errn = encodeNBitUnsignedInteger(stream, 8, 25); + if(errn == 0) { + errn = encode_iso1ChargingProfileType(stream, &exiFrag->ChargingProfile ); + } + } else if ( exiFrag->ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse) */ + errn = encodeNBitUnsignedInteger(stream, 8, 26); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, (uint32_t)(exiFrag->ChargingProfileEntryMaxNumberOfPhasesInUse - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ChargingProfileEntryMaxPower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower) */ + errn = encodeNBitUnsignedInteger(stream, 8, 27); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->ChargingProfileEntryMaxPower ); + } + } else if ( exiFrag->ChargingProfileEntryStart_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart) */ + errn = encodeNBitUnsignedInteger(stream, 8, 28); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, exiFrag->ChargingProfileEntryStart); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ChargingSession_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession) */ + errn = encodeNBitUnsignedInteger(stream, 8, 29); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, exiFrag->ChargingSession); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ChargingStatusReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 30); + if(errn == 0) { + errn = encode_iso1ChargingStatusReqType(stream, &exiFrag->ChargingStatusReq ); + } + } else if ( exiFrag->ChargingStatusRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 31); + if(errn == 0) { + errn = encode_iso1ChargingStatusResType(stream, &exiFrag->ChargingStatusRes ); + } + } else if ( exiFrag->ConsumptionCost_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost) */ + errn = encodeNBitUnsignedInteger(stream, 8, 32); + if(errn == 0) { + errn = encode_iso1ConsumptionCostType(stream, &exiFrag->ConsumptionCost ); + } + } else if ( exiFrag->ContractSignatureCertChain_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain) */ + errn = encodeNBitUnsignedInteger(stream, 8, 33); + if(errn == 0) { + errn = encode_iso1CertificateChainType(stream, &exiFrag->ContractSignatureCertChain ); + } + } else if ( exiFrag->ContractSignatureEncryptedPrivateKey_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey) */ + errn = encodeNBitUnsignedInteger(stream, 8, 34); + if(errn == 0) { + errn = encode_iso1ContractSignatureEncryptedPrivateKeyType(stream, &exiFrag->ContractSignatureEncryptedPrivateKey ); + } + } else if ( exiFrag->Cost_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost) */ + errn = encodeNBitUnsignedInteger(stream, 8, 35); + if(errn == 0) { + errn = encode_iso1CostType(stream, &exiFrag->Cost ); + } + } else if ( exiFrag->CurrentDemandReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 36); + if(errn == 0) { + errn = encode_iso1CurrentDemandReqType(stream, &exiFrag->CurrentDemandReq ); + } + } else if ( exiFrag->CurrentDemandRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 37); + if(errn == 0) { + errn = encode_iso1CurrentDemandResType(stream, &exiFrag->CurrentDemandRes ); + } + } else if ( exiFrag->DC_EVChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 38); + if(errn == 0) { + errn = encode_iso1DC_EVChargeParameterType(stream, &exiFrag->DC_EVChargeParameter ); + } + } else if ( exiFrag->DC_EVPowerDeliveryParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 39); + if(errn == 0) { + errn = encode_iso1DC_EVPowerDeliveryParameterType(stream, &exiFrag->DC_EVPowerDeliveryParameter ); + } + } else if ( exiFrag->DC_EVSEChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 40); + if(errn == 0) { + errn = encode_iso1DC_EVSEChargeParameterType(stream, &exiFrag->DC_EVSEChargeParameter ); + } + } else if ( exiFrag->DC_EVSEStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 41); + if(errn == 0) { + errn = encode_iso1DC_EVSEStatusType(stream, &exiFrag->DC_EVSEStatus ); + } + } else if ( exiFrag->DC_EVSEStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 42); + if(errn == 0) { + errn = encode_iso1DC_EVSEStatusType(stream, &exiFrag->DC_EVSEStatus ); + } + } else if ( exiFrag->DC_EVStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 43); + if(errn == 0) { + errn = encode_iso1DC_EVStatusType(stream, &exiFrag->DC_EVStatus ); + } + } else if ( exiFrag->DC_EVStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 44); + if(errn == 0) { + errn = encode_iso1DC_EVStatusType(stream, &exiFrag->DC_EVStatus ); + } + } else if ( exiFrag->DHpublickey_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey) */ + errn = encodeNBitUnsignedInteger(stream, 8, 45); + if(errn == 0) { + errn = encode_iso1DiffieHellmanPublickeyType(stream, &exiFrag->DHpublickey ); + } + } else if ( exiFrag->DSAKeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 46); + if(errn == 0) { + errn = encode_iso1DSAKeyValueType(stream, &exiFrag->DSAKeyValue ); + } + } else if ( exiFrag->DepartureTime_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime) */ + errn = encodeNBitUnsignedInteger(stream, 8, 47); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, exiFrag->DepartureTime); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->DigestMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */ + errn = encodeNBitUnsignedInteger(stream, 8, 48); + if(errn == 0) { + errn = encode_iso1DigestMethodType(stream, &exiFrag->DigestMethod ); + } + } else if ( exiFrag->DigestValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 49); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->DigestValue.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->DigestValue.bytes, exiFrag->DigestValue.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EAmount_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount) */ + errn = encodeNBitUnsignedInteger(stream, 8, 50); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EAmount ); + } + } else if ( exiFrag->EPriceLevel_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel) */ + errn = encodeNBitUnsignedInteger(stream, 8, 51); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->EPriceLevel - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVCCID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 52); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->EVCCID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->EVCCID.bytes, exiFrag->EVCCID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 53); + if(errn == 0) { + errn = encode_iso1EVChargeParameterType(stream, &exiFrag->EVChargeParameter ); + } + } else if ( exiFrag->EVEnergyCapacity_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity) */ + errn = encodeNBitUnsignedInteger(stream, 8, 54); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVEnergyCapacity ); + } + } else if ( exiFrag->EVEnergyRequest_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest) */ + errn = encodeNBitUnsignedInteger(stream, 8, 55); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVEnergyRequest ); + } + } else if ( exiFrag->EVErrorCode_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode) */ + errn = encodeNBitUnsignedInteger(stream, 8, 56); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 4, exiFrag->EVErrorCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVMaxCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 8, 57); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaxCurrent ); + } + } else if ( exiFrag->EVMaxVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 8, 58); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaxVoltage ); + } + } else if ( exiFrag->EVMaximumCurrentLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 59); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumCurrentLimit ); + } + } else if ( exiFrag->EVMaximumCurrentLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 60); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumCurrentLimit ); + } + } else if ( exiFrag->EVMaximumPowerLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 61); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumPowerLimit ); + } + } else if ( exiFrag->EVMaximumPowerLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 62); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumPowerLimit ); + } + } else if ( exiFrag->EVMaximumVoltageLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 63); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumVoltageLimit ); + } + } else if ( exiFrag->EVMaximumVoltageLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 64); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumVoltageLimit ); + } + } else if ( exiFrag->EVMinCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 8, 65); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMinCurrent ); + } + } else if ( exiFrag->EVPowerDeliveryParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 66); + if(errn == 0) { + errn = encode_iso1EVPowerDeliveryParameterType(stream, &exiFrag->EVPowerDeliveryParameter ); + } + } else if ( exiFrag->EVRESSSOC_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC) */ + errn = encodeNBitUnsignedInteger(stream, 8, 67); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(exiFrag->EVRESSSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVReady_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady) */ + errn = encodeNBitUnsignedInteger(stream, 8, 68); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->EVReady); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 69); + if(errn == 0) { + errn = encode_iso1EVSEChargeParameterType(stream, &exiFrag->EVSEChargeParameter ); + } + } else if ( exiFrag->EVSECurrentLimitAchieved_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved) */ + errn = encodeNBitUnsignedInteger(stream, 8, 70); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->EVSECurrentLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSECurrentRegulationTolerance_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance) */ + errn = encodeNBitUnsignedInteger(stream, 8, 71); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSECurrentRegulationTolerance ); + } + } else if ( exiFrag->EVSEEnergyToBeDelivered_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered) */ + errn = encodeNBitUnsignedInteger(stream, 8, 72); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEEnergyToBeDelivered ); + } + } else if ( exiFrag->EVSEID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 73); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->EVSEID.characters, exiFrag->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEIsolationStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 74); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, exiFrag->EVSEIsolationStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEMaxCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 8, 75); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaxCurrent ); + } + } else if ( exiFrag->EVSEMaxCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 8, 76); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaxCurrent ); + } + } else if ( exiFrag->EVSEMaximumCurrentLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 77); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumCurrentLimit ); + } + } else if ( exiFrag->EVSEMaximumCurrentLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 78); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumCurrentLimit ); + } + } else if ( exiFrag->EVSEMaximumPowerLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 79); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumPowerLimit ); + } + } else if ( exiFrag->EVSEMaximumPowerLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 80); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumPowerLimit ); + } + } else if ( exiFrag->EVSEMaximumVoltageLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 81); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumVoltageLimit ); + } + } else if ( exiFrag->EVSEMaximumVoltageLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 82); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumVoltageLimit ); + } + } else if ( exiFrag->EVSEMinimumCurrentLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 83); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMinimumCurrentLimit ); + } + } else if ( exiFrag->EVSEMinimumVoltageLimit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 84); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMinimumVoltageLimit ); + } + } else if ( exiFrag->EVSENominalVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 8, 85); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSENominalVoltage ); + } + } else if ( exiFrag->EVSENotification_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification) */ + errn = encodeNBitUnsignedInteger(stream, 8, 86); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->EVSENotification); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEPeakCurrentRipple_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple) */ + errn = encodeNBitUnsignedInteger(stream, 8, 87); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEPeakCurrentRipple ); + } + } else if ( exiFrag->EVSEPowerLimitAchieved_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved) */ + errn = encodeNBitUnsignedInteger(stream, 8, 88); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->EVSEPowerLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEPresentCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 8, 89); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEPresentCurrent ); + } + } else if ( exiFrag->EVSEPresentVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 8, 90); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEPresentVoltage ); + } + } else if ( exiFrag->EVSEProcessing_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing) */ + errn = encodeNBitUnsignedInteger(stream, 8, 91); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 92); + if(errn == 0) { + errn = encode_iso1EVSEStatusType(stream, &exiFrag->EVSEStatus ); + } + } else if ( exiFrag->EVSEStatusCode_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode) */ + errn = encodeNBitUnsignedInteger(stream, 8, 93); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 4, exiFrag->EVSEStatusCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSETimeStamp_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp) */ + errn = encodeNBitUnsignedInteger(stream, 8, 94); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, exiFrag->EVSETimeStamp); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEVoltageLimitAchieved_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved) */ + errn = encodeNBitUnsignedInteger(stream, 8, 95); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->EVSEVoltageLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 96); + if(errn == 0) { + errn = encode_iso1EVStatusType(stream, &exiFrag->EVStatus ); + } + } else if ( exiFrag->EVTargetCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 8, 97); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVTargetCurrent ); + } + } else if ( exiFrag->EVTargetVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 8, 98); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVTargetVoltage ); + } + } else if ( exiFrag->EnergyTransferMode_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode) */ + errn = encodeNBitUnsignedInteger(stream, 8, 99); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, exiFrag->EnergyTransferMode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Entry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry) */ + errn = encodeNBitUnsignedInteger(stream, 8, 100); + if(errn == 0) { + errn = encode_iso1EntryType(stream, &exiFrag->Entry ); + } + } else if ( exiFrag->Exponent_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent) */ + errn = encodeNBitUnsignedInteger(stream, 8, 101); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Exponent.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Exponent.bytes, exiFrag->Exponent.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->FaultCode_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode) */ + errn = encodeNBitUnsignedInteger(stream, 8, 102); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->FaultCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->FaultMsg_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg) */ + errn = encodeNBitUnsignedInteger(stream, 8, 103); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->FaultMsg.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->FaultMsg.characters, exiFrag->FaultMsg.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->FreeService_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService) */ + errn = encodeNBitUnsignedInteger(stream, 8, 104); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->FreeService); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->FullSOC_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC) */ + errn = encodeNBitUnsignedInteger(stream, 8, 105); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(exiFrag->FullSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->G_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) */ + errn = encodeNBitUnsignedInteger(stream, 8, 106); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->G.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->G.bytes, exiFrag->G.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->GenChallenge_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge) */ + errn = encodeNBitUnsignedInteger(stream, 8, 107); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->GenChallenge.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->GenChallenge.bytes, exiFrag->GenChallenge.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->HMACOutputLength_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) */ + errn = encodeNBitUnsignedInteger(stream, 8, 108); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, exiFrag->HMACOutputLength); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Header_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header) */ + errn = encodeNBitUnsignedInteger(stream, 8, 109); + if(errn == 0) { + errn = encode_iso1MessageHeaderType(stream, &exiFrag->Header ); + } + } else if ( exiFrag->J_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J) */ + errn = encodeNBitUnsignedInteger(stream, 8, 110); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->J.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->J.bytes, exiFrag->J.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->KeyInfo_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */ + errn = encodeNBitUnsignedInteger(stream, 8, 111); + if(errn == 0) { + errn = encode_iso1KeyInfoType(stream, &exiFrag->KeyInfo ); + } + } else if ( exiFrag->KeyName_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */ + errn = encodeNBitUnsignedInteger(stream, 8, 112); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->KeyName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->KeyName.characters, exiFrag->KeyName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->KeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 113); + if(errn == 0) { + errn = encode_iso1KeyValueType(stream, &exiFrag->KeyValue ); + } + } else if ( exiFrag->ListOfRootCertificateIDs_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs) */ + errn = encodeNBitUnsignedInteger(stream, 8, 114); + if(errn == 0) { + errn = encode_iso1ListOfRootCertificateIDsType(stream, &exiFrag->ListOfRootCertificateIDs ); + } + } else if ( exiFrag->Manifest_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */ + errn = encodeNBitUnsignedInteger(stream, 8, 115); + if(errn == 0) { + errn = encode_iso1ManifestType(stream, &exiFrag->Manifest ); + } + } else if ( exiFrag->MaxEntriesSAScheduleTuple_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple) */ + errn = encodeNBitUnsignedInteger(stream, 8, 116); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, exiFrag->MaxEntriesSAScheduleTuple); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->MeterID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 117); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->MeterID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->MeterID.characters, exiFrag->MeterID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->MeterInfo_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo) */ + errn = encodeNBitUnsignedInteger(stream, 8, 118); + if(errn == 0) { + errn = encode_iso1MeterInfoType(stream, &exiFrag->MeterInfo ); + } + } else if ( exiFrag->MeterReading_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading) */ + errn = encodeNBitUnsignedInteger(stream, 8, 119); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger64(stream, exiFrag->MeterReading); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->MeterStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 120); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->MeterStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->MeteringReceiptReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 121); + if(errn == 0) { + errn = encode_iso1MeteringReceiptReqType(stream, &exiFrag->MeteringReceiptReq ); + } + } else if ( exiFrag->MeteringReceiptRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 122); + if(errn == 0) { + errn = encode_iso1MeteringReceiptResType(stream, &exiFrag->MeteringReceiptRes ); + } + } else if ( exiFrag->MgmtData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */ + errn = encodeNBitUnsignedInteger(stream, 8, 123); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->MgmtData.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->MgmtData.characters, exiFrag->MgmtData.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Modulus_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus) */ + errn = encodeNBitUnsignedInteger(stream, 8, 124); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Modulus.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Modulus.bytes, exiFrag->Modulus.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Multiplier_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier) */ + errn = encodeNBitUnsignedInteger(stream, 8, 125); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, (uint32_t)(exiFrag->Multiplier + 3)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Notification_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification) */ + errn = encodeNBitUnsignedInteger(stream, 8, 126); + if(errn == 0) { + errn = encode_iso1NotificationType(stream, &exiFrag->Notification ); + } + } else if ( exiFrag->NotificationMaxDelay_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay) */ + errn = encodeNBitUnsignedInteger(stream, 8, 127); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, exiFrag->NotificationMaxDelay); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->NumEPriceLevels_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels) */ + errn = encodeNBitUnsignedInteger(stream, 8, 128); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->NumEPriceLevels - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->OEMProvisioningCert_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert) */ + errn = encodeNBitUnsignedInteger(stream, 8, 129); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->OEMProvisioningCert.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->OEMProvisioningCert.bytes, exiFrag->OEMProvisioningCert.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Object_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */ + errn = encodeNBitUnsignedInteger(stream, 8, 130); + if(errn == 0) { + errn = encode_iso1ObjectType(stream, &exiFrag->Object ); + } + } else if ( exiFrag->P_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P) */ + errn = encodeNBitUnsignedInteger(stream, 8, 131); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->P.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->P.bytes, exiFrag->P.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PGPData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */ + errn = encodeNBitUnsignedInteger(stream, 8, 132); + if(errn == 0) { + errn = encode_iso1PGPDataType(stream, &exiFrag->PGPData ); + } + } else if ( exiFrag->PGPKeyID_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 133); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->PGPKeyID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->PGPKeyID.bytes, exiFrag->PGPKeyID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PGPKeyPacket_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) */ + errn = encodeNBitUnsignedInteger(stream, 8, 134); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->PGPKeyPacket.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->PGPKeyPacket.bytes, exiFrag->PGPKeyPacket.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PMax_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax) */ + errn = encodeNBitUnsignedInteger(stream, 8, 135); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->PMax ); + } + } else if ( exiFrag->PMaxSchedule_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule) */ + errn = encodeNBitUnsignedInteger(stream, 8, 136); + if(errn == 0) { + errn = encode_iso1PMaxScheduleType(stream, &exiFrag->PMaxSchedule ); + } + } else if ( exiFrag->PMaxScheduleEntry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry) */ + errn = encodeNBitUnsignedInteger(stream, 8, 137); + if(errn == 0) { + errn = encode_iso1PMaxScheduleEntryType(stream, &exiFrag->PMaxScheduleEntry ); + } + } else if ( exiFrag->Parameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 138); + if(errn == 0) { + errn = encode_iso1ParameterType(stream, &exiFrag->Parameter ); + } + } else if ( exiFrag->ParameterSet_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet) */ + errn = encodeNBitUnsignedInteger(stream, 8, 139); + if(errn == 0) { + errn = encode_iso1ParameterSetType(stream, &exiFrag->ParameterSet ); + } + } else if ( exiFrag->ParameterSetID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 140); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->ParameterSetID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PaymentDetailsReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 141); + if(errn == 0) { + errn = encode_iso1PaymentDetailsReqType(stream, &exiFrag->PaymentDetailsReq ); + } + } else if ( exiFrag->PaymentDetailsRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 142); + if(errn == 0) { + errn = encode_iso1PaymentDetailsResType(stream, &exiFrag->PaymentDetailsRes ); + } + } else if ( exiFrag->PaymentOption_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption) */ + errn = encodeNBitUnsignedInteger(stream, 8, 143); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, exiFrag->PaymentOption); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PaymentOptionList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList) */ + errn = encodeNBitUnsignedInteger(stream, 8, 144); + if(errn == 0) { + errn = encode_iso1PaymentOptionListType(stream, &exiFrag->PaymentOptionList ); + } + } else if ( exiFrag->PaymentServiceSelectionReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 145); + if(errn == 0) { + errn = encode_iso1PaymentServiceSelectionReqType(stream, &exiFrag->PaymentServiceSelectionReq ); + } + } else if ( exiFrag->PaymentServiceSelectionRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 146); + if(errn == 0) { + errn = encode_iso1PaymentServiceSelectionResType(stream, &exiFrag->PaymentServiceSelectionRes ); + } + } else if ( exiFrag->PgenCounter_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 147); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->PgenCounter.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->PgenCounter.bytes, exiFrag->PgenCounter.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PowerDeliveryReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 148); + if(errn == 0) { + errn = encode_iso1PowerDeliveryReqType(stream, &exiFrag->PowerDeliveryReq ); + } + } else if ( exiFrag->PowerDeliveryRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 149); + if(errn == 0) { + errn = encode_iso1PowerDeliveryResType(stream, &exiFrag->PowerDeliveryRes ); + } + } else if ( exiFrag->PreChargeReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 150); + if(errn == 0) { + errn = encode_iso1PreChargeReqType(stream, &exiFrag->PreChargeReq ); + } + } else if ( exiFrag->PreChargeRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 151); + if(errn == 0) { + errn = encode_iso1PreChargeResType(stream, &exiFrag->PreChargeRes ); + } + } else if ( exiFrag->ProfileEntry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry) */ + errn = encodeNBitUnsignedInteger(stream, 8, 152); + if(errn == 0) { + errn = encode_iso1ProfileEntryType(stream, &exiFrag->ProfileEntry ); + } + } else if ( exiFrag->Q_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q) */ + errn = encodeNBitUnsignedInteger(stream, 8, 153); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Q.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Q.bytes, exiFrag->Q.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->RCD_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD) */ + errn = encodeNBitUnsignedInteger(stream, 8, 154); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->RCD); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->RSAKeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 155); + if(errn == 0) { + errn = encode_iso1RSAKeyValueType(stream, &exiFrag->RSAKeyValue ); + } + } else if ( exiFrag->ReceiptRequired_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired) */ + errn = encodeNBitUnsignedInteger(stream, 8, 156); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Reference_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */ + errn = encodeNBitUnsignedInteger(stream, 8, 157); + if(errn == 0) { + errn = encode_iso1ReferenceType(stream, &exiFrag->Reference ); + } + } else if ( exiFrag->RelativeTimeInterval_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval) */ + errn = encodeNBitUnsignedInteger(stream, 8, 158); + if(errn == 0) { + errn = encode_iso1RelativeTimeIntervalType(stream, &exiFrag->RelativeTimeInterval ); + } + } else if ( exiFrag->RemainingTimeToBulkSoC_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC) */ + errn = encodeNBitUnsignedInteger(stream, 8, 159); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->RemainingTimeToBulkSoC ); + } + } else if ( exiFrag->RemainingTimeToFullSoC_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC) */ + errn = encodeNBitUnsignedInteger(stream, 8, 160); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->RemainingTimeToFullSoC ); + } + } else if ( exiFrag->RequestedEnergyTransferMode_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode) */ + errn = encodeNBitUnsignedInteger(stream, 8, 161); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, exiFrag->RequestedEnergyTransferMode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ResponseCode_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) */ + errn = encodeNBitUnsignedInteger(stream, 8, 162); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, exiFrag->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->RetrievalMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */ + errn = encodeNBitUnsignedInteger(stream, 8, 163); + if(errn == 0) { + errn = encode_iso1RetrievalMethodType(stream, &exiFrag->RetrievalMethod ); + } + } else if ( exiFrag->RetryCounter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 164); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->RetryCounter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->RootCertificateID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 165); + if(errn == 0) { + errn = encode_iso1X509IssuerSerialType(stream, &exiFrag->RootCertificateID ); + } + } else if ( exiFrag->SAProvisioningCertificateChain_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain) */ + errn = encodeNBitUnsignedInteger(stream, 8, 166); + if(errn == 0) { + errn = encode_iso1CertificateChainType(stream, &exiFrag->SAProvisioningCertificateChain ); + } + } else if ( exiFrag->SAScheduleList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList) */ + errn = encodeNBitUnsignedInteger(stream, 8, 167); + if(errn == 0) { + errn = encode_iso1SAScheduleListType(stream, &exiFrag->SAScheduleList ); + } + } else if ( exiFrag->SAScheduleTuple_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple) */ + errn = encodeNBitUnsignedInteger(stream, 8, 168); + if(errn == 0) { + errn = encode_iso1SAScheduleTupleType(stream, &exiFrag->SAScheduleTuple ); + } + } else if ( exiFrag->SAScheduleTupleID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 169); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->SAScheduleTupleID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SAScheduleTupleID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 170); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->SAScheduleTupleID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SASchedules_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules) */ + errn = encodeNBitUnsignedInteger(stream, 8, 171); + if(errn == 0) { + errn = encode_iso1SASchedulesType(stream, &exiFrag->SASchedules ); + } + } else if ( exiFrag->SPKIData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */ + errn = encodeNBitUnsignedInteger(stream, 8, 172); + if(errn == 0) { + errn = encode_iso1SPKIDataType(stream, &exiFrag->SPKIData ); + } + } else if ( exiFrag->SPKISexp_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) */ + errn = encodeNBitUnsignedInteger(stream, 8, 173); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SPKISexp.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->SPKISexp.bytes, exiFrag->SPKISexp.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SalesTariff_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff) */ + errn = encodeNBitUnsignedInteger(stream, 8, 174); + if(errn == 0) { + errn = encode_iso1SalesTariffType(stream, &exiFrag->SalesTariff ); + } + } else if ( exiFrag->SalesTariffDescription_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription) */ + errn = encodeNBitUnsignedInteger(stream, 8, 175); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SalesTariffDescription.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->SalesTariffDescription.characters, exiFrag->SalesTariffDescription.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SalesTariffEntry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry) */ + errn = encodeNBitUnsignedInteger(stream, 8, 176); + if(errn == 0) { + errn = encode_iso1SalesTariffEntryType(stream, &exiFrag->SalesTariffEntry ); + } + } else if ( exiFrag->SalesTariffID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 177); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->SalesTariffID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Seed_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) */ + errn = encodeNBitUnsignedInteger(stream, 8, 178); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Seed.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Seed.bytes, exiFrag->Seed.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SelectedPaymentOption_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption) */ + errn = encodeNBitUnsignedInteger(stream, 8, 179); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, exiFrag->SelectedPaymentOption); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SelectedService_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService) */ + errn = encodeNBitUnsignedInteger(stream, 8, 180); + if(errn == 0) { + errn = encode_iso1SelectedServiceType(stream, &exiFrag->SelectedService ); + } + } else if ( exiFrag->SelectedServiceList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList) */ + errn = encodeNBitUnsignedInteger(stream, 8, 181); + if(errn == 0) { + errn = encode_iso1SelectedServiceListType(stream, &exiFrag->SelectedServiceList ); + } + } else if ( exiFrag->Service_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service) */ + errn = encodeNBitUnsignedInteger(stream, 8, 182); + if(errn == 0) { + errn = encode_iso1ServiceType(stream, &exiFrag->Service ); + } + } else if ( exiFrag->ServiceCategory_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory) */ + errn = encodeNBitUnsignedInteger(stream, 8, 183); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->ServiceCategory); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ServiceCategory_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory) */ + errn = encodeNBitUnsignedInteger(stream, 8, 184); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->ServiceCategory); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ServiceDetailReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 185); + if(errn == 0) { + errn = encode_iso1ServiceDetailReqType(stream, &exiFrag->ServiceDetailReq ); + } + } else if ( exiFrag->ServiceDetailRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 186); + if(errn == 0) { + errn = encode_iso1ServiceDetailResType(stream, &exiFrag->ServiceDetailRes ); + } + } else if ( exiFrag->ServiceDiscoveryReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 187); + if(errn == 0) { + errn = encode_iso1ServiceDiscoveryReqType(stream, &exiFrag->ServiceDiscoveryReq ); + } + } else if ( exiFrag->ServiceDiscoveryRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 188); + if(errn == 0) { + errn = encode_iso1ServiceDiscoveryResType(stream, &exiFrag->ServiceDiscoveryRes ); + } + } else if ( exiFrag->ServiceID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 189); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, exiFrag->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ServiceID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 190); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, exiFrag->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ServiceList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList) */ + errn = encodeNBitUnsignedInteger(stream, 8, 191); + if(errn == 0) { + errn = encode_iso1ServiceListType(stream, &exiFrag->ServiceList ); + } + } else if ( exiFrag->ServiceName_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName) */ + errn = encodeNBitUnsignedInteger(stream, 8, 192); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->ServiceName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->ServiceName.characters, exiFrag->ServiceName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ServiceParameterList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList) */ + errn = encodeNBitUnsignedInteger(stream, 8, 193); + if(errn == 0) { + errn = encode_iso1ServiceParameterListType(stream, &exiFrag->ServiceParameterList ); + } + } else if ( exiFrag->ServiceScope_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope) */ + errn = encodeNBitUnsignedInteger(stream, 8, 194); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->ServiceScope.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->ServiceScope.characters, exiFrag->ServiceScope.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ServiceScope_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope) */ + errn = encodeNBitUnsignedInteger(stream, 8, 195); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->ServiceScope.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->ServiceScope.characters, exiFrag->ServiceScope.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SessionID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 196); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SessionID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->SessionID.bytes, exiFrag->SessionID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SessionID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 197); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SessionID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->SessionID.bytes, exiFrag->SessionID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SessionSetupReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 198); + if(errn == 0) { + errn = encode_iso1SessionSetupReqType(stream, &exiFrag->SessionSetupReq ); + } + } else if ( exiFrag->SessionSetupRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 199); + if(errn == 0) { + errn = encode_iso1SessionSetupResType(stream, &exiFrag->SessionSetupRes ); + } + } else if ( exiFrag->SessionStopReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 200); + if(errn == 0) { + errn = encode_iso1SessionStopReqType(stream, &exiFrag->SessionStopReq ); + } + } else if ( exiFrag->SessionStopRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 201); + if(errn == 0) { + errn = encode_iso1SessionStopResType(stream, &exiFrag->SessionStopRes ); + } + } else if ( exiFrag->SigMeterReading_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading) */ + errn = encodeNBitUnsignedInteger(stream, 8, 202); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SigMeterReading.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->SigMeterReading.bytes, exiFrag->SigMeterReading.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Signature_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */ + errn = encodeNBitUnsignedInteger(stream, 8, 203); + if(errn == 0) { + errn = encode_iso1SignatureType(stream, &exiFrag->Signature ); + } + } else if ( exiFrag->SignatureMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */ + errn = encodeNBitUnsignedInteger(stream, 8, 204); + if(errn == 0) { + errn = encode_iso1SignatureMethodType(stream, &exiFrag->SignatureMethod ); + } + } else if ( exiFrag->SignatureProperties_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */ + errn = encodeNBitUnsignedInteger(stream, 8, 205); + if(errn == 0) { + errn = encode_iso1SignaturePropertiesType(stream, &exiFrag->SignatureProperties ); + } + } else if ( exiFrag->SignatureProperty_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */ + errn = encodeNBitUnsignedInteger(stream, 8, 206); + if(errn == 0) { + errn = encode_iso1SignaturePropertyType(stream, &exiFrag->SignatureProperty ); + } + } else if ( exiFrag->SignatureValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 207); + if(errn == 0) { + errn = encode_iso1SignatureValueType(stream, &exiFrag->SignatureValue ); + } + } else if ( exiFrag->SignedInfo_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */ + errn = encodeNBitUnsignedInteger(stream, 8, 208); + if(errn == 0) { + errn = encode_iso1SignedInfoType(stream, &exiFrag->SignedInfo ); + } + } else if ( exiFrag->SubCertificates_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates) */ + errn = encodeNBitUnsignedInteger(stream, 8, 209); + if(errn == 0) { + errn = encode_iso1SubCertificatesType(stream, &exiFrag->SubCertificates ); + } + } else if ( exiFrag->SupportedEnergyTransferMode_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode) */ + errn = encodeNBitUnsignedInteger(stream, 8, 210); + if(errn == 0) { + errn = encode_iso1SupportedEnergyTransferModeType(stream, &exiFrag->SupportedEnergyTransferMode ); + } + } else if ( exiFrag->TMeter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter) */ + errn = encodeNBitUnsignedInteger(stream, 8, 211); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, exiFrag->TMeter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->TimeInterval_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval) */ + errn = encodeNBitUnsignedInteger(stream, 8, 212); + if(errn == 0) { + errn = encode_iso1IntervalType(stream, &exiFrag->TimeInterval ); + } + } else if ( exiFrag->Transform_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */ + errn = encodeNBitUnsignedInteger(stream, 8, 213); + if(errn == 0) { + errn = encode_iso1TransformType(stream, &exiFrag->Transform ); + } + } else if ( exiFrag->Transforms_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */ + errn = encodeNBitUnsignedInteger(stream, 8, 214); + if(errn == 0) { + errn = encode_iso1TransformsType(stream, &exiFrag->Transforms ); + } + } else if ( exiFrag->Unit_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit) */ + errn = encodeNBitUnsignedInteger(stream, 8, 215); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, exiFrag->Unit); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->V2G_Message_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message) */ + errn = encodeNBitUnsignedInteger(stream, 8, 216); + if(errn == 0) { + errn = encode_iso1AnonType_V2G_Message(stream, &exiFrag->V2G_Message ); + } + } else if ( exiFrag->Value_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value) */ + errn = encodeNBitUnsignedInteger(stream, 8, 217); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->Value); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->WeldingDetectionReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq) */ + errn = encodeNBitUnsignedInteger(stream, 8, 218); + if(errn == 0) { + errn = encode_iso1WeldingDetectionReqType(stream, &exiFrag->WeldingDetectionReq ); + } + } else if ( exiFrag->WeldingDetectionRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes) */ + errn = encodeNBitUnsignedInteger(stream, 8, 219); + if(errn == 0) { + errn = encode_iso1WeldingDetectionResType(stream, &exiFrag->WeldingDetectionRes ); + } + } else if ( exiFrag->X509CRL_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) */ + errn = encodeNBitUnsignedInteger(stream, 8, 220); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509CRL.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->X509CRL.bytes, exiFrag->X509CRL.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509Certificate_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) */ + errn = encodeNBitUnsignedInteger(stream, 8, 221); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509Certificate.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->X509Certificate.bytes, exiFrag->X509Certificate.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509Data_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */ + errn = encodeNBitUnsignedInteger(stream, 8, 222); + if(errn == 0) { + errn = encode_iso1X509DataType(stream, &exiFrag->X509Data ); + } + } else if ( exiFrag->X509IssuerName_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName) */ + errn = encodeNBitUnsignedInteger(stream, 8, 223); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509IssuerName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->X509IssuerName.characters, exiFrag->X509IssuerName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509IssuerSerial_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial) */ + errn = encodeNBitUnsignedInteger(stream, 8, 224); + if(errn == 0) { + errn = encode_iso1X509IssuerSerialType(stream, &exiFrag->X509IssuerSerial ); + } + } else if ( exiFrag->X509SKI_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) */ + errn = encodeNBitUnsignedInteger(stream, 8, 225); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509SKI.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->X509SKI.bytes, exiFrag->X509SKI.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509SerialNumber_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber) */ + errn = encodeNBitUnsignedInteger(stream, 8, 226); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, exiFrag->X509SerialNumber); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509SubjectName_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) */ + errn = encodeNBitUnsignedInteger(stream, 8, 227); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509SubjectName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->X509SubjectName.characters, exiFrag->X509SubjectName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->XPath_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) */ + errn = encodeNBitUnsignedInteger(stream, 8, 228); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->XPath.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->XPath.characters, exiFrag->XPath.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Y_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) */ + errn = encodeNBitUnsignedInteger(stream, 8, 229); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Y.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Y.bytes, exiFrag->Y.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->amount_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount) */ + errn = encodeNBitUnsignedInteger(stream, 8, 230); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, exiFrag->amount); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->amountMultiplier_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier) */ + errn = encodeNBitUnsignedInteger(stream, 8, 231); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, (uint32_t)(exiFrag->amountMultiplier + 3)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->boolValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 232); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->boolValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->byteValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 233); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->byteValue + 128)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->costKind_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind) */ + errn = encodeNBitUnsignedInteger(stream, 8, 234); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->costKind); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->duration_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration) */ + errn = encodeNBitUnsignedInteger(stream, 8, 235); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, exiFrag->duration); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->eMAID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID) */ + errn = encodeNBitUnsignedInteger(stream, 8, 236); + if(errn == 0) { + errn = encode_iso1EXISchemaInformedElementFragmentGrammar(stream, &exiFrag->eMAID); + } + } else if ( exiFrag->intValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 237); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger32(stream, exiFrag->intValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->physicalValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 238); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->physicalValue ); + } + } else if ( exiFrag->shortValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 239); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->shortValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->start_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start) */ + errn = encodeNBitUnsignedInteger(stream, 8, 240); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, exiFrag->start); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->startValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 241); + if(errn == 0) { + errn = encode_iso1PhysicalValueType(stream, &exiFrag->startValue ); + } + } else if ( exiFrag->stringValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue) */ + errn = encodeNBitUnsignedInteger(stream, 8, 242); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->stringValue.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->stringValue.characters, exiFrag->stringValue.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + } + if(errn == 0) { + /* EndDocument */ + errn = encodeNBitUnsignedInteger(stream, 8, 244); + } + + + if(errn == 0) { + /* flush any pending bits */ + errn = encodeFinish(stream); + } + + return errn; +} +#endif /* DEPLOY_ISO1_CODEC_FRAGMENT */ + + +#endif /* DEPLOY_ISO1_CODEC */ + +#endif + diff --git a/csharp/vc2022/src/iso1/iso1EXIDatatypesEncoder.h b/csharp/vc2022/src/iso1/iso1EXIDatatypesEncoder.h new file mode 100644 index 0000000..ad0d59f --- /dev/null +++ b/csharp/vc2022/src/iso1/iso1EXIDatatypesEncoder.h @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIDatatypesEncoder.h + * \brief Encoder for datatype definitions + * + */ + +#ifndef EXI_iso1_DATATYPES_ENCODER_H +#define EXI_iso1_DATATYPES_ENCODER_H + +#ifdef __cplusplus +extern "C" { +#endif + + +#include "iso1EXIDatatypes.h" + +#if DEPLOY_ISO1_CODEC == SUPPORT_YES + +#include + +#include "EXITypes.h" + + +int encode_iso1ExiDocument(bitstream_t* stream, struct iso1EXIDocument* exiDoc); + +#if DEPLOY_ISO1_CODEC_FRAGMENT == SUPPORT_YES +int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag); +#endif /* DEPLOY_ISO1_CODEC_FRAGMENT */ + + +#endif /* DEPLOY_ISO1_CODEC */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/iso2/iso2EXIDatatypes.c b/csharp/vc2022/src/iso2/iso2EXIDatatypes.c new file mode 100644 index 0000000..06d30f5 --- /dev/null +++ b/csharp/vc2022/src/iso2/iso2EXIDatatypes.c @@ -0,0 +1,1496 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +#include + +#include "iso2EXIDatatypes.h" +#include "EXITypes.h" + + +#ifndef EXI_iso2_DATATYPES_C +#define EXI_iso2_DATATYPES_C + +#if DEPLOY_ISO2_CODEC == SUPPORT_YES + + +void init_iso2EXIDocument(struct iso2EXIDocument* exiDoc) { + exiDoc->V2G_Message_isUsed = 0u; + exiDoc->ServiceDiscoveryReq_isUsed = 0u; + exiDoc->ServiceDiscoveryRes_isUsed = 0u; + exiDoc->FinePositioningReq_isUsed = 0u; + exiDoc->FinePositioningRes_isUsed = 0u; + exiDoc->DisconnectChargingDeviceReq_isUsed = 0u; + exiDoc->DisconnectChargingDeviceRes_isUsed = 0u; + exiDoc->PowerDemandReq_isUsed = 0u; + exiDoc->MeteringReceiptReq_isUsed = 0u; + exiDoc->PaymentDetailsReq_isUsed = 0u; + exiDoc->PowerDemandRes_isUsed = 0u; + exiDoc->MeteringReceiptRes_isUsed = 0u; + exiDoc->PaymentDetailsRes_isUsed = 0u; + exiDoc->SessionSetupReq_isUsed = 0u; + exiDoc->SessionSetupRes_isUsed = 0u; + exiDoc->CableCheckReq_isUsed = 0u; + exiDoc->CableCheckRes_isUsed = 0u; + exiDoc->CertificateInstallationReq_isUsed = 0u; + exiDoc->CertificateInstallationRes_isUsed = 0u; + exiDoc->SystemStatusReq_isUsed = 0u; + exiDoc->SystemStatusRes_isUsed = 0u; + exiDoc->PairingReq_isUsed = 0u; + exiDoc->WeldingDetectionReq_isUsed = 0u; + exiDoc->ConnectChargingDeviceReq_isUsed = 0u; + exiDoc->PairingRes_isUsed = 0u; + exiDoc->WeldingDetectionRes_isUsed = 0u; + exiDoc->ConnectChargingDeviceRes_isUsed = 0u; + exiDoc->CertificateUpdateReq_isUsed = 0u; + exiDoc->CertificateUpdateRes_isUsed = 0u; + exiDoc->PaymentServiceSelectionReq_isUsed = 0u; + exiDoc->PowerDeliveryReq_isUsed = 0u; + exiDoc->PaymentServiceSelectionRes_isUsed = 0u; + exiDoc->PowerDeliveryRes_isUsed = 0u; + exiDoc->ChargingStatusReq_isUsed = 0u; + exiDoc->ChargingStatusRes_isUsed = 0u; + exiDoc->BodyElement_isUsed = 0u; + exiDoc->AC_BidirectionalControlReq_isUsed = 0u; + exiDoc->AC_BidirectionalControlRes_isUsed = 0u; + exiDoc->VehicleCheckInReq_isUsed = 0u; + exiDoc->CurrentDemandReq_isUsed = 0u; + exiDoc->VehicleCheckInRes_isUsed = 0u; + exiDoc->PreChargeReq_isUsed = 0u; + exiDoc->CurrentDemandRes_isUsed = 0u; + exiDoc->PreChargeRes_isUsed = 0u; + exiDoc->AlignmentCheckReq_isUsed = 0u; + exiDoc->V2GRequest_isUsed = 0u; + exiDoc->SessionStopReq_isUsed = 0u; + exiDoc->AuthorizationReq_isUsed = 0u; + exiDoc->AlignmentCheckRes_isUsed = 0u; + exiDoc->SessionStopRes_isUsed = 0u; + exiDoc->AuthorizationRes_isUsed = 0u; + exiDoc->VehicleCheckOutReq_isUsed = 0u; + exiDoc->ChargeParameterDiscoveryReq_isUsed = 0u; + exiDoc->VehicleCheckOutRes_isUsed = 0u; + exiDoc->ChargeParameterDiscoveryRes_isUsed = 0u; + exiDoc->V2GResponse_isUsed = 0u; + exiDoc->FinePositioningSetupReq_isUsed = 0u; + exiDoc->FinePositioningSetupRes_isUsed = 0u; + exiDoc->ServiceDetailReq_isUsed = 0u; + exiDoc->DC_BidirectionalControlReq_isUsed = 0u; + exiDoc->ServiceDetailRes_isUsed = 0u; + exiDoc->DC_BidirectionalControlRes_isUsed = 0u; + exiDoc->LFA_EVFinePositioningSetupParameters_isUsed = 0u; + exiDoc->MV_EVSEFinePositioningParameters_isUsed = 0u; + exiDoc->RelativeTimeInterval_isUsed = 0u; + exiDoc->SalesTariffEntry_isUsed = 0u; + exiDoc->LFA_EVSEFinePositioningSetupParameters_isUsed = 0u; + exiDoc->AC_EVChargeParameter_isUsed = 0u; + exiDoc->MV_EVSEFinePositioningSetupParameters_isUsed = 0u; + exiDoc->EVEnergyTransferParameter_isUsed = 0u; + exiDoc->DC_EVSEBidirectionalParameter_isUsed = 0u; + exiDoc->SAScheduleList_isUsed = 0u; + exiDoc->EVSEFinePositioningSetupParameters_isUsed = 0u; + exiDoc->Generic_EVSEFinePositioningParameters_isUsed = 0u; + exiDoc->DC_EVChargeParameter_isUsed = 0u; + exiDoc->DC_EVSEChargeParameter_isUsed = 0u; + exiDoc->LFA_EVFinePositioningParameters_isUsed = 0u; + exiDoc->EVFinePositioningSetupParameters_isUsed = 0u; + exiDoc->AC_EVSEBidirectionalParameter_isUsed = 0u; + exiDoc->EVFinePositioningParameters_isUsed = 0u; + exiDoc->WPT_EVChargeParameter_isUsed = 0u; + exiDoc->LFA_EVSEFinePositioningParameters_isUsed = 0u; + exiDoc->EVSEEnergyTransferParameter_isUsed = 0u; + exiDoc->AC_EVBidirectionalParameter_isUsed = 0u; + exiDoc->EVSEFinePositioningParameters_isUsed = 0u; + exiDoc->WPT_EVSEChargeParameter_isUsed = 0u; + exiDoc->AC_EVSEChargeParameter_isUsed = 0u; + exiDoc->PMaxScheduleEntry_isUsed = 0u; + exiDoc->Generic_EVFinePositioningParameters_isUsed = 0u; + exiDoc->DC_EVBidirectionalParameter_isUsed = 0u; + exiDoc->SignatureProperty_isUsed = 0u; + exiDoc->DSAKeyValue_isUsed = 0u; + exiDoc->SignatureProperties_isUsed = 0u; + exiDoc->KeyValue_isUsed = 0u; + exiDoc->Transforms_isUsed = 0u; + exiDoc->DigestMethod_isUsed = 0u; + exiDoc->Signature_isUsed = 0u; + exiDoc->RetrievalMethod_isUsed = 0u; + exiDoc->Manifest_isUsed = 0u; + exiDoc->Reference_isUsed = 0u; + exiDoc->CanonicalizationMethod_isUsed = 0u; + exiDoc->RSAKeyValue_isUsed = 0u; + exiDoc->Transform_isUsed = 0u; + exiDoc->PGPData_isUsed = 0u; + exiDoc->MgmtData_isUsed = 0u; + exiDoc->SignatureMethod_isUsed = 0u; + exiDoc->KeyInfo_isUsed = 0u; + exiDoc->SPKIData_isUsed = 0u; + exiDoc->X509Data_isUsed = 0u; + exiDoc->SignatureValue_isUsed = 0u; + exiDoc->KeyName_isUsed = 0u; + exiDoc->DigestValue_isUsed = 0u; + exiDoc->SignedInfo_isUsed = 0u; + exiDoc->Object_isUsed = 0u; +} + + +#if DEPLOY_ISO2_CODEC_FRAGMENT == SUPPORT_YES +void init_iso2EXIFragment(struct iso2EXIFragment* exiFrag) { + exiFrag->EVMaximumVoltage_isUsed = 0u; + exiFrag->EVMaximumVoltage_isUsed = 0u; + exiFrag->FrequencyChannel_isUsed = 0u; + exiFrag->FrequencyChannel_isUsed = 0u; + exiFrag->EVProcessing_isUsed = 0u; + exiFrag->EVProcessing_isUsed = 0u; + exiFrag->EVProcessing_isUsed = 0u; + exiFrag->BulkChargingComplete_isUsed = 0u; + exiFrag->ParkingMethod_isUsed = 0u; + exiFrag->SAScheduleTupleID_isUsed = 0u; + exiFrag->Distance_isUsed = 0u; + exiFrag->ParameterSet_isUsed = 0u; + exiFrag->EVMinimumDischargeCurrent_isUsed = 0u; + exiFrag->SignalSeparationTime_isUsed = 0u; + exiFrag->SignalSeparationTime_isUsed = 0u; + exiFrag->EVSEEnergyTransferParameter_isUsed = 0u; + exiFrag->EVSEMaximumVoltage_isUsed = 0u; + exiFrag->EVSEMaximumVoltage_isUsed = 0u; + exiFrag->DC_EVSEBidirectionalParameter_isUsed = 0u; + exiFrag->ChargingSession_isUsed = 0u; + exiFrag->SubCertificates_isUsed = 0u; + exiFrag->RetrievalMethod_isUsed = 0u; + exiFrag->MagneticVectorSetupList_isUsed = 0u; + exiFrag->PairingParameters_isUsed = 0u; + exiFrag->PairingParameters_isUsed = 0u; + exiFrag->EVSEMinimumPower_isUsed = 0u; + exiFrag->AC_BidirectionalControlReq_isUsed = 0u; + exiFrag->Cost_isUsed = 0u; + exiFrag->AC_BidirectionalControlRes_isUsed = 0u; + exiFrag->BuyBackTariff_isUsed = 0u; + exiFrag->XCoordinate_isUsed = 0u; + exiFrag->EVSECheckOutStatus_isUsed = 0u; + exiFrag->stringValue_isUsed = 0u; + exiFrag->RetryCounter_isUsed = 0u; + exiFrag->EVSEMaximumDischargeCurrent_isUsed = 0u; + exiFrag->Sensor_isUsed = 0u; + exiFrag->MeterReadingCharged_isUsed = 0u; + exiFrag->HMACOutputLength_isUsed = 0u; + exiFrag->V2GResponse_isUsed = 0u; + exiFrag->EVMinimumVoltage_isUsed = 0u; + exiFrag->EVMinimumEnergyRequest_isUsed = 0u; + exiFrag->EVMinimumEnergyRequest_isUsed = 0u; + exiFrag->EVMinimumEnergyRequest_isUsed = 0u; + exiFrag->RelativeTimeInterval_isUsed = 0u; + exiFrag->RelativeTimeInterval_isUsed = 0u; + exiFrag->WPT_EVChargeParameter_isUsed = 0u; + exiFrag->SAScheduleTuple_isUsed = 0u; + exiFrag->ServiceID_isUsed = 0u; + exiFrag->ServiceID_isUsed = 0u; + exiFrag->PgenCounter_isUsed = 0u; + exiFrag->SalesTariffDescription_isUsed = 0u; + exiFrag->AngleGAtoVA_isUsed = 0u; + exiFrag->boolValue_isUsed = 0u; + exiFrag->EVMaximumDischargeCurrent_isUsed = 0u; + exiFrag->EVMaximumDischargeCurrent_isUsed = 0u; + exiFrag->NotificationMaxDelay_isUsed = 0u; + exiFrag->EVSEMaximumDischargePower_isUsed = 0u; + exiFrag->PGPData_isUsed = 0u; + exiFrag->EVSEMaximumChargePower_isUsed = 0u; + exiFrag->SessionID_isUsed = 0u; + exiFrag->EVSEEnergyToBeDelivered_isUsed = 0u; + exiFrag->EVMaximumPower_isUsed = 0u; + exiFrag->EVMaximumCurrent_isUsed = 0u; + exiFrag->RSAKeyValue_isUsed = 0u; + exiFrag->EVSENominalVoltage_isUsed = 0u; + exiFrag->MagneticVector_isUsed = 0u; + exiFrag->XPath_isUsed = 0u; + exiFrag->Signature_isUsed = 0u; + exiFrag->EVElectricalChargingDeviceStatus_isUsed = 0u; + exiFrag->EVElectricalChargingDeviceStatus_isUsed = 0u; + exiFrag->EVSEProcessing_isUsed = 0u; + exiFrag->EVSEProcessing_isUsed = 0u; + exiFrag->EVSEProcessing_isUsed = 0u; + exiFrag->EVSEProcessing_isUsed = 0u; + exiFrag->EVSEProcessing_isUsed = 0u; + exiFrag->EVSEProcessing_isUsed = 0u; + exiFrag->EVSEProcessing_isUsed = 0u; + exiFrag->EVSEProcessing_isUsed = 0u; + exiFrag->EVSEProcessing_isUsed = 0u; + exiFrag->EVSEProcessing_isUsed = 0u; + exiFrag->FODStatus_isUsed = 0u; + exiFrag->PowerDeliveryRes_isUsed = 0u; + exiFrag->SessionStopRes_isUsed = 0u; + exiFrag->WPT_EVSEChargeParameter_isUsed = 0u; + exiFrag->ResponseCode_isUsed = 0u; + exiFrag->EVTargetEnergyRequest_isUsed = 0u; + exiFrag->EVTargetEnergyRequest_isUsed = 0u; + exiFrag->EVTargetEnergyRequest_isUsed = 0u; + exiFrag->FinePositioningSetupReq_isUsed = 0u; + exiFrag->EVSEPresentCurrent_isUsed = 0u; + exiFrag->EVSEPresentCurrent_isUsed = 0u; + exiFrag->FinePositioningSetupRes_isUsed = 0u; + exiFrag->ProfileEntry_isUsed = 0u; + exiFrag->MgmtData_isUsed = 0u; + exiFrag->SAProvisioningCertificateChain_isUsed = 0u; + exiFrag->SAProvisioningCertificateChain_isUsed = 0u; + exiFrag->PowerDeliveryReq_isUsed = 0u; + exiFrag->SessionStopReq_isUsed = 0u; + exiFrag->ReceiptRequired_isUsed = 0u; + exiFrag->ReceiptRequired_isUsed = 0u; + exiFrag->ReceiptRequired_isUsed = 0u; + exiFrag->ReceiptRequired_isUsed = 0u; + exiFrag->ReceiptRequired_isUsed = 0u; + exiFrag->ChargingProfile_isUsed = 0u; + exiFrag->MaxSupportingPoints_isUsed = 0u; + exiFrag->start_isUsed = 0u; + exiFrag->EVMinimumChargePower_isUsed = 0u; + exiFrag->amount_isUsed = 0u; + exiFrag->PreChargeReq_isUsed = 0u; + exiFrag->OEMProvisioningCert_isUsed = 0u; + exiFrag->PackageIndex_isUsed = 0u; + exiFrag->PreChargeRes_isUsed = 0u; + exiFrag->P_isUsed = 0u; + exiFrag->Q_isUsed = 0u; + exiFrag->X509SubjectName_isUsed = 0u; + exiFrag->G_isUsed = 0u; + exiFrag->J_isUsed = 0u; + exiFrag->SessionID_isUsed = 0u; + exiFrag->ContractSignatureCertChain_isUsed = 0u; + exiFrag->ContractSignatureCertChain_isUsed = 0u; + exiFrag->ContractSignatureCertChain_isUsed = 0u; + exiFrag->ContractSignatureCertChain_isUsed = 0u; + exiFrag->MV_EVSEFinePositioningSetupParameters_isUsed = 0u; + exiFrag->EVSEMinimumDischargeCurrent_isUsed = 0u; + exiFrag->EVMaximumChargeCurrent_isUsed = 0u; + exiFrag->EVMaximumChargeCurrent_isUsed = 0u; + exiFrag->AlignmentOffset_isUsed = 0u; + exiFrag->AlignmentOffset_isUsed = 0u; + exiFrag->Y_isUsed = 0u; + exiFrag->RemainingTimeToTargetSOC_isUsed = 0u; + exiFrag->DigestValue_isUsed = 0u; + exiFrag->SensorMeasurements_isUsed = 0u; + exiFrag->SalesTariff_isUsed = 0u; + exiFrag->EVCCID_isUsed = 0u; + exiFrag->EVSEMaximumPower_isUsed = 0u; + exiFrag->TargetOffset_isUsed = 0u; + exiFrag->PowerDemandParameters_isUsed = 0u; + exiFrag->PowerDemandParameters_isUsed = 0u; + exiFrag->PGPKeyID_isUsed = 0u; + exiFrag->DisconnectChargingDeviceReq_isUsed = 0u; + exiFrag->DisconnectChargingDeviceRes_isUsed = 0u; + exiFrag->DSAKeyValue_isUsed = 0u; + exiFrag->SalesTariffEntry_isUsed = 0u; + exiFrag->CertificateInstallationRes_isUsed = 0u; + exiFrag->CanonicalizationMethod_isUsed = 0u; + exiFrag->Generic_EVFinePositioningParameters_isUsed = 0u; + exiFrag->EVSEMinimumVoltage_isUsed = 0u; + exiFrag->SystemStatusRes_isUsed = 0u; + exiFrag->EVSEOutputPower_isUsed = 0u; + exiFrag->SignedInfo_isUsed = 0u; + exiFrag->EVMinimumChargeCurrent_isUsed = 0u; + exiFrag->EVMinimumChargeCurrent_isUsed = 0u; + exiFrag->costKind_isUsed = 0u; + exiFrag->SystemStatusReq_isUsed = 0u; + exiFrag->CableCheckReq_isUsed = 0u; + exiFrag->NumEPriceLevels_isUsed = 0u; + exiFrag->EVSEVoltageLimitAchieved_isUsed = 0u; + exiFrag->EVSEVoltageLimitAchieved_isUsed = 0u; + exiFrag->PackageSeparationTime_isUsed = 0u; + exiFrag->PackageSeparationTime_isUsed = 0u; + exiFrag->CableCheckRes_isUsed = 0u; + exiFrag->EVCheckInStatus_isUsed = 0u; + exiFrag->PMaxDischargeSchedule_isUsed = 0u; + exiFrag->EVMinimumPower_isUsed = 0u; + exiFrag->ChargingPerformance_isUsed = 0u; + exiFrag->AlignmentCheckReq_isUsed = 0u; + exiFrag->EVMechanicalChargingDeviceStatus_isUsed = 0u; + exiFrag->EVMechanicalChargingDeviceStatus_isUsed = 0u; + exiFrag->EVMechanicalChargingDeviceStatus_isUsed = 0u; + exiFrag->VehicleSpace_isUsed = 0u; + exiFrag->AlignmentCheckRes_isUsed = 0u; + exiFrag->EVMinimumDischargePower_isUsed = 0u; + exiFrag->RemainingTimeToMinimumSOC_isUsed = 0u; + exiFrag->AuthorizationRes_isUsed = 0u; + exiFrag->CertificateInstallationReq_isUsed = 0u; + exiFrag->PaymentDetailsReq_isUsed = 0u; + exiFrag->PaymentDetailsRes_isUsed = 0u; + exiFrag->AuthorizationReq_isUsed = 0u; + exiFrag->EVTargetCurrent_isUsed = 0u; + exiFrag->EVTargetCurrent_isUsed = 0u; + exiFrag->EVTargetCurrent_isUsed = 0u; + exiFrag->SessionSetupReq_isUsed = 0u; + exiFrag->SessionSetupRes_isUsed = 0u; + exiFrag->EVSENominalFrequency_isUsed = 0u; + exiFrag->EVSENominalFrequency_isUsed = 0u; + exiFrag->Header_isUsed = 0u; + exiFrag->NumberOfSensors_isUsed = 0u; + exiFrag->NumberOfSensors_isUsed = 0u; + exiFrag->EVSETimeStamp_isUsed = 0u; + exiFrag->EVSETimeStamp_isUsed = 0u; + exiFrag->MeterStatus_isUsed = 0u; + exiFrag->EVSEMaximumPower_isUsed = 0u; + exiFrag->MV_EVSEFinePositioningParameters_isUsed = 0u; + exiFrag->ChargeProgress_isUsed = 0u; + exiFrag->KeyName_isUsed = 0u; + exiFrag->PMaxSchedule_isUsed = 0u; + exiFrag->duration_isUsed = 0u; + exiFrag->RemainingTimeToBulkSOC_isUsed = 0u; + exiFrag->SensorOrientation_isUsed = 0u; + exiFrag->EVSEMinimumVoltage_isUsed = 0u; + exiFrag->EVSEMaximumChargeCurrent_isUsed = 0u; + exiFrag->LFA_EVSEFinePositioningParameters_isUsed = 0u; + exiFrag->VehicleCheckInRes_isUsed = 0u; + exiFrag->PMaxScheduleEntry_isUsed = 0u; + exiFrag->SAScheduleList_isUsed = 0u; + exiFrag->X509SKI_isUsed = 0u; + exiFrag->PaymentOptionList_isUsed = 0u; + exiFrag->ContractSignatureEncryptedPrivateKey_isUsed = 0u; + exiFrag->ContractSignatureEncryptedPrivateKey_isUsed = 0u; + exiFrag->VehicleCheckInReq_isUsed = 0u; + exiFrag->Certificate_isUsed = 0u; + exiFrag->Certificate_isUsed = 0u; + exiFrag->CheckOutTime_isUsed = 0u; + exiFrag->CurrentSOC_isUsed = 0u; + exiFrag->CurrentSOC_isUsed = 0u; + exiFrag->ZCoordinate_isUsed = 0u; + exiFrag->MeasurementData_isUsed = 0u; + exiFrag->PairingRes_isUsed = 0u; + exiFrag->EVSEMaximumCurrent_isUsed = 0u; + exiFrag->LFA_EVFinePositioningParameters_isUsed = 0u; + exiFrag->AlignmentCheckParameters_isUsed = 0u; + exiFrag->AlignmentCheckParameters_isUsed = 0u; + exiFrag->EffectiveRadiatedPower_isUsed = 0u; + exiFrag->PairingReq_isUsed = 0u; + exiFrag->EVMinimumChargeCurrent_isUsed = 0u; + exiFrag->EVMinimumChargeCurrent_isUsed = 0u; + exiFrag->Value_isUsed = 0u; + exiFrag->byteValue_isUsed = 0u; + exiFrag->EVSEMaximumChargeCurrent_isUsed = 0u; + exiFrag->EVSEMaximumChargeCurrent_isUsed = 0u; + exiFrag->CurrentDemandReq_isUsed = 0u; + exiFrag->Generic_EVSEFinePositioningParameters_isUsed = 0u; + exiFrag->CurrentDemandRes_isUsed = 0u; + exiFrag->SAScheduleList_isUsed = 0u; + exiFrag->AC_EVBidirectionalParameter_isUsed = 0u; + exiFrag->Modulus_isUsed = 0u; + exiFrag->SelectedEnergyTransferService_isUsed = 0u; + exiFrag->startValue_isUsed = 0u; + exiFrag->SelectedVASList_isUsed = 0u; + exiFrag->EVSEMaximumDischargePower_isUsed = 0u; + exiFrag->ChargeParameterDiscoveryReq_isUsed = 0u; + exiFrag->ChargeParameterDiscoveryRes_isUsed = 0u; + exiFrag->EVMaximumDischargeCurrent_isUsed = 0u; + exiFrag->EVMaximumDischargeCurrent_isUsed = 0u; + exiFrag->SigMeterReading_isUsed = 0u; + exiFrag->TargetSOC_isUsed = 0u; + exiFrag->TargetSOC_isUsed = 0u; + exiFrag->EVMaximumPower_isUsed = 0u; + exiFrag->EVSEMaximumChargePower_isUsed = 0u; + exiFrag->EVSEStatus_isUsed = 0u; + exiFrag->EVSEMinimumChargeCurrent_isUsed = 0u; + exiFrag->EVSEElectricalChargingDeviceStatus_isUsed = 0u; + exiFrag->EVSEElectricalChargingDeviceStatus_isUsed = 0u; + exiFrag->X509SerialNumber_isUsed = 0u; + exiFrag->PaymentOption_isUsed = 0u; + exiFrag->Transforms_isUsed = 0u; + exiFrag->EVSEPeakCurrentRipple_isUsed = 0u; + exiFrag->ConsumptionCost_isUsed = 0u; + exiFrag->EVTargetEnergyRequest_isUsed = 0u; + exiFrag->EVSEFinePositioningSetupParameters_isUsed = 0u; + exiFrag->EPriceLevel_isUsed = 0u; + exiFrag->Exponent_isUsed = 0u; + exiFrag->X509IssuerSerial_isUsed = 0u; + exiFrag->SPKIData_isUsed = 0u; + exiFrag->MagneticVectorList_isUsed = 0u; + exiFrag->EVSEFinePositioningParameters_isUsed = 0u; + exiFrag->EVTargetPower_isUsed = 0u; + exiFrag->SensorPackageList_isUsed = 0u; + exiFrag->SensorPackageList_isUsed = 0u; + exiFrag->DepartureTime_isUsed = 0u; + exiFrag->InletHot_isUsed = 0u; + exiFrag->EVPresentActivePower_isUsed = 0u; + exiFrag->X509Data_isUsed = 0u; + exiFrag->YCoordinate_isUsed = 0u; + exiFrag->KeyValue_isUsed = 0u; + exiFrag->DisplayParameters_isUsed = 0u; + exiFrag->EVSEPowerLimitAchieved_isUsed = 0u; + exiFrag->EVSEPowerLimitAchieved_isUsed = 0u; + exiFrag->Body_isUsed = 0u; + exiFrag->DC_EVChargeParameter_isUsed = 0u; + exiFrag->SAScheduleTupleID_isUsed = 0u; + exiFrag->SAScheduleTupleID_isUsed = 0u; + exiFrag->SAScheduleTupleID_isUsed = 0u; + exiFrag->SAScheduleTupleID_isUsed = 0u; + exiFrag->SAScheduleTupleID_isUsed = 0u; + exiFrag->SAScheduleTupleID_isUsed = 0u; + exiFrag->SAScheduleTupleID_isUsed = 0u; + exiFrag->Service_isUsed = 0u; + exiFrag->EVMinimumDischargeCurrent_isUsed = 0u; + exiFrag->EVMinimumDischargeCurrent_isUsed = 0u; + exiFrag->SignatureProperty_isUsed = 0u; + exiFrag->PGPKeyPacket_isUsed = 0u; + exiFrag->PGPKeyPacket_isUsed = 0u; + exiFrag->Seed_isUsed = 0u; + exiFrag->LFA_EVFinePositioningSetupParameters_isUsed = 0u; + exiFrag->MinimumPMaxRequest_isUsed = 0u; + exiFrag->FinePositioningReq_isUsed = 0u; + exiFrag->EnergyTransferServiceList_isUsed = 0u; + exiFrag->FinePositioningRes_isUsed = 0u; + exiFrag->AC_EVSEBidirectionalParameter_isUsed = 0u; + exiFrag->FreeService_isUsed = 0u; + exiFrag->EVMinimumVoltage_isUsed = 0u; + exiFrag->AC_EVSEChargeParameter_isUsed = 0u; + exiFrag->EVMaximumVoltage_isUsed = 0u; + exiFrag->EVMaximumVoltage_isUsed = 0u; + exiFrag->SensorID_isUsed = 0u; + exiFrag->SensorID_isUsed = 0u; + exiFrag->EVMaximumChargeCurrent_isUsed = 0u; + exiFrag->EVMaximumChargeCurrent_isUsed = 0u; + exiFrag->EVMaximumChargeCurrent_isUsed = 0u; + exiFrag->EVSECurrentRegulationTolerance_isUsed = 0u; + exiFrag->EVSEMechanicalChargingDeviceStatus_isUsed = 0u; + exiFrag->EVSEMechanicalChargingDeviceStatus_isUsed = 0u; + exiFrag->EVSEMechanicalChargingDeviceStatus_isUsed = 0u; + exiFrag->ServiceID_isUsed = 0u; + exiFrag->ServiceID_isUsed = 0u; + exiFrag->ServiceID_isUsed = 0u; + exiFrag->EVEnergyTransferParameter_isUsed = 0u; + exiFrag->SignalPulseDuration_isUsed = 0u; + exiFrag->SignalPulseDuration_isUsed = 0u; + exiFrag->shortValue_isUsed = 0u; + exiFrag->EVSEMaximumDischargeCurrent_isUsed = 0u; + exiFrag->EVSEMaximumDischargeCurrent_isUsed = 0u; + exiFrag->Manifest_isUsed = 0u; + exiFrag->DC_EVSEChargeParameter_isUsed = 0u; + exiFrag->MeteringReceiptReq_isUsed = 0u; + exiFrag->MeterID_isUsed = 0u; + exiFrag->MeteringReceiptRes_isUsed = 0u; + exiFrag->ServiceDiscoveryReq_isUsed = 0u; + exiFrag->SalesTariffID_isUsed = 0u; + exiFrag->ServiceDiscoveryRes_isUsed = 0u; + exiFrag->X509CRL_isUsed = 0u; + exiFrag->MagneticVectorSetup_isUsed = 0u; + exiFrag->DigestMethod_isUsed = 0u; + exiFrag->SPKISexp_isUsed = 0u; + exiFrag->MeterReadingDischarged_isUsed = 0u; + exiFrag->MeasurementDataList_isUsed = 0u; + exiFrag->SignatureProperties_isUsed = 0u; + exiFrag->SensorPosition_isUsed = 0u; + exiFrag->SensorPosition_isUsed = 0u; + exiFrag->LFA_EVSEFinePositioningSetupParameters_isUsed = 0u; + exiFrag->eMAID_isUsed = 0u; + exiFrag->eMAID_isUsed = 0u; + exiFrag->eMAID_isUsed = 0u; + exiFrag->eMAID_isUsed = 0u; + exiFrag->SensorPackage_isUsed = 0u; + exiFrag->EVCheckOutStatus_isUsed = 0u; + exiFrag->EVMinimumEnergyRequest_isUsed = 0u; + exiFrag->X509Certificate_isUsed = 0u; + exiFrag->RootCertificateID_isUsed = 0u; + exiFrag->DC_BidirectionalControlReq_isUsed = 0u; + exiFrag->EVSEPresentVoltage_isUsed = 0u; + exiFrag->EVSEPresentVoltage_isUsed = 0u; + exiFrag->DC_BidirectionalControlRes_isUsed = 0u; + exiFrag->EVSEPresentVoltage_isUsed = 0u; + exiFrag->VASList_isUsed = 0u; + exiFrag->EVSEPresentVoltage_isUsed = 0u; + exiFrag->MeterInfo_isUsed = 0u; + exiFrag->MeterInfo_isUsed = 0u; + exiFrag->MeterInfo_isUsed = 0u; + exiFrag->MeterInfo_isUsed = 0u; + exiFrag->MeterInfo_isUsed = 0u; + exiFrag->MeterInfo_isUsed = 0u; + exiFrag->EVSETargetReactivePower_isUsed = 0u; + exiFrag->ChargingStatusReq_isUsed = 0u; + exiFrag->GenericParameters_isUsed = 0u; + exiFrag->GenericParameters_isUsed = 0u; + exiFrag->ChargingStatusRes_isUsed = 0u; + exiFrag->EVMaximumChargePower_isUsed = 0u; + exiFrag->EVMaximumChargePower_isUsed = 0u; + exiFrag->BulkSOC_isUsed = 0u; + exiFrag->BulkSOC_isUsed = 0u; + exiFrag->NumberOfSignalPackages_isUsed = 0u; + exiFrag->NumberOfSignalPackages_isUsed = 0u; + exiFrag->ParameterSetID_isUsed = 0u; + exiFrag->PMax_isUsed = 0u; + exiFrag->ParameterSetID_isUsed = 0u; + exiFrag->EVMaximumEnergyRequest_isUsed = 0u; + exiFrag->EVMaximumEnergyRequest_isUsed = 0u; + exiFrag->EVMaximumEnergyRequest_isUsed = 0u; + exiFrag->EVOperation_isUsed = 0u; + exiFrag->EVOperation_isUsed = 0u; + exiFrag->CertificateUpdateRes_isUsed = 0u; + exiFrag->ChargingComplete_isUsed = 0u; + exiFrag->ListOfRootCertificateIDs_isUsed = 0u; + exiFrag->ListOfRootCertificateIDs_isUsed = 0u; + exiFrag->RotationVAtoGA_isUsed = 0u; + exiFrag->EVTargetVoltage_isUsed = 0u; + exiFrag->EVTargetVoltage_isUsed = 0u; + exiFrag->EVTargetVoltage_isUsed = 0u; + exiFrag->CertificateUpdateReq_isUsed = 0u; + exiFrag->ConnectChargingDeviceRes_isUsed = 0u; + exiFrag->DHpublickey_isUsed = 0u; + exiFrag->DHpublickey_isUsed = 0u; + exiFrag->ServiceParameterList_isUsed = 0u; + exiFrag->SignatureValue_isUsed = 0u; + exiFrag->physicalValue_isUsed = 0u; + exiFrag->Exponent_isUsed = 0u; + exiFrag->OperationMode_isUsed = 0u; + exiFrag->OperationMode_isUsed = 0u; + exiFrag->EVSECurrentLimitAchieved_isUsed = 0u; + exiFrag->EVSECurrentLimitAchieved_isUsed = 0u; + exiFrag->ServiceDetailReq_isUsed = 0u; + exiFrag->ServiceDetailRes_isUsed = 0u; + exiFrag->EVSEMaximumVoltage_isUsed = 0u; + exiFrag->intValue_isUsed = 0u; + exiFrag->EVMaximumDischargePower_isUsed = 0u; + exiFrag->EVMaximumDischargePower_isUsed = 0u; + exiFrag->MinimumSOC_isUsed = 0u; + exiFrag->MinimumSOC_isUsed = 0u; + exiFrag->SelectedPaymentOption_isUsed = 0u; + exiFrag->V2G_Message_isUsed = 0u; + exiFrag->EVSEID_isUsed = 0u; + exiFrag->EVSEID_isUsed = 0u; + exiFrag->EVSEID_isUsed = 0u; + exiFrag->EVSEID_isUsed = 0u; + exiFrag->EVSEID_isUsed = 0u; + exiFrag->EVSEID_isUsed = 0u; + exiFrag->TMeter_isUsed = 0u; + exiFrag->SensorOrder_isUsed = 0u; + exiFrag->SensorOrder_isUsed = 0u; + exiFrag->SupportedServiceIDs_isUsed = 0u; + exiFrag->GenChallenge_isUsed = 0u; + exiFrag->GenChallenge_isUsed = 0u; + exiFrag->EVFinePositioningParameters_isUsed = 0u; + exiFrag->SensorList_isUsed = 0u; + exiFrag->SensorList_isUsed = 0u; + exiFrag->KeyInfo_isUsed = 0u; + exiFrag->ConnectChargingDeviceReq_isUsed = 0u; + exiFrag->AC_EVChargeParameter_isUsed = 0u; + exiFrag->Parameter_isUsed = 0u; + exiFrag->WeldingDetectionRes_isUsed = 0u; + exiFrag->GAID_isUsed = 0u; + exiFrag->GAID_isUsed = 0u; + exiFrag->SignalFrequency_isUsed = 0u; + exiFrag->EVSETargetPower_isUsed = 0u; + exiFrag->DC_EVBidirectionalParameter_isUsed = 0u; + exiFrag->EVSETargetPower_isUsed = 0u; + exiFrag->SignatureMethod_isUsed = 0u; + exiFrag->WeldingDetectionReq_isUsed = 0u; + exiFrag->SelectedService_isUsed = 0u; + exiFrag->EVInputPower_isUsed = 0u; + exiFrag->VehicleCheckOutReq_isUsed = 0u; + exiFrag->EVMaximumDischargePower_isUsed = 0u; + exiFrag->EVMaximumDischargePower_isUsed = 0u; + exiFrag->PowerDemandReq_isUsed = 0u; + exiFrag->VehicleCheckOutRes_isUsed = 0u; + exiFrag->CurrentRange_isUsed = 0u; + exiFrag->EVPresentReactivePower_isUsed = 0u; + exiFrag->X509IssuerName_isUsed = 0u; + exiFrag->V2GRequest_isUsed = 0u; + exiFrag->Reference_isUsed = 0u; + exiFrag->BodyElement_isUsed = 0u; + exiFrag->MinimumPMaxScheduleEntry_isUsed = 0u; + exiFrag->EVFinePositioningSetupParameters_isUsed = 0u; + exiFrag->EVSENotification_isUsed = 0u; + exiFrag->PaymentServiceSelectionReq_isUsed = 0u; + exiFrag->EVMaximumChargePower_isUsed = 0u; + exiFrag->EVMaximumChargePower_isUsed = 0u; + exiFrag->EVMaximumChargePower_isUsed = 0u; + exiFrag->PaymentServiceSelectionRes_isUsed = 0u; + exiFrag->Transform_isUsed = 0u; + exiFrag->EVMaximumEnergyRequest_isUsed = 0u; + exiFrag->Object_isUsed = 0u; + exiFrag->TargetOffsetY_isUsed = 0u; + exiFrag->PowerDemandRes_isUsed = 0u; + exiFrag->TargetOffsetX_isUsed = 0u; +} +#endif /* DEPLOY_ISO2_CODEC_FRAGMENT */ + +void init_iso2RetrievalMethodType(struct iso2RetrievalMethodType* iso2RetrievalMethodType) { + iso2RetrievalMethodType->URI_isUsed = 0u; + iso2RetrievalMethodType->Type_isUsed = 0u; + iso2RetrievalMethodType->Transforms_isUsed = 0u; +} + +void init_iso2AuthorizationResType(struct iso2AuthorizationResType* iso2AuthorizationResType) { + iso2AuthorizationResType->EVSEStatus_isUsed = 0u; +} + +void init_iso2MV_EVSEFinePositioningSetupParametersType(struct iso2MV_EVSEFinePositioningSetupParametersType* iso2MV_EVSEFinePositioningSetupParametersType) { + iso2MV_EVSEFinePositioningSetupParametersType->FrequencyChannel_isUsed = 0u; + iso2MV_EVSEFinePositioningSetupParametersType->MagneticVectorSetupList_isUsed = 0u; +} + +void init_iso2X509DataType(struct iso2X509DataType* iso2X509DataType) { + iso2X509DataType->X509IssuerSerial.arrayLen = 0u; + iso2X509DataType->X509SKI.arrayLen = 0u; + iso2X509DataType->X509SubjectName.arrayLen = 0u; + iso2X509DataType->X509Certificate.arrayLen = 0u; + iso2X509DataType->X509CRL.arrayLen = 0u; + iso2X509DataType->ANY_isUsed = 0u; +} + +void init_iso2RSAKeyValueType(struct iso2RSAKeyValueType* iso2RSAKeyValueType) { + (void)iso2RSAKeyValueType; /* avoid unused warning */ +} + +void init_iso2DC_BidirectionalControlResType(struct iso2DC_BidirectionalControlResType* iso2DC_BidirectionalControlResType) { + iso2DC_BidirectionalControlResType->EVSEStatus_isUsed = 0u; + iso2DC_BidirectionalControlResType->EVSEMaximumChargePower_isUsed = 0u; + iso2DC_BidirectionalControlResType->EVSEMaximumDischargePower_isUsed = 0u; + iso2DC_BidirectionalControlResType->EVSEMaximumChargeCurrent_isUsed = 0u; + iso2DC_BidirectionalControlResType->EVSEMaximumDischargeCurrent_isUsed = 0u; + iso2DC_BidirectionalControlResType->EVSEMaximumVoltage_isUsed = 0u; + iso2DC_BidirectionalControlResType->EVSEMinimumVoltage_isUsed = 0u; + iso2DC_BidirectionalControlResType->SAScheduleTupleID_isUsed = 0u; + iso2DC_BidirectionalControlResType->MeterInfo_isUsed = 0u; + iso2DC_BidirectionalControlResType->ReceiptRequired_isUsed = 0u; +} + +void init_iso2CostType(struct iso2CostType* iso2CostType) { + (void)iso2CostType; /* avoid unused warning */ +} + +void init_iso2ChargingStatusResType(struct iso2ChargingStatusResType* iso2ChargingStatusResType) { + iso2ChargingStatusResType->EVSEStatus_isUsed = 0u; + iso2ChargingStatusResType->SAScheduleTupleID_isUsed = 0u; + iso2ChargingStatusResType->MeterInfo_isUsed = 0u; + iso2ChargingStatusResType->ReceiptRequired_isUsed = 0u; + iso2ChargingStatusResType->EVSETargetPower_isUsed = 0u; +} + +void init_iso2MeterInfoType(struct iso2MeterInfoType* iso2MeterInfoType) { + iso2MeterInfoType->MeterReadingCharged_isUsed = 0u; + iso2MeterInfoType->MeterReadingDischarged_isUsed = 0u; + iso2MeterInfoType->SigMeterReading_isUsed = 0u; + iso2MeterInfoType->MeterStatus_isUsed = 0u; + iso2MeterInfoType->TMeter_isUsed = 0u; +} + +void init_iso2AC_EVChargeParameterType(struct iso2AC_EVChargeParameterType* iso2AC_EVChargeParameterType) { + iso2AC_EVChargeParameterType->EVTargetEnergyRequest_isUsed = 0u; + iso2AC_EVChargeParameterType->EVMaximumEnergyRequest_isUsed = 0u; + iso2AC_EVChargeParameterType->EVMinimumEnergyRequest_isUsed = 0u; +} + +void init_iso2AC_EVSEBidirectionalParameterType(struct iso2AC_EVSEBidirectionalParameterType* iso2AC_EVSEBidirectionalParameterType) { + (void)iso2AC_EVSEBidirectionalParameterType; /* avoid unused warning */ +} + +void init_iso2VehicleCheckOutResType(struct iso2VehicleCheckOutResType* iso2VehicleCheckOutResType) { + iso2VehicleCheckOutResType->EVSEStatus_isUsed = 0u; +} + +void init_iso2MagneticVectorListType(struct iso2MagneticVectorListType* iso2MagneticVectorListType) { + iso2MagneticVectorListType->MagneticVector.arrayLen = 0u; +} + +void init_iso2CableCheckResType(struct iso2CableCheckResType* iso2CableCheckResType) { + iso2CableCheckResType->EVSEStatus_isUsed = 0u; +} + +void init_iso2ServiceDiscoveryReqType(struct iso2ServiceDiscoveryReqType* iso2ServiceDiscoveryReqType) { + iso2ServiceDiscoveryReqType->SupportedServiceIDs_isUsed = 0u; +} + +void init_iso2ServiceType(struct iso2ServiceType* iso2ServiceType) { + (void)iso2ServiceType; /* avoid unused warning */ +} + +void init_iso2ServiceParameterListType(struct iso2ServiceParameterListType* iso2ServiceParameterListType) { + iso2ServiceParameterListType->ParameterSet.arrayLen = 0u; +} + +void init_iso2PMaxScheduleType(struct iso2PMaxScheduleType* iso2PMaxScheduleType) { + iso2PMaxScheduleType->PMaxScheduleEntry.arrayLen = 0u; +} + +void init_iso2SignaturePropertiesType(struct iso2SignaturePropertiesType* iso2SignaturePropertiesType) { + iso2SignaturePropertiesType->Id_isUsed = 0u; + iso2SignaturePropertiesType->SignatureProperty.arrayLen = 0u; +} + +void init_iso2PMaxScheduleEntryType(struct iso2PMaxScheduleEntryType* iso2PMaxScheduleEntryType) { + iso2PMaxScheduleEntryType->PMax.arrayLen = 0u; +} + +void init_iso2SignatureType(struct iso2SignatureType* iso2SignatureType) { + iso2SignatureType->Id_isUsed = 0u; + iso2SignatureType->KeyInfo_isUsed = 0u; + iso2SignatureType->Object.arrayLen = 0u; +} + +void init_iso2VehicleCheckInReqType(struct iso2VehicleCheckInReqType* iso2VehicleCheckInReqType) { + iso2VehicleCheckInReqType->ParkingMethod_isUsed = 0u; +} + +void init_iso2ConnectChargingDeviceResType(struct iso2ConnectChargingDeviceResType* iso2ConnectChargingDeviceResType) { + iso2ConnectChargingDeviceResType->EVSEStatus_isUsed = 0u; +} + +void init_iso2WeldingDetectionResType(struct iso2WeldingDetectionResType* iso2WeldingDetectionResType) { + iso2WeldingDetectionResType->EVSEStatus_isUsed = 0u; +} + +void init_iso2SessionStopResType(struct iso2SessionStopResType* iso2SessionStopResType) { + iso2SessionStopResType->EVSEStatus_isUsed = 0u; +} + +void init_iso2VehicleCheckInResType(struct iso2VehicleCheckInResType* iso2VehicleCheckInResType) { + iso2VehicleCheckInResType->EVSEStatus_isUsed = 0u; + iso2VehicleCheckInResType->TargetOffset_isUsed = 0u; +} + +void init_iso2ServiceListType(struct iso2ServiceListType* iso2ServiceListType) { + iso2ServiceListType->Service.arrayLen = 0u; +} + +void init_iso2CertificateUpdateResType(struct iso2CertificateUpdateResType* iso2CertificateUpdateResType) { + iso2CertificateUpdateResType->EVSEStatus_isUsed = 0u; + iso2CertificateUpdateResType->RetryCounter_isUsed = 0u; +} + +void init_iso2FinePositioningSetupResType(struct iso2FinePositioningSetupResType* iso2FinePositioningSetupResType) { + iso2FinePositioningSetupResType->EVSEStatus_isUsed = 0u; + iso2FinePositioningSetupResType->EVSEFinePositioningSetupParameters_isUsed = 0u; + iso2FinePositioningSetupResType->LFA_EVSEFinePositioningSetupParameters_isUsed = 0u; + iso2FinePositioningSetupResType->MV_EVSEFinePositioningSetupParameters_isUsed = 0u; +} + +void init_iso2AC_EVBidirectionalParameterType(struct iso2AC_EVBidirectionalParameterType* iso2AC_EVBidirectionalParameterType) { + iso2AC_EVBidirectionalParameterType->EVTargetEnergyRequest_isUsed = 0u; + iso2AC_EVBidirectionalParameterType->EVMaximumEnergyRequest_isUsed = 0u; + iso2AC_EVBidirectionalParameterType->EVMinimumEnergyRequest_isUsed = 0u; +} + +void init_iso2DC_BidirectionalControlReqType(struct iso2DC_BidirectionalControlReqType* iso2DC_BidirectionalControlReqType) { + iso2DC_BidirectionalControlReqType->EVMaximumEnergyRequest_isUsed = 0u; + iso2DC_BidirectionalControlReqType->EVMinimumEnergyRequest_isUsed = 0u; + iso2DC_BidirectionalControlReqType->DisplayParameters_isUsed = 0u; + iso2DC_BidirectionalControlReqType->EVMaximumDischargeCurrent_isUsed = 0u; + iso2DC_BidirectionalControlReqType->EVMaximumChargePower_isUsed = 0u; + iso2DC_BidirectionalControlReqType->EVMaximumDischargePower_isUsed = 0u; +} + +void init_iso2CertificateUpdateReqType(struct iso2CertificateUpdateReqType* iso2CertificateUpdateReqType) { + (void)iso2CertificateUpdateReqType; /* avoid unused warning */ +} + +void init_iso2ConsumptionCostType(struct iso2ConsumptionCostType* iso2ConsumptionCostType) { + iso2ConsumptionCostType->Cost.arrayLen = 0u; +} + +void init_iso2SAScheduleListType(struct iso2SAScheduleListType* iso2SAScheduleListType) { + iso2SAScheduleListType->SAScheduleTuple.arrayLen = 0u; +} + +void init_iso2MagneticVectorSetupType(struct iso2MagneticVectorSetupType* iso2MagneticVectorSetupType) { + (void)iso2MagneticVectorSetupType; /* avoid unused warning */ +} + +void init_iso2LFA_EVSEFinePositioningSetupParametersType(struct iso2LFA_EVSEFinePositioningSetupParametersType* iso2LFA_EVSEFinePositioningSetupParametersType) { + (void)iso2LFA_EVSEFinePositioningSetupParametersType; /* avoid unused warning */ +} + +void init_iso2PaymentOptionListType(struct iso2PaymentOptionListType* iso2PaymentOptionListType) { + iso2PaymentOptionListType->PaymentOption.arrayLen = 0u; +} + +void init_iso2LFA_EVSEFinePositioningParametersType(struct iso2LFA_EVSEFinePositioningParametersType* iso2LFA_EVSEFinePositioningParametersType) { + (void)iso2LFA_EVSEFinePositioningParametersType; /* avoid unused warning */ +} + +void init_iso2RelativeTimeIntervalType(struct iso2RelativeTimeIntervalType* iso2RelativeTimeIntervalType) { + iso2RelativeTimeIntervalType->duration_isUsed = 0u; +} + +void init_iso2EVFinePositioningParametersType(struct iso2EVFinePositioningParametersType* iso2EVFinePositioningParametersType) { + (void)iso2EVFinePositioningParametersType; /* avoid unused warning */ +} + +void init_iso2AlignmentCheckReqType(struct iso2AlignmentCheckReqType* iso2AlignmentCheckReqType) { + iso2AlignmentCheckReqType->AlignmentCheckParameters_isUsed = 0u; +} + +void init_iso2CertificateInstallationReqType(struct iso2CertificateInstallationReqType* iso2CertificateInstallationReqType) { + (void)iso2CertificateInstallationReqType; /* avoid unused warning */ +} + +void init_iso2TransformsType(struct iso2TransformsType* iso2TransformsType) { + iso2TransformsType->Transform.arrayLen = 0u; +} + +void init_iso2ObjectType(struct iso2ObjectType* iso2ObjectType) { + iso2ObjectType->Id_isUsed = 0u; + iso2ObjectType->MimeType_isUsed = 0u; + iso2ObjectType->Encoding_isUsed = 0u; + iso2ObjectType->ANY_isUsed = 0u; +} + +void init_iso2SensorOrderListType(struct iso2SensorOrderListType* iso2SensorOrderListType) { + iso2SensorOrderListType->SensorPosition.arrayLen = 0u; +} + +void init_iso2ChargeParameterDiscoveryReqType(struct iso2ChargeParameterDiscoveryReqType* iso2ChargeParameterDiscoveryReqType) { + iso2ChargeParameterDiscoveryReqType->MaxSupportingPoints_isUsed = 0u; + iso2ChargeParameterDiscoveryReqType->EVEnergyTransferParameter_isUsed = 0u; + iso2ChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed = 0u; + iso2ChargeParameterDiscoveryReqType->AC_EVBidirectionalParameter_isUsed = 0u; + iso2ChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed = 0u; + iso2ChargeParameterDiscoveryReqType->DC_EVBidirectionalParameter_isUsed = 0u; + iso2ChargeParameterDiscoveryReqType->WPT_EVChargeParameter_isUsed = 0u; + iso2ChargeParameterDiscoveryReqType->MinimumPMaxRequest_isUsed = 0u; +} + +void init_iso2ParameterType(struct iso2ParameterType* iso2ParameterType) { + iso2ParameterType->boolValue_isUsed = 0u; + iso2ParameterType->byteValue_isUsed = 0u; + iso2ParameterType->shortValue_isUsed = 0u; + iso2ParameterType->intValue_isUsed = 0u; + iso2ParameterType->physicalValue_isUsed = 0u; + iso2ParameterType->stringValue_isUsed = 0u; +} + +void init_iso2SessionStopReqType(struct iso2SessionStopReqType* iso2SessionStopReqType) { + (void)iso2SessionStopReqType; /* avoid unused warning */ +} + +void init_iso2SensorMeasurementsType(struct iso2SensorMeasurementsType* iso2SensorMeasurementsType) { + (void)iso2SensorMeasurementsType; /* avoid unused warning */ +} + +void init_iso2DC_EVSEChargeParameterType(struct iso2DC_EVSEChargeParameterType* iso2DC_EVSEChargeParameterType) { + iso2DC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed = 0u; + iso2DC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed = 0u; +} + +void init_iso2SensorPackageListType(struct iso2SensorPackageListType* iso2SensorPackageListType) { + iso2SensorPackageListType->SensorPackage.arrayLen = 0u; +} + +void init_iso2MeasurementDataListType(struct iso2MeasurementDataListType* iso2MeasurementDataListType) { + iso2MeasurementDataListType->MeasurementData.arrayLen = 0u; +} + +void init_iso2CertificateChainType(struct iso2CertificateChainType* iso2CertificateChainType) { + iso2CertificateChainType->Id_isUsed = 0u; + iso2CertificateChainType->SubCertificates_isUsed = 0u; +} + +void init_iso2SignaturePropertyType(struct iso2SignaturePropertyType* iso2SignaturePropertyType) { + iso2SignaturePropertyType->Id_isUsed = 0u; + iso2SignaturePropertyType->ANY_isUsed = 0u; +} + +void init_iso2TransformType(struct iso2TransformType* iso2TransformType) { + iso2TransformType->ANY_isUsed = 0u; + iso2TransformType->XPath.arrayLen = 0u; +} + +void init_iso2EMAIDType(struct iso2EMAIDType* iso2EMAIDType) { + (void)iso2EMAIDType; /* avoid unused warning */ +} + +void init_iso2DSAKeyValueType(struct iso2DSAKeyValueType* iso2DSAKeyValueType) { + iso2DSAKeyValueType->P_isUsed = 0u; + iso2DSAKeyValueType->Q_isUsed = 0u; + iso2DSAKeyValueType->G_isUsed = 0u; + iso2DSAKeyValueType->J_isUsed = 0u; + iso2DSAKeyValueType->Seed_isUsed = 0u; + iso2DSAKeyValueType->PgenCounter_isUsed = 0u; +} + +void init_iso2EntryType(struct iso2EntryType* iso2EntryType) { + (void)iso2EntryType; /* avoid unused warning */ +} + +void init_iso2MessageHeaderType(struct iso2MessageHeaderType* iso2MessageHeaderType) { + iso2MessageHeaderType->Signature_isUsed = 0u; +} + +void init_iso2WPT_EVChargeParameterType(struct iso2WPT_EVChargeParameterType* iso2WPT_EVChargeParameterType) { + iso2WPT_EVChargeParameterType->EVTargetEnergyRequest_isUsed = 0u; + iso2WPT_EVChargeParameterType->EVMaximumEnergyRequest_isUsed = 0u; + iso2WPT_EVChargeParameterType->EVMinimumEnergyRequest_isUsed = 0u; +} + +void init_iso2DisconnectChargingDeviceReqType(struct iso2DisconnectChargingDeviceReqType* iso2DisconnectChargingDeviceReqType) { + (void)iso2DisconnectChargingDeviceReqType; /* avoid unused warning */ +} + +void init_iso2ChargeLoopReqType(struct iso2ChargeLoopReqType* iso2ChargeLoopReqType) { + iso2ChargeLoopReqType->EVMaximumEnergyRequest_isUsed = 0u; + iso2ChargeLoopReqType->EVMinimumEnergyRequest_isUsed = 0u; + iso2ChargeLoopReqType->DisplayParameters_isUsed = 0u; +} + +void init_iso2V2GRequestType(struct iso2V2GRequestType* iso2V2GRequestType) { + (void)iso2V2GRequestType; /* avoid unused warning */ +} + +void init_iso2MeteringReceiptResType(struct iso2MeteringReceiptResType* iso2MeteringReceiptResType) { + iso2MeteringReceiptResType->EVSEStatus_isUsed = 0u; +} + +void init_iso2SessionSetupResType(struct iso2SessionSetupResType* iso2SessionSetupResType) { + iso2SessionSetupResType->EVSEStatus_isUsed = 0u; + iso2SessionSetupResType->EVSETimeStamp_isUsed = 0u; +} + +void init_iso2AC_BidirectionalControlReqType(struct iso2AC_BidirectionalControlReqType* iso2AC_BidirectionalControlReqType) { + iso2AC_BidirectionalControlReqType->EVMaximumEnergyRequest_isUsed = 0u; + iso2AC_BidirectionalControlReqType->EVMinimumEnergyRequest_isUsed = 0u; + iso2AC_BidirectionalControlReqType->DisplayParameters_isUsed = 0u; + iso2AC_BidirectionalControlReqType->EVOperation_isUsed = 0u; + iso2AC_BidirectionalControlReqType->EVMaximumDischargePower_isUsed = 0u; + iso2AC_BidirectionalControlReqType->EVMaximumDischargeCurrent_isUsed = 0u; + iso2AC_BidirectionalControlReqType->EVMinimumDischargeCurrent_isUsed = 0u; +} + +void init_iso2MV_EVSEFinePositioningParametersType(struct iso2MV_EVSEFinePositioningParametersType* iso2MV_EVSEFinePositioningParametersType) { + (void)iso2MV_EVSEFinePositioningParametersType; /* avoid unused warning */ +} + +void init_iso2ReferenceType(struct iso2ReferenceType* iso2ReferenceType) { + iso2ReferenceType->Id_isUsed = 0u; + iso2ReferenceType->URI_isUsed = 0u; + iso2ReferenceType->Type_isUsed = 0u; + iso2ReferenceType->Transforms_isUsed = 0u; +} + +void init_iso2EVSEEnergyTransferParameterType(struct iso2EVSEEnergyTransferParameterType* iso2EVSEEnergyTransferParameterType) { + (void)iso2EVSEEnergyTransferParameterType; /* avoid unused warning */ +} + +void init_iso2MeteringReceiptReqType(struct iso2MeteringReceiptReqType* iso2MeteringReceiptReqType) { + iso2MeteringReceiptReqType->SAScheduleTupleID_isUsed = 0u; +} + +void init_iso2KeyValueType(struct iso2KeyValueType* iso2KeyValueType) { + iso2KeyValueType->DSAKeyValue_isUsed = 0u; + iso2KeyValueType->RSAKeyValue_isUsed = 0u; + iso2KeyValueType->ANY_isUsed = 0u; +} + +void init_iso2SensorListType(struct iso2SensorListType* iso2SensorListType) { + iso2SensorListType->Sensor.arrayLen = 0u; +} + +void init_iso2CurrentDemandReqType(struct iso2CurrentDemandReqType* iso2CurrentDemandReqType) { + iso2CurrentDemandReqType->EVMaximumEnergyRequest_isUsed = 0u; + iso2CurrentDemandReqType->EVMinimumEnergyRequest_isUsed = 0u; + iso2CurrentDemandReqType->DisplayParameters_isUsed = 0u; + iso2CurrentDemandReqType->EVMaximumCurrent_isUsed = 0u; + iso2CurrentDemandReqType->EVMaximumPower_isUsed = 0u; + iso2CurrentDemandReqType->EVMaximumVoltage_isUsed = 0u; +} + +void init_iso2FinePositioningSetupReqType(struct iso2FinePositioningSetupReqType* iso2FinePositioningSetupReqType) { + iso2FinePositioningSetupReqType->EVFinePositioningSetupParameters_isUsed = 0u; + iso2FinePositioningSetupReqType->LFA_EVFinePositioningSetupParameters_isUsed = 0u; +} + +void init_iso2LFA_EVFinePositioningSetupParametersType(struct iso2LFA_EVFinePositioningSetupParametersType* iso2LFA_EVFinePositioningSetupParametersType) { + (void)iso2LFA_EVFinePositioningSetupParametersType; /* avoid unused warning */ +} + +void init_iso2SAScheduleTupleType(struct iso2SAScheduleTupleType* iso2SAScheduleTupleType) { + iso2SAScheduleTupleType->PMaxDischargeSchedule_isUsed = 0u; + iso2SAScheduleTupleType->SalesTariff_isUsed = 0u; + iso2SAScheduleTupleType->BuyBackTariff_isUsed = 0u; +} + +void init_iso2WPT_EVSEChargeParameterType(struct iso2WPT_EVSEChargeParameterType* iso2WPT_EVSEChargeParameterType) { + (void)iso2WPT_EVSEChargeParameterType; /* avoid unused warning */ +} + +void init_iso2FinePositioningResType(struct iso2FinePositioningResType* iso2FinePositioningResType) { + iso2FinePositioningResType->EVSEStatus_isUsed = 0u; + iso2FinePositioningResType->EVSEFinePositioningParameters_isUsed = 0u; + iso2FinePositioningResType->Generic_EVSEFinePositioningParameters_isUsed = 0u; + iso2FinePositioningResType->LFA_EVSEFinePositioningParameters_isUsed = 0u; + iso2FinePositioningResType->MV_EVSEFinePositioningParameters_isUsed = 0u; +} + +void init_iso2BodyBaseType(struct iso2BodyBaseType* iso2BodyBaseType) { + (void)iso2BodyBaseType; /* avoid unused warning */ +} + +void init_iso2ServiceDetailResType(struct iso2ServiceDetailResType* iso2ServiceDetailResType) { + iso2ServiceDetailResType->EVSEStatus_isUsed = 0u; + iso2ServiceDetailResType->ServiceParameterList_isUsed = 0u; +} + +void init_iso2PowerDeliveryReqType(struct iso2PowerDeliveryReqType* iso2PowerDeliveryReqType) { + iso2PowerDeliveryReqType->EVOperation_isUsed = 0u; + iso2PowerDeliveryReqType->SAScheduleTupleID_isUsed = 0u; + iso2PowerDeliveryReqType->ChargingProfile_isUsed = 0u; +} + +void init_iso2PairingResType(struct iso2PairingResType* iso2PairingResType) { + iso2PairingResType->EVSEStatus_isUsed = 0u; + iso2PairingResType->PairingParameters_isUsed = 0u; +} + +void init_iso2AuthorizationReqType(struct iso2AuthorizationReqType* iso2AuthorizationReqType) { + iso2AuthorizationReqType->Id_isUsed = 0u; + iso2AuthorizationReqType->GenChallenge_isUsed = 0u; +} + +void init_iso2ParameterSetType(struct iso2ParameterSetType* iso2ParameterSetType) { + iso2ParameterSetType->Parameter.arrayLen = 0u; +} + +void init_iso2SPKIDataType(struct iso2SPKIDataType* iso2SPKIDataType) { + iso2SPKIDataType->SPKISexp.arrayLen = 0u; + iso2SPKIDataType->ANY_isUsed = 0u; +} + +void init_iso2PaymentDetailsResType(struct iso2PaymentDetailsResType* iso2PaymentDetailsResType) { + iso2PaymentDetailsResType->EVSEStatus_isUsed = 0u; +} + +void init_iso2SignatureMethodType(struct iso2SignatureMethodType* iso2SignatureMethodType) { + iso2SignatureMethodType->HMACOutputLength_isUsed = 0u; + iso2SignatureMethodType->ANY_isUsed = 0u; +} + +void init_iso2AC_BidirectionalControlResType(struct iso2AC_BidirectionalControlResType* iso2AC_BidirectionalControlResType) { + iso2AC_BidirectionalControlResType->EVSEStatus_isUsed = 0u; + iso2AC_BidirectionalControlResType->SAScheduleTupleID_isUsed = 0u; + iso2AC_BidirectionalControlResType->MeterInfo_isUsed = 0u; + iso2AC_BidirectionalControlResType->ReceiptRequired_isUsed = 0u; +} + +void init_iso2VehicleCheckOutReqType(struct iso2VehicleCheckOutReqType* iso2VehicleCheckOutReqType) { + (void)iso2VehicleCheckOutReqType; /* avoid unused warning */ +} + +void init_iso2WeldingDetectionReqType(struct iso2WeldingDetectionReqType* iso2WeldingDetectionReqType) { + (void)iso2WeldingDetectionReqType; /* avoid unused warning */ +} + +void init_iso2AlignmentCheckResType(struct iso2AlignmentCheckResType* iso2AlignmentCheckResType) { + iso2AlignmentCheckResType->EVSEStatus_isUsed = 0u; + iso2AlignmentCheckResType->AlignmentCheckParameters_isUsed = 0u; +} + +void init_iso2PowerDemandReqType(struct iso2PowerDemandReqType* iso2PowerDemandReqType) { + iso2PowerDemandReqType->EVMaximumEnergyRequest_isUsed = 0u; + iso2PowerDemandReqType->EVMinimumEnergyRequest_isUsed = 0u; + iso2PowerDemandReqType->DisplayParameters_isUsed = 0u; + iso2PowerDemandReqType->PowerDemandParameters_isUsed = 0u; +} + +void init_iso2MinimumPMaxRequestType(struct iso2MinimumPMaxRequestType* iso2MinimumPMaxRequestType) { + iso2MinimumPMaxRequestType->MinimumPMaxScheduleEntry.arrayLen = 0u; +} + +void init_iso2DisconnectChargingDeviceResType(struct iso2DisconnectChargingDeviceResType* iso2DisconnectChargingDeviceResType) { + iso2DisconnectChargingDeviceResType->EVSEStatus_isUsed = 0u; +} + +void init_iso2SessionSetupReqType(struct iso2SessionSetupReqType* iso2SessionSetupReqType) { + (void)iso2SessionSetupReqType; /* avoid unused warning */ +} + +void init_iso2PaymentDetailsReqType(struct iso2PaymentDetailsReqType* iso2PaymentDetailsReqType) { + (void)iso2PaymentDetailsReqType; /* avoid unused warning */ +} + +void init_iso2Generic_EVFinePositioningParametersType(struct iso2Generic_EVFinePositioningParametersType* iso2Generic_EVFinePositioningParametersType) { + (void)iso2Generic_EVFinePositioningParametersType; /* avoid unused warning */ +} + +void init_iso2ConnectChargingDeviceReqType(struct iso2ConnectChargingDeviceReqType* iso2ConnectChargingDeviceReqType) { + (void)iso2ConnectChargingDeviceReqType; /* avoid unused warning */ +} + +void init_iso2AC_EVSEChargeParameterType(struct iso2AC_EVSEChargeParameterType* iso2AC_EVSEChargeParameterType) { + (void)iso2AC_EVSEChargeParameterType; /* avoid unused warning */ +} + +void init_iso2SalesTariffEntryType(struct iso2SalesTariffEntryType* iso2SalesTariffEntryType) { + iso2SalesTariffEntryType->EPriceLevel_isUsed = 0u; + iso2SalesTariffEntryType->ConsumptionCost.arrayLen = 0u; +} + +void init_iso2DC_EVSEBidirectionalParameterType(struct iso2DC_EVSEBidirectionalParameterType* iso2DC_EVSEBidirectionalParameterType) { + iso2DC_EVSEBidirectionalParameterType->EVSECurrentRegulationTolerance_isUsed = 0u; + iso2DC_EVSEBidirectionalParameterType->EVSEEnergyToBeDelivered_isUsed = 0u; +} + +void init_iso2CanonicalizationMethodType(struct iso2CanonicalizationMethodType* iso2CanonicalizationMethodType) { + iso2CanonicalizationMethodType->ANY_isUsed = 0u; +} + +void init_iso2DisplayParametersType(struct iso2DisplayParametersType* iso2DisplayParametersType) { + iso2DisplayParametersType->CurrentRange_isUsed = 0u; + iso2DisplayParametersType->CurrentSOC_isUsed = 0u; + iso2DisplayParametersType->TargetSOC_isUsed = 0u; + iso2DisplayParametersType->BulkSOC_isUsed = 0u; + iso2DisplayParametersType->MinimumSOC_isUsed = 0u; + iso2DisplayParametersType->ChargingPerformance_isUsed = 0u; + iso2DisplayParametersType->RemainingTimeToTargetSOC_isUsed = 0u; + iso2DisplayParametersType->RemainingTimeToBulkSOC_isUsed = 0u; + iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed = 0u; + iso2DisplayParametersType->ChargingComplete_isUsed = 0u; + iso2DisplayParametersType->BulkChargingComplete_isUsed = 0u; + iso2DisplayParametersType->InletHot_isUsed = 0u; +} + +void init_iso2DC_EVBidirectionalParameterType(struct iso2DC_EVBidirectionalParameterType* iso2DC_EVBidirectionalParameterType) { + iso2DC_EVBidirectionalParameterType->EVMaximumChargePower_isUsed = 0u; + iso2DC_EVBidirectionalParameterType->EVMinimumChargePower_isUsed = 0u; + iso2DC_EVBidirectionalParameterType->EVTargetEnergyRequest_isUsed = 0u; + iso2DC_EVBidirectionalParameterType->EVMaximumEnergyRequest_isUsed = 0u; + iso2DC_EVBidirectionalParameterType->EVMinimumEnergyRequest_isUsed = 0u; + iso2DC_EVBidirectionalParameterType->CurrentSOC_isUsed = 0u; + iso2DC_EVBidirectionalParameterType->TargetSOC_isUsed = 0u; + iso2DC_EVBidirectionalParameterType->BulkSOC_isUsed = 0u; + iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower_isUsed = 0u; + iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower_isUsed = 0u; + iso2DC_EVBidirectionalParameterType->MinimumSOC_isUsed = 0u; +} + +void init_iso2PaymentServiceSelectionReqType(struct iso2PaymentServiceSelectionReqType* iso2PaymentServiceSelectionReqType) { + iso2PaymentServiceSelectionReqType->SelectedVASList_isUsed = 0u; +} + +void init_iso2MagneticVectorType(struct iso2MagneticVectorType* iso2MagneticVectorType) { + (void)iso2MagneticVectorType; /* avoid unused warning */ +} + +void init_iso2PhysicalValueType(struct iso2PhysicalValueType* iso2PhysicalValueType) { + (void)iso2PhysicalValueType; /* avoid unused warning */ +} + +void init_iso2SystemStatusReqType(struct iso2SystemStatusReqType* iso2SystemStatusReqType) { + (void)iso2SystemStatusReqType; /* avoid unused warning */ +} + +void init_iso2SystemStatusResType(struct iso2SystemStatusResType* iso2SystemStatusResType) { + iso2SystemStatusResType->EVSEStatus_isUsed = 0u; +} + +void init_iso2EVSEFinePositioningSetupParametersType(struct iso2EVSEFinePositioningSetupParametersType* iso2EVSEFinePositioningSetupParametersType) { + (void)iso2EVSEFinePositioningSetupParametersType; /* avoid unused warning */ +} + +void init_iso2V2GResponseType(struct iso2V2GResponseType* iso2V2GResponseType) { + iso2V2GResponseType->EVSEStatus_isUsed = 0u; +} + +void init_iso2BodyType(struct iso2BodyType* iso2BodyType) { + iso2BodyType->BodyElement_isUsed = 0u; + iso2BodyType->V2GRequest_isUsed = 0u; + iso2BodyType->DisconnectChargingDeviceReq_isUsed = 0u; + iso2BodyType->ConnectChargingDeviceReq_isUsed = 0u; + iso2BodyType->SystemStatusReq_isUsed = 0u; + iso2BodyType->DC_BidirectionalControlReq_isUsed = 0u; + iso2BodyType->AC_BidirectionalControlReq_isUsed = 0u; + iso2BodyType->VehicleCheckOutReq_isUsed = 0u; + iso2BodyType->VehicleCheckInReq_isUsed = 0u; + iso2BodyType->PowerDemandReq_isUsed = 0u; + iso2BodyType->PairingReq_isUsed = 0u; + iso2BodyType->AlignmentCheckReq_isUsed = 0u; + iso2BodyType->FinePositioningReq_isUsed = 0u; + iso2BodyType->FinePositioningSetupReq_isUsed = 0u; + iso2BodyType->WeldingDetectionReq_isUsed = 0u; + iso2BodyType->CurrentDemandReq_isUsed = 0u; + iso2BodyType->PreChargeReq_isUsed = 0u; + iso2BodyType->CableCheckReq_isUsed = 0u; + iso2BodyType->ChargingStatusReq_isUsed = 0u; + iso2BodyType->CertificateInstallationReq_isUsed = 0u; + iso2BodyType->CertificateUpdateReq_isUsed = 0u; + iso2BodyType->SessionStopReq_isUsed = 0u; + iso2BodyType->MeteringReceiptReq_isUsed = 0u; + iso2BodyType->PowerDeliveryReq_isUsed = 0u; + iso2BodyType->ChargeParameterDiscoveryReq_isUsed = 0u; + iso2BodyType->AuthorizationReq_isUsed = 0u; + iso2BodyType->PaymentDetailsReq_isUsed = 0u; + iso2BodyType->PaymentServiceSelectionReq_isUsed = 0u; + iso2BodyType->ServiceDetailReq_isUsed = 0u; + iso2BodyType->ServiceDiscoveryReq_isUsed = 0u; + iso2BodyType->SessionSetupReq_isUsed = 0u; + iso2BodyType->V2GResponse_isUsed = 0u; + iso2BodyType->DisconnectChargingDeviceRes_isUsed = 0u; + iso2BodyType->ConnectChargingDeviceRes_isUsed = 0u; + iso2BodyType->SystemStatusRes_isUsed = 0u; + iso2BodyType->DC_BidirectionalControlRes_isUsed = 0u; + iso2BodyType->AC_BidirectionalControlRes_isUsed = 0u; + iso2BodyType->VehicleCheckOutRes_isUsed = 0u; + iso2BodyType->VehicleCheckInRes_isUsed = 0u; + iso2BodyType->PowerDemandRes_isUsed = 0u; + iso2BodyType->PairingRes_isUsed = 0u; + iso2BodyType->AlignmentCheckRes_isUsed = 0u; + iso2BodyType->FinePositioningRes_isUsed = 0u; + iso2BodyType->FinePositioningSetupRes_isUsed = 0u; + iso2BodyType->WeldingDetectionRes_isUsed = 0u; + iso2BodyType->CurrentDemandRes_isUsed = 0u; + iso2BodyType->PreChargeRes_isUsed = 0u; + iso2BodyType->CableCheckRes_isUsed = 0u; + iso2BodyType->ChargingStatusRes_isUsed = 0u; + iso2BodyType->CertificateInstallationRes_isUsed = 0u; + iso2BodyType->CertificateUpdateRes_isUsed = 0u; + iso2BodyType->SessionStopRes_isUsed = 0u; + iso2BodyType->MeteringReceiptRes_isUsed = 0u; + iso2BodyType->PowerDeliveryRes_isUsed = 0u; + iso2BodyType->ChargeParameterDiscoveryRes_isUsed = 0u; + iso2BodyType->AuthorizationRes_isUsed = 0u; + iso2BodyType->PaymentDetailsRes_isUsed = 0u; + iso2BodyType->PaymentServiceSelectionRes_isUsed = 0u; + iso2BodyType->ServiceDetailRes_isUsed = 0u; + iso2BodyType->ServiceDiscoveryRes_isUsed = 0u; + iso2BodyType->SessionSetupRes_isUsed = 0u; +} + +void init_iso2PreChargeResType(struct iso2PreChargeResType* iso2PreChargeResType) { + iso2PreChargeResType->EVSEStatus_isUsed = 0u; +} + +void init_iso2EVSEFinePositioningParametersType(struct iso2EVSEFinePositioningParametersType* iso2EVSEFinePositioningParametersType) { + (void)iso2EVSEFinePositioningParametersType; /* avoid unused warning */ +} + +void init_iso2PaymentServiceSelectionResType(struct iso2PaymentServiceSelectionResType* iso2PaymentServiceSelectionResType) { + iso2PaymentServiceSelectionResType->EVSEStatus_isUsed = 0u; +} + +void init_iso2DigestMethodType(struct iso2DigestMethodType* iso2DigestMethodType) { + iso2DigestMethodType->ANY_isUsed = 0u; +} + +void init_iso2TargetPositionType(struct iso2TargetPositionType* iso2TargetPositionType) { + (void)iso2TargetPositionType; /* avoid unused warning */ +} + +void init_iso2LFA_EVFinePositioningParametersType(struct iso2LFA_EVFinePositioningParametersType* iso2LFA_EVFinePositioningParametersType) { + (void)iso2LFA_EVFinePositioningParametersType; /* avoid unused warning */ +} + +void init_iso2DC_EVChargeParameterType(struct iso2DC_EVChargeParameterType* iso2DC_EVChargeParameterType) { + iso2DC_EVChargeParameterType->EVMaximumChargePower_isUsed = 0u; + iso2DC_EVChargeParameterType->EVMinimumChargePower_isUsed = 0u; + iso2DC_EVChargeParameterType->EVTargetEnergyRequest_isUsed = 0u; + iso2DC_EVChargeParameterType->EVMaximumEnergyRequest_isUsed = 0u; + iso2DC_EVChargeParameterType->EVMinimumEnergyRequest_isUsed = 0u; + iso2DC_EVChargeParameterType->CurrentSOC_isUsed = 0u; + iso2DC_EVChargeParameterType->TargetSOC_isUsed = 0u; + iso2DC_EVChargeParameterType->BulkSOC_isUsed = 0u; +} + +void init_iso2ServiceDetailReqType(struct iso2ServiceDetailReqType* iso2ServiceDetailReqType) { + (void)iso2ServiceDetailReqType; /* avoid unused warning */ +} + +void init_iso2PreChargeReqType(struct iso2PreChargeReqType* iso2PreChargeReqType) { + (void)iso2PreChargeReqType; /* avoid unused warning */ +} + +void init_iso2ManifestType(struct iso2ManifestType* iso2ManifestType) { + iso2ManifestType->Id_isUsed = 0u; + iso2ManifestType->Reference.arrayLen = 0u; +} + +void init_iso2AnonType_V2G_Message(struct iso2AnonType_V2G_Message* iso2AnonType_V2G_Message) { + (void)iso2AnonType_V2G_Message; /* avoid unused warning */ +} + +void init_iso2SelectedServiceListType(struct iso2SelectedServiceListType* iso2SelectedServiceListType) { + iso2SelectedServiceListType->SelectedService.arrayLen = 0u; +} + +void init_iso2Generic_EVSEFinePositioningParametersType(struct iso2Generic_EVSEFinePositioningParametersType* iso2Generic_EVSEFinePositioningParametersType) { + (void)iso2Generic_EVSEFinePositioningParametersType; /* avoid unused warning */ +} + +void init_iso2CartesianCoordinatesType(struct iso2CartesianCoordinatesType* iso2CartesianCoordinatesType) { + (void)iso2CartesianCoordinatesType; /* avoid unused warning */ +} + +void init_iso2KeyInfoType(struct iso2KeyInfoType* iso2KeyInfoType) { + iso2KeyInfoType->Id_isUsed = 0u; + iso2KeyInfoType->KeyName.arrayLen = 0u; + iso2KeyInfoType->KeyValue.arrayLen = 0u; + iso2KeyInfoType->RetrievalMethod.arrayLen = 0u; + iso2KeyInfoType->X509Data.arrayLen = 0u; + iso2KeyInfoType->PGPData.arrayLen = 0u; + iso2KeyInfoType->SPKIData.arrayLen = 0u; + iso2KeyInfoType->MgmtData.arrayLen = 0u; + iso2KeyInfoType->ANY_isUsed = 0u; +} + +void init_iso2SubCertificatesType(struct iso2SubCertificatesType* iso2SubCertificatesType) { + iso2SubCertificatesType->Certificate.arrayLen = 0u; +} + +void init_iso2ListOfRootCertificateIDsType(struct iso2ListOfRootCertificateIDsType* iso2ListOfRootCertificateIDsType) { + iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen = 0u; +} + +void init_iso2EVEnergyTransferParameterType(struct iso2EVEnergyTransferParameterType* iso2EVEnergyTransferParameterType) { + (void)iso2EVEnergyTransferParameterType; /* avoid unused warning */ +} + +void init_iso2ContractSignatureEncryptedPrivateKeyType(struct iso2ContractSignatureEncryptedPrivateKeyType* iso2ContractSignatureEncryptedPrivateKeyType) { + (void)iso2ContractSignatureEncryptedPrivateKeyType; /* avoid unused warning */ +} + +void init_iso2MagneticVectorSetupListType(struct iso2MagneticVectorSetupListType* iso2MagneticVectorSetupListType) { + iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen = 0u; +} + +void init_iso2PairingReqType(struct iso2PairingReqType* iso2PairingReqType) { + iso2PairingReqType->PairingParameters_isUsed = 0u; +} + +void init_iso2CurrentDemandResType(struct iso2CurrentDemandResType* iso2CurrentDemandResType) { + iso2CurrentDemandResType->EVSEStatus_isUsed = 0u; + iso2CurrentDemandResType->EVSEMaximumPower_isUsed = 0u; + iso2CurrentDemandResType->EVSEMaximumCurrent_isUsed = 0u; + iso2CurrentDemandResType->EVSEMaximumVoltage_isUsed = 0u; + iso2CurrentDemandResType->SAScheduleTupleID_isUsed = 0u; + iso2CurrentDemandResType->MeterInfo_isUsed = 0u; + iso2CurrentDemandResType->ReceiptRequired_isUsed = 0u; +} + +void init_iso2X509IssuerSerialType(struct iso2X509IssuerSerialType* iso2X509IssuerSerialType) { + (void)iso2X509IssuerSerialType; /* avoid unused warning */ +} + +void init_iso2ChargingStatusReqType(struct iso2ChargingStatusReqType* iso2ChargingStatusReqType) { + iso2ChargingStatusReqType->EVMaximumEnergyRequest_isUsed = 0u; + iso2ChargingStatusReqType->EVMinimumEnergyRequest_isUsed = 0u; + iso2ChargingStatusReqType->DisplayParameters_isUsed = 0u; + iso2ChargingStatusReqType->EVMaximumChargePower_isUsed = 0u; + iso2ChargingStatusReqType->EVMaximumChargeCurrent_isUsed = 0u; + iso2ChargingStatusReqType->EVMinimumChargeCurrent_isUsed = 0u; +} + +void init_iso2CertificateInstallationResType(struct iso2CertificateInstallationResType* iso2CertificateInstallationResType) { + iso2CertificateInstallationResType->EVSEStatus_isUsed = 0u; +} + +void init_iso2SensorPackageType(struct iso2SensorPackageType* iso2SensorPackageType) { + iso2SensorPackageType->SensorMeasurements.arrayLen = 0u; +} + +void init_iso2PGPDataType(struct iso2PGPDataType* iso2PGPDataType) { + iso2PGPDataType->PGPKeyID_isUsed = 0u; + iso2PGPDataType->PGPKeyPacket_isUsed = 0u; + iso2PGPDataType->ANY_isUsed = 0u; +} + +void init_iso2ServiceDiscoveryResType(struct iso2ServiceDiscoveryResType* iso2ServiceDiscoveryResType) { + iso2ServiceDiscoveryResType->EVSEStatus_isUsed = 0u; + iso2ServiceDiscoveryResType->VASList_isUsed = 0u; +} + +void init_iso2ServiceIDListType(struct iso2ServiceIDListType* iso2ServiceIDListType) { + iso2ServiceIDListType->ServiceID.arrayLen = 0u; +} + +void init_iso2EVFinePositioningSetupParametersType(struct iso2EVFinePositioningSetupParametersType* iso2EVFinePositioningSetupParametersType) { + (void)iso2EVFinePositioningSetupParametersType; /* avoid unused warning */ +} + +void init_iso2ChargeParameterDiscoveryResType(struct iso2ChargeParameterDiscoveryResType* iso2ChargeParameterDiscoveryResType) { + iso2ChargeParameterDiscoveryResType->EVSEStatus_isUsed = 0u; + iso2ChargeParameterDiscoveryResType->SAScheduleList_isUsed = 0u; + iso2ChargeParameterDiscoveryResType->EVSEEnergyTransferParameter_isUsed = 0u; + iso2ChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed = 0u; + iso2ChargeParameterDiscoveryResType->AC_EVSEBidirectionalParameter_isUsed = 0u; + iso2ChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed = 0u; + iso2ChargeParameterDiscoveryResType->DC_EVSEBidirectionalParameter_isUsed = 0u; + iso2ChargeParameterDiscoveryResType->WPT_EVSEChargeParameter_isUsed = 0u; +} + +void init_iso2PowerDemandResType(struct iso2PowerDemandResType* iso2PowerDemandResType) { + iso2PowerDemandResType->EVSEStatus_isUsed = 0u; + iso2PowerDemandResType->SAScheduleTupleID_isUsed = 0u; + iso2PowerDemandResType->MeterInfo_isUsed = 0u; + iso2PowerDemandResType->ReceiptRequired_isUsed = 0u; + iso2PowerDemandResType->PowerDemandParameters_isUsed = 0u; +} + +void init_iso2ChargingProfileType(struct iso2ChargingProfileType* iso2ChargingProfileType) { + iso2ChargingProfileType->ProfileEntry.arrayLen = 0u; +} + +void init_iso2FinePositioningReqType(struct iso2FinePositioningReqType* iso2FinePositioningReqType) { + iso2FinePositioningReqType->EVFinePositioningParameters_isUsed = 0u; + iso2FinePositioningReqType->Generic_EVFinePositioningParameters_isUsed = 0u; + iso2FinePositioningReqType->LFA_EVFinePositioningParameters_isUsed = 0u; +} + +void init_iso2SalesTariffType(struct iso2SalesTariffType* iso2SalesTariffType) { + iso2SalesTariffType->SalesTariffDescription_isUsed = 0u; + iso2SalesTariffType->NumEPriceLevels_isUsed = 0u; + iso2SalesTariffType->SalesTariffEntry.arrayLen = 0u; +} + +void init_iso2SensorType(struct iso2SensorType* iso2SensorType) { + (void)iso2SensorType; /* avoid unused warning */ +} + +void init_iso2SignatureValueType(struct iso2SignatureValueType* iso2SignatureValueType) { + iso2SignatureValueType->Id_isUsed = 0u; +} + +void init_iso2SignedInfoType(struct iso2SignedInfoType* iso2SignedInfoType) { + iso2SignedInfoType->Id_isUsed = 0u; + iso2SignedInfoType->Reference.arrayLen = 0u; +} + +void init_iso2PowerDeliveryResType(struct iso2PowerDeliveryResType* iso2PowerDeliveryResType) { + iso2PowerDeliveryResType->EVSEStatus_isUsed = 0u; +} + +void init_iso2CableCheckReqType(struct iso2CableCheckReqType* iso2CableCheckReqType) { + (void)iso2CableCheckReqType; /* avoid unused warning */ +} + +void init_iso2SelectedServiceType(struct iso2SelectedServiceType* iso2SelectedServiceType) { + (void)iso2SelectedServiceType; /* avoid unused warning */ +} + +void init_iso2DiffieHellmanPublickeyType(struct iso2DiffieHellmanPublickeyType* iso2DiffieHellmanPublickeyType) { + (void)iso2DiffieHellmanPublickeyType; /* avoid unused warning */ +} + +void init_iso2EVSEStatusType(struct iso2EVSEStatusType* iso2EVSEStatusType) { + (void)iso2EVSEStatusType; /* avoid unused warning */ +} + + + +#endif /* DEPLOY_ISO2_CODEC */ + +#endif + diff --git a/csharp/vc2022/src/iso2/iso2EXIDatatypes.h b/csharp/vc2022/src/iso2/iso2EXIDatatypes.h new file mode 100644 index 0000000..a898a2d --- /dev/null +++ b/csharp/vc2022/src/iso2/iso2EXIDatatypes.h @@ -0,0 +1,4189 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIDatatypes.h + * \brief Datatype definitions and structs for given XML Schema definitions and initialization methods + * + */ + +#ifndef EXI_iso2_DATATYPES_H +#define EXI_iso2_DATATYPES_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define SUPPORT_YES 1 +#define SUPPORT_NO 2 +#define DEPLOY_ISO2_CODEC SUPPORT_YES +#define DEPLOY_ISO2_CODEC_FRAGMENT SUPPORT_YES + +#if DEPLOY_ISO2_CODEC == SUPPORT_YES + +#include + +#include "EXITypes.h" + + +/* Datatype definitions and structs for given XML Schema definitions */ + +#define UNION_YES 1 +#define UNION_NO 2 +#define SAVE_MEMORY_WITH_UNNAMED_UNION UNION_YES + +/* Note: Please find below a list of occurrence limits that have been applied */ +/* Limit occurrence of element "urn:iso:15118:2:2016:MsgDataTypes":SensorPosition from 255 to 5 (see #define iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2016:MsgDataTypes":MeasurementData from 255 to 5 (see #define iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":XPath from unbounded to 1 (see #define iso2TransformType_XPath_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":SPKISexp from unbounded to 1 (see #define iso2SPKIDataType_SPKISexp_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2016:MsgDataTypes":MagneticVectorSetup from 255 to 5 (see #define iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial from unbounded to 1 (see #define iso2X509DataType_X509IssuerSerial_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":X509SKI from unbounded to 1 (see #define iso2X509DataType_X509SKI_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":X509SubjectName from unbounded to 1 (see #define iso2X509DataType_X509SubjectName_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":X509Certificate from unbounded to 1 (see #define iso2X509DataType_X509Certificate_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":X509CRL from unbounded to 1 (see #define iso2X509DataType_X509CRL_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":SignatureProperty from unbounded to 1 (see #define iso2SignaturePropertiesType_SignatureProperty_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":Transform from unbounded to 1 (see #define iso2TransformsType_Transform_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2016:MsgDataTypes":Sensor from 255 to 5 (see #define iso2SensorListType_Sensor_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":Reference from unbounded to 1 (see #define iso2ManifestType_Reference_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2016:MsgDataTypes":SensorMeasurements from 255 to 5 (see #define iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2016:MsgDataTypes":ProfileEntry from unbounded to 24 (see #define iso2ChargingProfileType_ProfileEntry_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2016:MsgDataTypes":SalesTariffEntry from unbounded to 5 (see #define iso2SalesTariffType_SalesTariffEntry_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":Reference from unbounded to 1 (see #define iso2SignedInfoType_Reference_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2016:MsgDataTypes":MagneticVector from 255 to 5 (see #define iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2016:MsgDataTypes":ParameterSet from 255 to 5 (see #define iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2016:MsgDataTypes":PMaxScheduleEntry from unbounded to 5 (see #define iso2PMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE) */ +/* Limit occurrence of element "urn:iso:15118:2:2016:MsgDataTypes":SensorPackage from 255 to 5 (see #define iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":KeyName from unbounded to 1 (see #define iso2KeyInfoType_KeyName_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":KeyValue from unbounded to 1 (see #define iso2KeyInfoType_KeyValue_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":RetrievalMethod from unbounded to 1 (see #define iso2KeyInfoType_RetrievalMethod_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":X509Data from unbounded to 1 (see #define iso2KeyInfoType_X509Data_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":PGPData from unbounded to 1 (see #define iso2KeyInfoType_PGPData_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":SPKIData from unbounded to 1 (see #define iso2KeyInfoType_SPKIData_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":MgmtData from unbounded to 1 (see #define iso2KeyInfoType_MgmtData_ARRAY_SIZE) */ +/* Limit occurrence of element "http://www.w3.org/2000/09/xmldsig#":Object from unbounded to 1 (see #define iso2SignatureType_Object_ARRAY_SIZE) */ + + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */ +#define iso2RSAKeyValueType_Modulus_BYTES_SIZE 350 +#define iso2RSAKeyValueType_Exponent_BYTES_SIZE 350 +struct iso2RSAKeyValueType { + /* element: "http://www.w3.org/2000/09/xmldsig#":Modulus, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[iso2RSAKeyValueType_Modulus_BYTES_SIZE]; + uint16_t bytesLen; + } Modulus ; + /* element: "http://www.w3.org/2000/09/xmldsig#":Exponent, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[iso2RSAKeyValueType_Exponent_BYTES_SIZE]; + uint16_t bytesLen; + } Exponent ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MeterID,"urn:iso:15118:2:2016:MsgDataTypes":MeterReadingCharged{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MeterReadingDischarged{0-1},"urn:iso:15118:2:2016:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ +#define iso2MeterInfoType_MeterID_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,meterIDType is 32 */ +#define iso2MeterInfoType_SigMeterReading_BYTES_SIZE 64 /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,sigMeterReadingType is 64 */ +struct iso2MeterInfoType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":MeterID, urn:iso:15118:2:2016:MsgDataTypes,meterIDType */ + struct { + exi_string_character_t characters[iso2MeterInfoType_MeterID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } MeterID ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":MeterReadingCharged, http://www.w3.org/2001/XMLSchema,unsignedLong */ + uint64_t MeterReadingCharged ; + unsigned int MeterReadingCharged_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":MeterReadingDischarged, http://www.w3.org/2001/XMLSchema,unsignedLong */ + uint64_t MeterReadingDischarged ; + unsigned int MeterReadingDischarged_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SigMeterReading, urn:iso:15118:2:2016:MsgDataTypes,sigMeterReadingType */ + struct { + uint8_t bytes[iso2MeterInfoType_SigMeterReading_BYTES_SIZE]; + uint16_t bytesLen; + } SigMeterReading ; + unsigned int SigMeterReading_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":MeterStatus, urn:iso:15118:2:2016:MsgDataTypes,meterStatusType */ + int16_t MeterStatus ; + unsigned int MeterStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":TMeter, http://www.w3.org/2001/XMLSchema,long */ + int64_t TMeter ; + unsigned int TMeter_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ServiceID,"urn:iso:15118:2:2016:MsgDataTypes":FreeService)', derivedBy='RESTRICTION'. */ +struct iso2ServiceType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":ServiceID, urn:iso:15118:2:2016:MsgDataTypes,serviceIDType */ + uint16_t ServiceID ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":FreeService, http://www.w3.org/2001/XMLSchema,boolean */ + int FreeService ; +}; + +typedef enum { + iso2vehicleSpaceType_AutoParking = 0, + iso2vehicleSpaceType_MVGuideManual = 1, + iso2vehicleSpaceType_Manual = 2 +} iso2vehicleSpaceType; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Service{1-8})', derivedBy='RESTRICTION'. */ +#define iso2ServiceListType_Service_ARRAY_SIZE 8 +struct iso2ServiceListType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":Service, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ServiceID,"urn:iso:15118:2:2016:MsgDataTypes":FreeService)', derivedBy='RESTRICTION'. */ + struct { + struct iso2ServiceType array[iso2ServiceListType_Service_ARRAY_SIZE]; + uint16_t arrayLen; + } Service; +}; + +typedef enum { + iso2operationModeType_Ready = 0, + iso2operationModeType_NotReady = 1 +} iso2operationModeType; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MagneticVectorSetupType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":GAID,"urn:iso:15118:2:2016:MsgDataTypes":FrequencyChannel)', derivedBy='RESTRICTION'. */ +#define iso2MagneticVectorSetupType_GAID_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso2MagneticVectorSetupType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":GAID, http://www.w3.org/2001/XMLSchema,ID */ + struct { + exi_string_character_t characters[iso2MagneticVectorSetupType_GAID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } GAID ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":FrequencyChannel, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t FrequencyChannel ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,RelativeTimeIntervalType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":start,"urn:iso:15118:2:2016:MsgDataTypes":duration{0-1})', derivedBy='RESTRICTION'. */ +struct iso2RelativeTimeIntervalType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":start, urn:iso:15118:2:2016:MsgDataTypes,#AnonType_startRelativeTimeIntervalType */ + uint32_t start ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":duration, urn:iso:15118:2:2016:MsgDataTypes,#AnonType_durationRelativeTimeIntervalType */ + uint32_t duration ; + unsigned int duration_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVFinePositioningParametersType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct iso2EVFinePositioningParametersType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define iso2ObjectType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2ObjectType_MimeType_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2ObjectType_Encoding_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2ObjectType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso2ObjectType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso2ObjectType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* attribute: MimeType {http://www.w3.org/2001/XMLSchema,string} */ + struct { + exi_string_character_t characters[iso2ObjectType_MimeType_CHARACTERS_SIZE]; + uint16_t charactersLen; + } MimeType ; + unsigned int MimeType_isUsed:1; + /* attribute: Encoding {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso2ObjectType_Encoding_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Encoding ; + unsigned int Encoding_isUsed:1; + /* element: WC[##any] */ + struct { + exi_string_character_t characters[iso2ObjectType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorOrderListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SensorPosition{1-255})', derivedBy='RESTRICTION'. */ +#define iso2SensorOrderListType_SensorPosition_ARRAY_SIZE 5 +struct iso2SensorOrderListType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SensorPosition, http://www.w3.org/2001/XMLSchema,unsignedByte */ + struct { + uint8_t array[iso2SensorOrderListType_SensorPosition_ARRAY_SIZE]; + uint16_t arrayLen; + } SensorPosition; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MeasurementDataListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MeasurementData{1-255})', derivedBy='RESTRICTION'. */ +#define iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE 5 +struct iso2MeasurementDataListType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":MeasurementData, http://www.w3.org/2001/XMLSchema,unsignedShort */ + struct { + uint16_t array[iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE]; + uint16_t arrayLen; + } MeasurementData; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define iso2SignaturePropertyType_Target_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2SignaturePropertyType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2SignaturePropertyType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso2SignaturePropertyType { + /* attribute: Target {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso2SignaturePropertyType_Target_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Target ; + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso2SignaturePropertyType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[iso2SignaturePropertyType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define iso2TransformType_Algorithm_CHARACTERS_SIZE 65 + EXTRA_CHAR +#define iso2TransformType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2TransformType_XPath_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2TransformType_XPath_ARRAY_SIZE 1 +struct iso2TransformType { + /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso2TransformType_Algorithm_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Algorithm ; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[iso2TransformType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":XPath, http://www.w3.org/2001/XMLSchema,string */ + struct { + struct { + exi_string_character_t characters[iso2TransformType_XPath_CHARACTERS_SIZE]; + uint16_t charactersLen; + } array[iso2TransformType_XPath_ARRAY_SIZE]; + uint16_t arrayLen; + } XPath; +}; + +typedef enum { + iso2EVSENotificationType_StopCharging = 0, + iso2EVSENotificationType_ReNegotiation = 1 +} iso2EVSENotificationType; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EMAIDType', base type name='eMAIDType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +#define iso2EMAIDType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2EMAIDType_CONTENT_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso2EMAIDType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso2EMAIDType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + /* simple content: urn:iso:15118:2:2016:MsgDataTypes,eMAIDType */ + struct { + exi_string_character_t characters[iso2EMAIDType_CONTENT_CHARACTERS_SIZE]; + uint16_t charactersLen; + } CONTENT ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */ +#define iso2DSAKeyValueType_P_BYTES_SIZE 350 +#define iso2DSAKeyValueType_Q_BYTES_SIZE 350 +#define iso2DSAKeyValueType_G_BYTES_SIZE 350 +#define iso2DSAKeyValueType_Y_BYTES_SIZE 350 +#define iso2DSAKeyValueType_J_BYTES_SIZE 350 +#define iso2DSAKeyValueType_Seed_BYTES_SIZE 350 +#define iso2DSAKeyValueType_PgenCounter_BYTES_SIZE 350 +struct iso2DSAKeyValueType { + /* element: "http://www.w3.org/2000/09/xmldsig#":P, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[iso2DSAKeyValueType_P_BYTES_SIZE]; + uint16_t bytesLen; + } P ; + unsigned int P_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Q, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[iso2DSAKeyValueType_Q_BYTES_SIZE]; + uint16_t bytesLen; + } Q ; + unsigned int Q_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":G, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[iso2DSAKeyValueType_G_BYTES_SIZE]; + uint16_t bytesLen; + } G ; + unsigned int G_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Y, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[iso2DSAKeyValueType_Y_BYTES_SIZE]; + uint16_t bytesLen; + } Y ; + /* element: "http://www.w3.org/2000/09/xmldsig#":J, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[iso2DSAKeyValueType_J_BYTES_SIZE]; + uint16_t bytesLen; + } J ; + unsigned int J_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Seed, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[iso2DSAKeyValueType_Seed_BYTES_SIZE]; + uint16_t bytesLen; + } Seed ; + unsigned int Seed_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":PgenCounter, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[iso2DSAKeyValueType_PgenCounter_BYTES_SIZE]; + uint16_t bytesLen; + } PgenCounter ; + unsigned int PgenCounter_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EntryType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":RelativeTimeInterval)', derivedBy='RESTRICTION'. */ +struct iso2EntryType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":RelativeTimeInterval, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,RelativeTimeIntervalType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":start,"urn:iso:15118:2:2016:MsgDataTypes":duration{0-1})', derivedBy='RESTRICTION'. */ + struct iso2RelativeTimeIntervalType RelativeTimeInterval ; +}; + +typedef enum { + iso2valueType_bool = 0, + iso2valueType_byte = 1, + iso2valueType_short = 2, + iso2valueType_int = 3, + iso2valueType_physicalValue = 4, + iso2valueType_string = 5 +} iso2valueType; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,V2GRequestType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct iso2V2GRequestType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEEnergyTransferParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct iso2EVSEEnergyTransferParameterType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,MeteringReceiptReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":SessionID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo)', derivedBy='EXTENSION'. */ +#define iso2MeteringReceiptReqType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2MeteringReceiptReqType_SessionID_BYTES_SIZE 8 /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,sessionIDType is 8 */ +struct iso2MeteringReceiptReqType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso2MeteringReceiptReqType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + /* element: "urn:iso:15118:2:2016:MsgBody":SessionID, urn:iso:15118:2:2016:MsgDataTypes,sessionIDType */ + struct { + uint8_t bytes[iso2MeteringReceiptReqType_SessionID_BYTES_SIZE]; + uint16_t bytesLen; + } SessionID ; + /* element: "urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID, urn:iso:15118:2:2016:MsgDataTypes,SAIDType */ + uint8_t SAScheduleTupleID ; + unsigned int SAScheduleTupleID_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":MeterInfo, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MeterID,"urn:iso:15118:2:2016:MsgDataTypes":MeterReadingCharged{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MeterReadingDischarged{0-1},"urn:iso:15118:2:2016:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ + struct iso2MeterInfoType MeterInfo ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */ +#define iso2KeyValueType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso2KeyValueType { + /* element: "http://www.w3.org/2000/09/xmldsig#":DSAKeyValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */ + struct iso2DSAKeyValueType DSAKeyValue ; + unsigned int DSAKeyValue_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":RSAKeyValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */ + struct iso2RSAKeyValueType RSAKeyValue ; + unsigned int RSAKeyValue_isUsed:1; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[iso2KeyValueType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +typedef enum { + iso2EVCheckInStatusType_CheckIn = 0, + iso2EVCheckInStatusType_Processing = 1, + iso2EVCheckInStatusType_Completed = 2 +} iso2EVCheckInStatusType; + +typedef enum { + iso2mechanicalChargingDeviceStatusType_Home = 0, + iso2mechanicalChargingDeviceStatusType_Moving = 1, + iso2mechanicalChargingDeviceStatusType_EndPosition = 2 +} iso2mechanicalChargingDeviceStatusType; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,BodyBaseType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct iso2BodyBaseType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,AuthorizationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":GenChallenge{0-1})', derivedBy='EXTENSION'. */ +#define iso2AuthorizationReqType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2AuthorizationReqType_GenChallenge_BYTES_SIZE 16 /* XML schema facet length for urn:iso:15118:2:2016:MsgDataTypes,genChallengeType is 16 */ +struct iso2AuthorizationReqType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso2AuthorizationReqType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":GenChallenge, urn:iso:15118:2:2016:MsgDataTypes,genChallengeType */ + struct { + uint8_t bytes[iso2AuthorizationReqType_GenChallenge_BYTES_SIZE]; + uint16_t bytesLen; + } GenChallenge ; + unsigned int GenChallenge_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define iso2SPKIDataType_SPKISexp_BYTES_SIZE 350 +#define iso2SPKIDataType_SPKISexp_ARRAY_SIZE 1 +#define iso2SPKIDataType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso2SPKIDataType { + /* element: "http://www.w3.org/2000/09/xmldsig#":SPKISexp, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + struct { + uint8_t bytes[iso2SPKIDataType_SPKISexp_BYTES_SIZE]; + uint16_t bytesLen; + } array[iso2SPKIDataType_SPKISexp_ARRAY_SIZE]; + uint16_t arrayLen; + } SPKISexp; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[iso2SPKIDataType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso2SignatureMethodType_Algorithm_CHARACTERS_SIZE 65 + EXTRA_CHAR +#define iso2SignatureMethodType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso2SignatureMethodType { + /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso2SignatureMethodType_Algorithm_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Algorithm ; + /* element: "http://www.w3.org/2000/09/xmldsig#":HMACOutputLength, http://www.w3.org/2000/09/xmldsig#,HMACOutputLengthType */ + int64_t HMACOutputLength ; + unsigned int HMACOutputLength_isUsed:1; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[iso2SignatureMethodType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,WeldingDetectionReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +struct iso2WeldingDetectionReqType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,SessionSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVCCID)', derivedBy='EXTENSION'. */ +#define iso2SessionSetupReqType_EVCCID_BYTES_SIZE 6 /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,evccIDType is 6 */ +struct iso2SessionSetupReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":EVCCID, urn:iso:15118:2:2016:MsgDataTypes,evccIDType */ + struct { + uint8_t bytes[iso2SessionSetupReqType_EVCCID_BYTES_SIZE]; + uint16_t bytesLen; + } EVCCID ; +}; + +typedef enum { + iso2chargeProgressType_Start = 0, + iso2chargeProgressType_Stop = 1, + iso2chargeProgressType_Renegotiate = 2 +} iso2chargeProgressType; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso2CanonicalizationMethodType_Algorithm_CHARACTERS_SIZE 65 + EXTRA_CHAR +#define iso2CanonicalizationMethodType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso2CanonicalizationMethodType { + /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso2CanonicalizationMethodType_Algorithm_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Algorithm ; + /* element: WC[##any] */ + struct { + exi_string_character_t characters[iso2CanonicalizationMethodType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ +struct iso2PhysicalValueType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":Exponent, urn:iso:15118:2:2016:MsgDataTypes,exponentType */ + int8_t Exponent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":Value, http://www.w3.org/2001/XMLSchema,short */ + int16_t Value ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,SystemStatusReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":OperationMode,"urn:iso:15118:2:2016:MsgBody":EVMechanicalChargingDeviceStatus)', derivedBy='EXTENSION'. */ +struct iso2SystemStatusReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":OperationMode, urn:iso:15118:2:2016:MsgDataTypes,operationModeType */ + iso2operationModeType OperationMode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMechanicalChargingDeviceStatus, urn:iso:15118:2:2016:MsgDataTypes,mechanicalChargingDeviceStatusType */ + iso2mechanicalChargingDeviceStatusType EVMechanicalChargingDeviceStatus ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEFinePositioningSetupParametersType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct iso2EVSEFinePositioningSetupParametersType { + int noContent; /* avoid warning */ +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEFinePositioningParametersType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct iso2EVSEFinePositioningParametersType { + int noContent; /* avoid warning */ +}; + +typedef enum { + iso2FODStatusType_ObjectOnPad = 0, + iso2FODStatusType_PadClear = 1, + iso2FODStatusType_UnknownError = 2 +} iso2FODStatusType; + +typedef enum { + iso2costKindType_relativePricePercentage = 0, + iso2costKindType_RenewableGenerationPercentage = 1, + iso2costKindType_CarbonDioxideEmission = 2 +} iso2costKindType; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso2DigestMethodType_Algorithm_CHARACTERS_SIZE 65 + EXTRA_CHAR +#define iso2DigestMethodType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso2DigestMethodType { + /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso2DigestMethodType_Algorithm_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Algorithm ; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[iso2DigestMethodType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,TargetPositionType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":TargetOffsetX,"urn:iso:15118:2:2016:MsgDataTypes":TargetOffsetY)', derivedBy='RESTRICTION'. */ +struct iso2TargetPositionType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":TargetOffsetX, http://www.w3.org/2001/XMLSchema,unsignedShort */ + uint16_t TargetOffsetX ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":TargetOffsetY, http://www.w3.org/2001/XMLSchema,unsignedShort */ + uint16_t TargetOffsetY ; +}; + +typedef enum { + iso2EVOperationType_Charge = 0, + iso2EVOperationType_BPT = 1 +} iso2EVOperationType; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DC_EVChargeParameterType', base type name='EVEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkSOC{0-1}))', derivedBy='EXTENSION'. */ +struct iso2DC_EVChargeParameterType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":DepartureTime, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t DepartureTime ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumChargePower ; + unsigned int EVMaximumChargePower_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumChargePower ; + unsigned int EVMinimumChargePower_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumChargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumChargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumVoltage ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVTargetEnergyRequest ; + unsigned int EVTargetEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumEnergyRequest ; + unsigned int EVMaximumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumEnergyRequest ; + unsigned int EVMinimumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC, urn:iso:15118:2:2016:MsgDataTypes,percentValueType */ + int8_t CurrentSOC ; + unsigned int CurrentSOC_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":TargetSOC, urn:iso:15118:2:2016:MsgDataTypes,percentValueType */ + int8_t TargetSOC ; + unsigned int TargetSOC_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":BulkSOC, urn:iso:15118:2:2016:MsgDataTypes,percentValueType */ + int8_t BulkSOC ; + unsigned int BulkSOC_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ServiceDetailReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ServiceID)', derivedBy='EXTENSION'. */ +struct iso2ServiceDetailReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":ServiceID, urn:iso:15118:2:2016:MsgDataTypes,serviceIDType */ + uint16_t ServiceID ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PreChargeReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2016:MsgBody":EVTargetCurrent)', derivedBy='EXTENSION'. */ +struct iso2PreChargeReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":EVTargetVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVTargetVoltage ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVTargetCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVTargetCurrent ; +}; + +typedef enum { + iso2serviceCategoryType_EVCharging = 0, + iso2serviceCategoryType_Internet = 1, + iso2serviceCategoryType_ContractCertificate = 2, + iso2serviceCategoryType_OtherCustom = 3 +} iso2serviceCategoryType; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,CartesianCoordinatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":XCoordinate,"urn:iso:15118:2:2016:MsgDataTypes":YCoordinate,"urn:iso:15118:2:2016:MsgDataTypes":ZCoordinate)', derivedBy='RESTRICTION'. */ +struct iso2CartesianCoordinatesType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":XCoordinate, http://www.w3.org/2001/XMLSchema,short */ + int16_t XCoordinate ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":YCoordinate, http://www.w3.org/2001/XMLSchema,short */ + int16_t YCoordinate ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":ZCoordinate, http://www.w3.org/2001/XMLSchema,short */ + int16_t ZCoordinate ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SubCertificatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Certificate{1-4})', derivedBy='RESTRICTION'. */ +#define iso2SubCertificatesType_Certificate_BYTES_SIZE 800 /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,certificateType is 800 */ +#define iso2SubCertificatesType_Certificate_ARRAY_SIZE 4 +struct iso2SubCertificatesType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":Certificate, urn:iso:15118:2:2016:MsgDataTypes,certificateType */ + struct { + struct { + uint8_t bytes[iso2SubCertificatesType_Certificate_BYTES_SIZE]; + uint16_t bytesLen; + } array[iso2SubCertificatesType_Certificate_ARRAY_SIZE]; + uint16_t arrayLen; + } Certificate; +}; + +typedef enum { + iso2parkingMethodType_AutoParking = 0, + iso2parkingMethodType_MVGuideManual = 1, + iso2parkingMethodType_Manual = 2 +} iso2parkingMethodType; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVEnergyTransferParameterType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime)', derivedBy='RESTRICTION'. */ +struct iso2EVEnergyTransferParameterType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":DepartureTime, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t DepartureTime ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ContractSignatureEncryptedPrivateKeyType', base type name='encryptedPrivateKeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +#define iso2ContractSignatureEncryptedPrivateKeyType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2ContractSignatureEncryptedPrivateKeyType_CONTENT_BYTES_SIZE 350 +struct iso2ContractSignatureEncryptedPrivateKeyType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso2ContractSignatureEncryptedPrivateKeyType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + /* simple content: urn:iso:15118:2:2016:MsgDataTypes,encryptedPrivateKeyType */ + struct { + uint8_t bytes[iso2ContractSignatureEncryptedPrivateKeyType_CONTENT_BYTES_SIZE]; + uint16_t bytesLen; + } CONTENT ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MagneticVectorSetupListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MagneticVectorSetup{1-255})', derivedBy='RESTRICTION'. */ +#define iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE 5 +struct iso2MagneticVectorSetupListType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":MagneticVectorSetup, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MagneticVectorSetupType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":GAID,"urn:iso:15118:2:2016:MsgDataTypes":FrequencyChannel)', derivedBy='RESTRICTION'. */ + struct { + struct iso2MagneticVectorSetupType array[iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE]; + uint16_t arrayLen; + } MagneticVectorSetup; +}; + +typedef enum { + iso2responseCodeType_OK = 0, + iso2responseCodeType_OK_NewSessionEstablished = 1, + iso2responseCodeType_OK_OldSessionJoined = 2, + iso2responseCodeType_OK_CertificateExpiresSoon = 3, + iso2responseCodeType_OK_IsolationValid = 4, + iso2responseCodeType_OK_IsolationWarning = 5, + iso2responseCodeType_WARNING_CertificateExpired = 6, + iso2responseCodeType_WARNING_NoCertificateAvailable = 7, + iso2responseCodeType_WARNING_CertValidationError = 8, + iso2responseCodeType_WARNING_CertVerificationError = 9, + iso2responseCodeType_WARNING_ContractCanceled = 10, + iso2responseCodeType_FAILED = 11, + iso2responseCodeType_FAILED_SequenceError = 12, + iso2responseCodeType_FAILED_ServiceIDInvalid = 13, + iso2responseCodeType_FAILED_UnknownSession = 14, + iso2responseCodeType_FAILED_ServiceSelectionInvalid = 15, + iso2responseCodeType_FAILED_SignatureError = 16, + iso2responseCodeType_FAILED_PaymentSelectionInvalid = 17, + iso2responseCodeType_FAILED_ChallengeInvalid = 18, + iso2responseCodeType_FAILED_WrongChargeParameter = 19, + iso2responseCodeType_FAILED_IsolationFault = 20, + iso2responseCodeType_FAILED_PowerDeliveryNotApplied = 21, + iso2responseCodeType_FAILED_TariffSelectionInvalid = 22, + iso2responseCodeType_FAILED_ChargingProfileInvalid = 23, + iso2responseCodeType_FAILED_MeteringSignatureNotValid = 24, + iso2responseCodeType_FAILED_NoChargeServiceSelected = 25, + iso2responseCodeType_FAILED_WrongEnergyTransferMode = 26, + iso2responseCodeType_FAILED_ContactorError = 27, + iso2responseCodeType_FAILED_CertificateRevoked = 28, + iso2responseCodeType_FAILED_CertificateNotYetValid = 29 +} iso2responseCodeType; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */ +#define iso2X509IssuerSerialType_X509IssuerName_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso2X509IssuerSerialType { + /* element: "http://www.w3.org/2000/09/xmldsig#":X509IssuerName, http://www.w3.org/2001/XMLSchema,string */ + struct { + exi_string_character_t characters[iso2X509IssuerSerialType_X509IssuerName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } X509IssuerName ; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509SerialNumber, http://www.w3.org/2001/XMLSchema,integer */ + int64_t X509SerialNumber ; +}; + +typedef enum { + iso2chargingSessionType_Terminate = 0, + iso2chargingSessionType_Pause = 1 +} iso2chargingSessionType; + +typedef enum { + iso2EVSEProcessingType_Finished = 0, + iso2EVSEProcessingType_Ongoing = 1, + iso2EVSEProcessingType_Ongoing_WaitingForCustomerInteraction = 2 +} iso2EVSEProcessingType; + +typedef enum { + iso2paymentOptionType_Contract = 0, + iso2paymentOptionType_ExternalPayment = 1 +} iso2paymentOptionType; + +typedef enum { + iso2EVSECheckOutStatusType_Scheduled = 0, + iso2EVSECheckOutStatusType_Completed = 1 +} iso2EVSECheckOutStatusType; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */ +#define iso2PGPDataType_PGPKeyID_BYTES_SIZE 350 +#define iso2PGPDataType_PGPKeyPacket_BYTES_SIZE 350 +#define iso2PGPDataType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso2PGPDataType { + /* element: "http://www.w3.org/2000/09/xmldsig#":PGPKeyID, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + uint8_t bytes[iso2PGPDataType_PGPKeyID_BYTES_SIZE]; + uint16_t bytesLen; + } PGPKeyID ; + unsigned int PGPKeyID_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + uint8_t bytes[iso2PGPDataType_PGPKeyPacket_BYTES_SIZE]; + uint16_t bytesLen; + } PGPKeyPacket ; + unsigned int PGPKeyPacket_isUsed:1; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[iso2PGPDataType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ServiceIDListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ServiceID{1-10})', derivedBy='RESTRICTION'. */ +#define iso2ServiceIDListType_ServiceID_ARRAY_SIZE 10 +struct iso2ServiceIDListType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":ServiceID, urn:iso:15118:2:2016:MsgDataTypes,serviceIDType */ + struct { + uint16_t array[iso2ServiceIDListType_ServiceID_ARRAY_SIZE]; + uint16_t arrayLen; + } ServiceID; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVFinePositioningSetupParametersType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +struct iso2EVFinePositioningSetupParametersType { + int noContent; /* avoid warning */ +}; + +typedef enum { + iso2EVCheckOutStatusType_CheckOut = 0, + iso2EVCheckOutStatusType_Processing = 1, + iso2EVCheckOutStatusType_Completed = 2 +} iso2EVCheckOutStatusType; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SensorID,"urn:iso:15118:2:2016:MsgDataTypes":SensorPosition,"urn:iso:15118:2:2016:MsgDataTypes":SensorOrientation)', derivedBy='RESTRICTION'. */ +struct iso2SensorType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SensorID, http://www.w3.org/2001/XMLSchema,unsignedByte */ + uint8_t SensorID ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SensorPosition, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,CartesianCoordinatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":XCoordinate,"urn:iso:15118:2:2016:MsgDataTypes":YCoordinate,"urn:iso:15118:2:2016:MsgDataTypes":ZCoordinate)', derivedBy='RESTRICTION'. */ + struct iso2CartesianCoordinatesType SensorPosition ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SensorOrientation, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,CartesianCoordinatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":XCoordinate,"urn:iso:15118:2:2016:MsgDataTypes":YCoordinate,"urn:iso:15118:2:2016:MsgDataTypes":ZCoordinate)', derivedBy='RESTRICTION'. */ + struct iso2CartesianCoordinatesType SensorOrientation ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +#define iso2SignatureValueType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2SignatureValueType_CONTENT_BYTES_SIZE 350 +struct iso2SignatureValueType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso2SignatureValueType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* simple content: http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + uint8_t bytes[iso2SignatureValueType_CONTENT_BYTES_SIZE]; + uint16_t bytesLen; + } CONTENT ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CableCheckReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +struct iso2CableCheckReqType { + int noContent; /* avoid warning */ +}; + +typedef enum { + iso2electricalChargingDeviceStatusType_Connected = 0, + iso2electricalChargingDeviceStatusType_Disconnected = 1 +} iso2electricalChargingDeviceStatusType; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SelectedServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ServiceID,"urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID)', derivedBy='RESTRICTION'. */ +struct iso2SelectedServiceType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":ServiceID, urn:iso:15118:2:2016:MsgDataTypes,serviceIDType */ + uint16_t ServiceID ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID, http://www.w3.org/2001/XMLSchema,unsignedShort */ + uint16_t ParameterSetID ; +}; + +typedef enum { + iso2EVSEErrorCodeType_RESSTemperatureInhibit = 0, + iso2EVSEErrorCodeType_ChargerConnectorLockFault = 1, + iso2EVSEErrorCodeType_ChargingCurrentdifferential = 2, + iso2EVSEErrorCodeType_ChargingVoltageOutOfRange = 3, + iso2EVSEErrorCodeType_ChargingSystemIncompatibility = 4, + iso2EVSEErrorCodeType_Reserved_A = 5, + iso2EVSEErrorCodeType_Reserved_B = 6, + iso2EVSEErrorCodeType_Reserved_C = 7 +} iso2EVSEErrorCodeType; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DiffieHellmanPublickeyType', base type name='dHpublickeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +#define iso2DiffieHellmanPublickeyType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2DiffieHellmanPublickeyType_CONTENT_BYTES_SIZE 350 +struct iso2DiffieHellmanPublickeyType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso2DiffieHellmanPublickeyType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + /* simple content: urn:iso:15118:2:2016:MsgDataTypes,dHpublickeyType */ + struct { + uint8_t bytes[iso2DiffieHellmanPublickeyType_CONTENT_BYTES_SIZE]; + uint16_t bytesLen; + } CONTENT ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ +struct iso2EVSEStatusType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay, http://www.w3.org/2001/XMLSchema,unsignedShort */ + uint16_t NotificationMaxDelay ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSENotification, urn:iso:15118:2:2016:MsgDataTypes,EVSENotificationType */ + iso2EVSENotificationType EVSENotification ; +}; + +typedef enum { + iso2EVErrorCodeType_RESSTemperatureInhibit = 0, + iso2EVErrorCodeType_EVShiftPosition = 1, + iso2EVErrorCodeType_ChargerConnectorLockFault = 2, + iso2EVErrorCodeType_EVRESSMalfunction = 3, + iso2EVErrorCodeType_ChargingCurrentdifferential = 4, + iso2EVErrorCodeType_ChargingVoltageOutOfRange = 5, + iso2EVErrorCodeType_ChargingSystemIncompatibility = 6, + iso2EVErrorCodeType_Reserved_A = 7, + iso2EVErrorCodeType_Reserved_B = 8, + iso2EVErrorCodeType_Reserved_C = 9 +} iso2EVErrorCodeType; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,AuthorizationResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing))', derivedBy='EXTENSION'. */ +struct iso2AuthorizationResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEProcessing, urn:iso:15118:2:2016:MsgDataTypes,EVSEProcessingType */ + iso2EVSEProcessingType EVSEProcessing ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MV_EVSEFinePositioningSetupParametersType', base type name='EVSEFinePositioningSetupParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":FrequencyChannel{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MagneticVectorSetupList{0-1})', derivedBy='EXTENSION'. */ +struct iso2MV_EVSEFinePositioningSetupParametersType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":FrequencyChannel, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t FrequencyChannel ; + unsigned int FrequencyChannel_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":MagneticVectorSetupList, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MagneticVectorSetupListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MagneticVectorSetup{1-255})', derivedBy='RESTRICTION'. */ + struct iso2MagneticVectorSetupListType MagneticVectorSetupList ; + unsigned int MagneticVectorSetupList_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define iso2X509DataType_X509IssuerSerial_ARRAY_SIZE 1 +#define iso2X509DataType_X509SKI_BYTES_SIZE 350 +#define iso2X509DataType_X509SKI_ARRAY_SIZE 1 +#define iso2X509DataType_X509SubjectName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2X509DataType_X509SubjectName_ARRAY_SIZE 1 +#define iso2X509DataType_X509Certificate_BYTES_SIZE 350 +#define iso2X509DataType_X509Certificate_ARRAY_SIZE 1 +#define iso2X509DataType_X509CRL_BYTES_SIZE 350 +#define iso2X509DataType_X509CRL_ARRAY_SIZE 1 +#define iso2X509DataType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso2X509DataType { + /* element: "http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial, Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */ + struct { + struct iso2X509IssuerSerialType array[iso2X509DataType_X509IssuerSerial_ARRAY_SIZE]; + uint16_t arrayLen; + } X509IssuerSerial; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509SKI, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + struct { + uint8_t bytes[iso2X509DataType_X509SKI_BYTES_SIZE]; + uint16_t bytesLen; + } array[iso2X509DataType_X509SKI_ARRAY_SIZE]; + uint16_t arrayLen; + } X509SKI; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509SubjectName, http://www.w3.org/2001/XMLSchema,string */ + struct { + struct { + exi_string_character_t characters[iso2X509DataType_X509SubjectName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } array[iso2X509DataType_X509SubjectName_ARRAY_SIZE]; + uint16_t arrayLen; + } X509SubjectName; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509Certificate, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + struct { + uint8_t bytes[iso2X509DataType_X509Certificate_BYTES_SIZE]; + uint16_t bytesLen; + } array[iso2X509DataType_X509Certificate_ARRAY_SIZE]; + uint16_t arrayLen; + } X509Certificate; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509CRL, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + struct { + uint8_t bytes[iso2X509DataType_X509CRL_BYTES_SIZE]; + uint16_t bytesLen; + } array[iso2X509DataType_X509CRL_ARRAY_SIZE]; + uint16_t arrayLen; + } X509CRL; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[iso2X509DataType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,DC_BidirectionalControlResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2016:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSEMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumDischargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumChargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumDischargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumVoltage{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMinimumVoltage{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1}))', derivedBy='EXTENSION'. */ +#define iso2DC_BidirectionalControlResType_EVSEID_CHARACTERS_SIZE 37 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,evseIDType is 37 */ +struct iso2DC_BidirectionalControlResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEPresentCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEPresentCurrent ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEPresentVoltage ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEPowerLimitAchieved, http://www.w3.org/2001/XMLSchema,boolean */ + int EVSEPowerLimitAchieved ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSECurrentLimitAchieved, http://www.w3.org/2001/XMLSchema,boolean */ + int EVSECurrentLimitAchieved ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEVoltageLimitAchieved, http://www.w3.org/2001/XMLSchema,boolean */ + int EVSEVoltageLimitAchieved ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEMaximumChargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumChargePower ; + unsigned int EVSEMaximumChargePower_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEMaximumDischargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumDischargePower ; + unsigned int EVSEMaximumDischargePower_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEMaximumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumChargeCurrent ; + unsigned int EVSEMaximumChargeCurrent_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEMaximumDischargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumDischargeCurrent ; + unsigned int EVSEMaximumDischargeCurrent_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEMaximumVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumVoltage ; + unsigned int EVSEMaximumVoltage_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEMinimumVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMinimumVoltage ; + unsigned int EVSEMinimumVoltage_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEID, urn:iso:15118:2:2016:MsgDataTypes,evseIDType */ + struct { + exi_string_character_t characters[iso2DC_BidirectionalControlResType_EVSEID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } EVSEID ; + /* element: "urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID, urn:iso:15118:2:2016:MsgDataTypes,SAIDType */ + uint8_t SAScheduleTupleID ; + unsigned int SAScheduleTupleID_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":MeterInfo, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MeterID,"urn:iso:15118:2:2016:MsgDataTypes":MeterReadingCharged{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MeterReadingDischarged{0-1},"urn:iso:15118:2:2016:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ + struct iso2MeterInfoType MeterInfo ; + unsigned int MeterInfo_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":ReceiptRequired, http://www.w3.org/2001/XMLSchema,boolean */ + int ReceiptRequired ; + unsigned int ReceiptRequired_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,CostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":costKind,"urn:iso:15118:2:2016:MsgDataTypes":amount)', derivedBy='RESTRICTION'. */ +struct iso2CostType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":costKind, urn:iso:15118:2:2016:MsgDataTypes,costKindType */ + iso2costKindType costKind ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":amount, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType amount ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ChargingStatusResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1},"urn:iso:15118:2:2016:MsgBody":EVSETargetPower{0-1}))', derivedBy='EXTENSION'. */ +#define iso2ChargingStatusResType_EVSEID_CHARACTERS_SIZE 37 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,evseIDType is 37 */ +struct iso2ChargingStatusResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEID, urn:iso:15118:2:2016:MsgDataTypes,evseIDType */ + struct { + exi_string_character_t characters[iso2ChargingStatusResType_EVSEID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } EVSEID ; + /* element: "urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID, urn:iso:15118:2:2016:MsgDataTypes,SAIDType */ + uint8_t SAScheduleTupleID ; + unsigned int SAScheduleTupleID_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":MeterInfo, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MeterID,"urn:iso:15118:2:2016:MsgDataTypes":MeterReadingCharged{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MeterReadingDischarged{0-1},"urn:iso:15118:2:2016:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ + struct iso2MeterInfoType MeterInfo ; + unsigned int MeterInfo_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":ReceiptRequired, http://www.w3.org/2001/XMLSchema,boolean */ + int ReceiptRequired ; + unsigned int ReceiptRequired_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSETargetPower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSETargetPower ; + unsigned int EVSETargetPower_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,AC_EVChargeParameterType', base type name='EVEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage))', derivedBy='EXTENSION'. */ +struct iso2AC_EVChargeParameterType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":DepartureTime, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t DepartureTime ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumChargePower ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumChargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumChargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVTargetEnergyRequest ; + unsigned int EVTargetEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumEnergyRequest ; + unsigned int EVMaximumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumEnergyRequest ; + unsigned int EVMinimumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumVoltage ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,AC_EVSEBidirectionalParameterType', base type name='AC_EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalFrequency),("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalFrequency))', derivedBy='EXTENSION'. */ +struct iso2AC_EVSEBidirectionalParameterType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumChargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSENominalVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSENominalVoltage ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSENominalFrequency, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSENominalFrequency ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumDischargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumDischargeCurrent ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,VehicleCheckOutResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSECheckOutStatus))', derivedBy='EXTENSION'. */ +struct iso2VehicleCheckOutResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSECheckOutStatus, urn:iso:15118:2:2016:MsgDataTypes,EVCheckOutStatusType */ + iso2EVCheckOutStatusType EVSECheckOutStatus ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CableCheckResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing))', derivedBy='EXTENSION'. */ +struct iso2CableCheckResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEProcessing, urn:iso:15118:2:2016:MsgDataTypes,EVSEProcessingType */ + iso2EVSEProcessingType EVSEProcessing ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ServiceDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":SupportedServiceIDs{0-1})', derivedBy='EXTENSION'. */ +struct iso2ServiceDiscoveryReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":SupportedServiceIDs, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ServiceIDListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ServiceID{1-10})', derivedBy='RESTRICTION'. */ + struct iso2ServiceIDListType SupportedServiceIDs ; + unsigned int SupportedServiceIDs_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertiesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignatureProperty{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso2SignaturePropertiesType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2SignaturePropertiesType_SignatureProperty_ARRAY_SIZE 1 +struct iso2SignaturePropertiesType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso2SignaturePropertiesType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":SignatureProperty, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct iso2SignaturePropertyType array[iso2SignaturePropertiesType_SignatureProperty_ARRAY_SIZE]; + uint16_t arrayLen; + } SignatureProperty; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":RelativeTimeInterval),("urn:iso:15118:2:2016:MsgDataTypes":PMax{1-3}))', derivedBy='EXTENSION'. */ +#define iso2PMaxScheduleEntryType_PMax_ARRAY_SIZE 3 +struct iso2PMaxScheduleEntryType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":RelativeTimeInterval, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,RelativeTimeIntervalType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":start,"urn:iso:15118:2:2016:MsgDataTypes":duration{0-1})', derivedBy='RESTRICTION'. */ + struct iso2RelativeTimeIntervalType RelativeTimeInterval ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":PMax, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct { + struct iso2PhysicalValueType array[iso2PMaxScheduleEntryType_PMax_ARRAY_SIZE]; + uint16_t arrayLen; + } PMax; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,VehicleCheckInReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVCheckInStatus,"urn:iso:15118:2:2016:MsgBody":ParkingMethod{0-1})', derivedBy='EXTENSION'. */ +struct iso2VehicleCheckInReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":EVCheckInStatus, urn:iso:15118:2:2016:MsgDataTypes,EVCheckInStatusType */ + iso2EVCheckInStatusType EVCheckInStatus ; + /* element: "urn:iso:15118:2:2016:MsgBody":ParkingMethod, urn:iso:15118:2:2016:MsgDataTypes,parkingMethodType */ + iso2parkingMethodType ParkingMethod ; + unsigned int ParkingMethod_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ConnectChargingDeviceResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":EVSEElectricalChargingDeviceStatus,"urn:iso:15118:2:2016:MsgBody":EVSEMechanicalChargingDeviceStatus))', derivedBy='EXTENSION'. */ +struct iso2ConnectChargingDeviceResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEProcessing, urn:iso:15118:2:2016:MsgDataTypes,EVSEProcessingType */ + iso2EVSEProcessingType EVSEProcessing ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEElectricalChargingDeviceStatus, urn:iso:15118:2:2016:MsgDataTypes,electricalChargingDeviceStatusType */ + iso2electricalChargingDeviceStatusType EVSEElectricalChargingDeviceStatus ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEMechanicalChargingDeviceStatus, urn:iso:15118:2:2016:MsgDataTypes,mechanicalChargingDeviceStatusType */ + iso2mechanicalChargingDeviceStatusType EVSEMechanicalChargingDeviceStatus ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,WeldingDetectionResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage))', derivedBy='EXTENSION'. */ +struct iso2WeldingDetectionResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEPresentVoltage ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,SessionStopResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1})', derivedBy='EXTENSION'. */ +struct iso2SessionStopResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,VehicleCheckInResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":VehicleSpace,"urn:iso:15118:2:2016:MsgBody":TargetOffset{0-1}))', derivedBy='EXTENSION'. */ +struct iso2VehicleCheckInResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":VehicleSpace, http://www.w3.org/2001/XMLSchema,unsignedShort */ + uint16_t VehicleSpace ; + /* element: "urn:iso:15118:2:2016:MsgBody":TargetOffset, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,TargetPositionType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":TargetOffsetX,"urn:iso:15118:2:2016:MsgDataTypes":TargetOffsetY)', derivedBy='RESTRICTION'. */ + struct iso2TargetPositionType TargetOffset ; + unsigned int TargetOffset_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,AC_EVBidirectionalParameterType', base type name='AC_EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage)),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumDischargeCurrent))', derivedBy='EXTENSION'. */ +struct iso2AC_EVBidirectionalParameterType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":DepartureTime, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t DepartureTime ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumChargePower ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumChargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumChargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVTargetEnergyRequest ; + unsigned int EVTargetEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumEnergyRequest ; + unsigned int EVMaximumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumEnergyRequest ; + unsigned int EVMinimumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumVoltage ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumDischargePower ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumDischargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMinimumDischargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumDischargeCurrent ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ConsumptionCostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":startValue,"urn:iso:15118:2:2016:MsgDataTypes":Cost{1-3})', derivedBy='RESTRICTION'. */ +#define iso2ConsumptionCostType_Cost_ARRAY_SIZE 3 +struct iso2ConsumptionCostType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":startValue, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType startValue ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":Cost, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,CostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":costKind,"urn:iso:15118:2:2016:MsgDataTypes":amount)', derivedBy='RESTRICTION'. */ + struct { + struct iso2CostType array[iso2ConsumptionCostType_Cost_ARRAY_SIZE]; + uint16_t arrayLen; + } Cost; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PaymentOptionListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":PaymentOption{1-2})', derivedBy='RESTRICTION'. */ +#define iso2PaymentOptionListType_PaymentOption_ARRAY_SIZE 2 +struct iso2PaymentOptionListType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":PaymentOption, urn:iso:15118:2:2016:MsgDataTypes,paymentOptionType */ + struct { + iso2paymentOptionType array[iso2PaymentOptionListType_PaymentOption_ARRAY_SIZE]; + uint16_t arrayLen; + } PaymentOption; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso2TransformsType_Transform_ARRAY_SIZE 1 +struct iso2TransformsType { + /* element: "http://www.w3.org/2000/09/xmldsig#":Transform, Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct iso2TransformType array[iso2TransformsType_Transform_ARRAY_SIZE]; + uint16_t arrayLen; + } Transform; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ParameterType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":boolValue|"urn:iso:15118:2:2016:MsgDataTypes":byteValue|"urn:iso:15118:2:2016:MsgDataTypes":shortValue|"urn:iso:15118:2:2016:MsgDataTypes":intValue|"urn:iso:15118:2:2016:MsgDataTypes":physicalValue|"urn:iso:15118:2:2016:MsgDataTypes":stringValue)', derivedBy='RESTRICTION'. */ +#define iso2ParameterType_Name_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2ParameterType_stringValue_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso2ParameterType { + /* attribute: Name {http://www.w3.org/2001/XMLSchema,string} */ + struct { + exi_string_character_t characters[iso2ParameterType_Name_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Name ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":boolValue, http://www.w3.org/2001/XMLSchema,boolean */ + int boolValue ; + unsigned int boolValue_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":byteValue, http://www.w3.org/2001/XMLSchema,byte */ + int8_t byteValue ; + unsigned int byteValue_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":shortValue, http://www.w3.org/2001/XMLSchema,short */ + int16_t shortValue ; + unsigned int shortValue_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":intValue, http://www.w3.org/2001/XMLSchema,int */ + int32_t intValue ; + unsigned int intValue_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":physicalValue, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType physicalValue ; + unsigned int physicalValue_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":stringValue, http://www.w3.org/2001/XMLSchema,string */ + struct { + exi_string_character_t characters[iso2ParameterType_stringValue_CHARACTERS_SIZE]; + uint16_t charactersLen; + } stringValue ; + unsigned int stringValue_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,SessionStopReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ChargingSession)', derivedBy='EXTENSION'. */ +struct iso2SessionStopReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":ChargingSession, urn:iso:15118:2:2016:MsgDataTypes,chargingSessionType */ + iso2chargingSessionType ChargingSession ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorMeasurementsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SensorID,"urn:iso:15118:2:2016:MsgDataTypes":EffectiveRadiatedPower,"urn:iso:15118:2:2016:MsgDataTypes":MeasurementDataList)', derivedBy='RESTRICTION'. */ +struct iso2SensorMeasurementsType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SensorID, http://www.w3.org/2001/XMLSchema,unsignedByte */ + uint8_t SensorID ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EffectiveRadiatedPower, http://www.w3.org/2001/XMLSchema,byte */ + int8_t EffectiveRadiatedPower ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":MeasurementDataList, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MeasurementDataListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MeasurementData{1-255})', derivedBy='RESTRICTION'. */ + struct iso2MeasurementDataListType MeasurementDataList ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DC_EVSEChargeParameterType', base type name='EVSEEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2016:MsgDataTypes":EVSEEnergyToBeDelivered{0-1})', derivedBy='EXTENSION'. */ +struct iso2DC_EVSEChargeParameterType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumChargePower ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumChargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMinimumChargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumVoltage ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMinimumVoltage ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSECurrentRegulationTolerance, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSECurrentRegulationTolerance ; + unsigned int EVSECurrentRegulationTolerance_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEPeakCurrentRipple, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEPeakCurrentRipple ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEEnergyToBeDelivered, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEEnergyToBeDelivered ; + unsigned int EVSEEnergyToBeDelivered_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Certificate,"urn:iso:15118:2:2016:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ +#define iso2CertificateChainType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2CertificateChainType_Certificate_BYTES_SIZE 800 /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,certificateType is 800 */ +struct iso2CertificateChainType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso2CertificateChainType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":Certificate, urn:iso:15118:2:2016:MsgDataTypes,certificateType */ + struct { + uint8_t bytes[iso2CertificateChainType_Certificate_BYTES_SIZE]; + uint16_t bytesLen; + } Certificate ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SubCertificates, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SubCertificatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Certificate{1-4})', derivedBy='RESTRICTION'. */ + struct iso2SubCertificatesType SubCertificates ; + unsigned int SubCertificates_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,WPT_EVChargeParameterType', base type name='EVEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumPower,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumPower,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1}))', derivedBy='EXTENSION'. */ +struct iso2WPT_EVChargeParameterType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":DepartureTime, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t DepartureTime ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumPower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumPower ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMinimumPower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumPower ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVTargetEnergyRequest ; + unsigned int EVTargetEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumEnergyRequest ; + unsigned int EVMaximumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumEnergyRequest ; + unsigned int EVMinimumEnergyRequest_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,DisconnectChargingDeviceReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVElectricalChargingDeviceStatus,"urn:iso:15118:2:2016:MsgBody":EVMechanicalChargingDeviceStatus)', derivedBy='EXTENSION'. */ +struct iso2DisconnectChargingDeviceReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":EVElectricalChargingDeviceStatus, urn:iso:15118:2:2016:MsgDataTypes,electricalChargingDeviceStatusType */ + iso2electricalChargingDeviceStatusType EVElectricalChargingDeviceStatus ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMechanicalChargingDeviceStatus, urn:iso:15118:2:2016:MsgDataTypes,mechanicalChargingDeviceStatusType */ + iso2mechanicalChargingDeviceStatusType EVMechanicalChargingDeviceStatus ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,MeteringReceiptResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1})', derivedBy='EXTENSION'. */ +struct iso2MeteringReceiptResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,SessionSetupResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":EVSETimeStamp{0-1}))', derivedBy='EXTENSION'. */ +#define iso2SessionSetupResType_EVSEID_CHARACTERS_SIZE 37 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,evseIDType is 37 */ +struct iso2SessionSetupResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEID, urn:iso:15118:2:2016:MsgDataTypes,evseIDType */ + struct { + exi_string_character_t characters[iso2SessionSetupResType_EVSEID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } EVSEID ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSETimeStamp, http://www.w3.org/2001/XMLSchema,long */ + int64_t EVSETimeStamp ; + unsigned int EVSETimeStamp_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ +#define iso2ReferenceType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2ReferenceType_URI_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2ReferenceType_Type_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2ReferenceType_DigestValue_BYTES_SIZE 350 +struct iso2ReferenceType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso2ReferenceType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* attribute: URI {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso2ReferenceType_URI_CHARACTERS_SIZE]; + uint16_t charactersLen; + } URI ; + unsigned int URI_isUsed:1; + /* attribute: Type {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso2ReferenceType_Type_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Type ; + unsigned int Type_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Transforms, Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso2TransformsType Transforms ; + unsigned int Transforms_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":DigestMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso2DigestMethodType DigestMethod ; + /* element: "http://www.w3.org/2000/09/xmldsig#":DigestValue, http://www.w3.org/2000/09/xmldsig#,DigestValueType */ + struct { + uint8_t bytes[iso2ReferenceType_DigestValue_BYTES_SIZE]; + uint16_t bytesLen; + } DigestValue ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Sensor{1-255})', derivedBy='RESTRICTION'. */ +#define iso2SensorListType_Sensor_ARRAY_SIZE 5 +struct iso2SensorListType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":Sensor, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SensorID,"urn:iso:15118:2:2016:MsgDataTypes":SensorPosition,"urn:iso:15118:2:2016:MsgDataTypes":SensorOrientation)', derivedBy='RESTRICTION'. */ + struct { + struct iso2SensorType array[iso2SensorListType_Sensor_ARRAY_SIZE]; + uint16_t arrayLen; + } Sensor; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,LFA_EVFinePositioningSetupParametersType', base type name='EVFinePositioningSetupParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NumberOfSensors,"urn:iso:15118:2:2016:MsgDataTypes":SensorList,"urn:iso:15118:2:2016:MsgDataTypes":SensorOrder,"urn:iso:15118:2:2016:MsgDataTypes":SignalPulseDuration,"urn:iso:15118:2:2016:MsgDataTypes":SignalSeparationTime,"urn:iso:15118:2:2016:MsgDataTypes":PackageSeparationTime,"urn:iso:15118:2:2016:MsgDataTypes":AlignmentOffset)', derivedBy='EXTENSION'. */ +struct iso2LFA_EVFinePositioningSetupParametersType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":NumberOfSensors, http://www.w3.org/2001/XMLSchema,unsignedByte */ + uint8_t NumberOfSensors ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SensorList, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Sensor{1-255})', derivedBy='RESTRICTION'. */ + struct iso2SensorListType SensorList ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SensorOrder, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorOrderListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SensorPosition{1-255})', derivedBy='RESTRICTION'. */ + struct iso2SensorOrderListType SensorOrder ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SignalPulseDuration, http://www.w3.org/2001/XMLSchema,unsignedByte */ + uint8_t SignalPulseDuration ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SignalSeparationTime, http://www.w3.org/2001/XMLSchema,unsignedByte */ + uint8_t SignalSeparationTime ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":PackageSeparationTime, http://www.w3.org/2001/XMLSchema,unsignedByte */ + uint8_t PackageSeparationTime ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":AlignmentOffset, http://www.w3.org/2001/XMLSchema,unsignedShort */ + uint16_t AlignmentOffset ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,WPT_EVSEChargeParameterType', base type name='EVSEEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumPower,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumPower)', derivedBy='EXTENSION'. */ +struct iso2WPT_EVSEChargeParameterType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumPower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumPower ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumPower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMinimumPower ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2016:MsgDataTypes":Parameter{1-16})', derivedBy='RESTRICTION'. */ +#define iso2ParameterSetType_Parameter_ARRAY_SIZE 16 +struct iso2ParameterSetType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID, http://www.w3.org/2001/XMLSchema,unsignedShort */ + uint16_t ParameterSetID ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":Parameter, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ParameterType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":boolValue|"urn:iso:15118:2:2016:MsgDataTypes":byteValue|"urn:iso:15118:2:2016:MsgDataTypes":shortValue|"urn:iso:15118:2:2016:MsgDataTypes":intValue|"urn:iso:15118:2:2016:MsgDataTypes":physicalValue|"urn:iso:15118:2:2016:MsgDataTypes":stringValue)', derivedBy='RESTRICTION'. */ + struct { + struct iso2ParameterType array[iso2ParameterSetType_Parameter_ARRAY_SIZE]; + uint16_t arrayLen; + } Parameter; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PaymentDetailsResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":GenChallenge,"urn:iso:15118:2:2016:MsgBody":EVSETimeStamp))', derivedBy='EXTENSION'. */ +#define iso2PaymentDetailsResType_GenChallenge_BYTES_SIZE 16 /* XML schema facet length for urn:iso:15118:2:2016:MsgDataTypes,genChallengeType is 16 */ +struct iso2PaymentDetailsResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":GenChallenge, urn:iso:15118:2:2016:MsgDataTypes,genChallengeType */ + struct { + uint8_t bytes[iso2PaymentDetailsResType_GenChallenge_BYTES_SIZE]; + uint16_t bytesLen; + } GenChallenge ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSETimeStamp, http://www.w3.org/2001/XMLSchema,long */ + int64_t EVSETimeStamp ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,AC_BidirectionalControlResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":EVSETargetPower,"urn:iso:15118:2:2016:MsgBody":EVSETargetReactivePower,"urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1}))', derivedBy='EXTENSION'. */ +#define iso2AC_BidirectionalControlResType_EVSEID_CHARACTERS_SIZE 37 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,evseIDType is 37 */ +struct iso2AC_BidirectionalControlResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEProcessing, urn:iso:15118:2:2016:MsgDataTypes,EVSEProcessingType */ + iso2EVSEProcessingType EVSEProcessing ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSETargetPower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSETargetPower ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSETargetReactivePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSETargetReactivePower ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEID, urn:iso:15118:2:2016:MsgDataTypes,evseIDType */ + struct { + exi_string_character_t characters[iso2AC_BidirectionalControlResType_EVSEID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } EVSEID ; + /* element: "urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID, urn:iso:15118:2:2016:MsgDataTypes,SAIDType */ + uint8_t SAScheduleTupleID ; + unsigned int SAScheduleTupleID_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":MeterInfo, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MeterID,"urn:iso:15118:2:2016:MsgDataTypes":MeterReadingCharged{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MeterReadingDischarged{0-1},"urn:iso:15118:2:2016:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ + struct iso2MeterInfoType MeterInfo ; + unsigned int MeterInfo_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":ReceiptRequired, http://www.w3.org/2001/XMLSchema,boolean */ + int ReceiptRequired ; + unsigned int ReceiptRequired_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,VehicleCheckOutReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVCheckOutStatus,"urn:iso:15118:2:2016:MsgBody":CheckOutTime)', derivedBy='EXTENSION'. */ +struct iso2VehicleCheckOutReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":EVCheckOutStatus, urn:iso:15118:2:2016:MsgDataTypes,EVCheckOutStatusType */ + iso2EVCheckOutStatusType EVCheckOutStatus ; + /* element: "urn:iso:15118:2:2016:MsgBody":CheckOutTime, http://www.w3.org/2001/XMLSchema,unsignedLong */ + uint64_t CheckOutTime ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,AlignmentCheckResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":AlignmentCheckParameters{0-1}))', derivedBy='EXTENSION'. */ +struct iso2AlignmentCheckResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEProcessing, urn:iso:15118:2:2016:MsgDataTypes,EVSEProcessingType */ + iso2EVSEProcessingType EVSEProcessing ; + /* element: "urn:iso:15118:2:2016:MsgBody":AlignmentCheckParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2016:MsgDataTypes":Parameter{1-16})', derivedBy='RESTRICTION'. */ + struct iso2ParameterSetType AlignmentCheckParameters ; + unsigned int AlignmentCheckParameters_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MinimumPMaxRequestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MinimumPMaxScheduleEntry{1-3})', derivedBy='RESTRICTION'. */ +#define iso2MinimumPMaxRequestType_MinimumPMaxScheduleEntry_ARRAY_SIZE 3 +struct iso2MinimumPMaxRequestType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":MinimumPMaxScheduleEntry, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":RelativeTimeInterval),("urn:iso:15118:2:2016:MsgDataTypes":PMax{1-3}))', derivedBy='EXTENSION'. */ + struct { + struct iso2PMaxScheduleEntryType array[iso2MinimumPMaxRequestType_MinimumPMaxScheduleEntry_ARRAY_SIZE]; + uint16_t arrayLen; + } MinimumPMaxScheduleEntry; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,DisconnectChargingDeviceResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":EVSEElectricalChargingDeviceStatus,"urn:iso:15118:2:2016:MsgBody":EVSEMechanicalChargingDeviceStatus))', derivedBy='EXTENSION'. */ +struct iso2DisconnectChargingDeviceResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEProcessing, urn:iso:15118:2:2016:MsgDataTypes,EVSEProcessingType */ + iso2EVSEProcessingType EVSEProcessing ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEElectricalChargingDeviceStatus, urn:iso:15118:2:2016:MsgDataTypes,electricalChargingDeviceStatusType */ + iso2electricalChargingDeviceStatusType EVSEElectricalChargingDeviceStatus ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEMechanicalChargingDeviceStatus, urn:iso:15118:2:2016:MsgDataTypes,mechanicalChargingDeviceStatusType */ + iso2mechanicalChargingDeviceStatusType EVSEMechanicalChargingDeviceStatus ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PaymentDetailsReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":eMAID,"urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain)', derivedBy='EXTENSION'. */ +#define iso2PaymentDetailsReqType_eMAID_CHARACTERS_SIZE 15 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,eMAIDType is 15 */ +struct iso2PaymentDetailsReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":eMAID, urn:iso:15118:2:2016:MsgDataTypes,eMAIDType */ + struct { + exi_string_character_t characters[iso2PaymentDetailsReqType_eMAID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } eMAID ; + /* element: "urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Certificate,"urn:iso:15118:2:2016:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ + struct iso2CertificateChainType ContractSignatureCertChain ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,Generic_EVFinePositioningParametersType', base type name='EVFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":GenericParameters)', derivedBy='EXTENSION'. */ +struct iso2Generic_EVFinePositioningParametersType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":GenericParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2016:MsgDataTypes":Parameter{1-16})', derivedBy='RESTRICTION'. */ + struct iso2ParameterSetType GenericParameters ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ConnectChargingDeviceReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVElectricalChargingDeviceStatus,"urn:iso:15118:2:2016:MsgBody":EVMechanicalChargingDeviceStatus)', derivedBy='EXTENSION'. */ +struct iso2ConnectChargingDeviceReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":EVElectricalChargingDeviceStatus, urn:iso:15118:2:2016:MsgDataTypes,electricalChargingDeviceStatusType */ + iso2electricalChargingDeviceStatusType EVElectricalChargingDeviceStatus ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMechanicalChargingDeviceStatus, urn:iso:15118:2:2016:MsgDataTypes,mechanicalChargingDeviceStatusType */ + iso2mechanicalChargingDeviceStatusType EVMechanicalChargingDeviceStatus ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,AC_EVSEChargeParameterType', base type name='EVSEEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalFrequency)', derivedBy='EXTENSION'. */ +struct iso2AC_EVSEChargeParameterType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumChargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSENominalVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSENominalVoltage ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSENominalFrequency, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSENominalFrequency ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SalesTariffEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":RelativeTimeInterval),("urn:iso:15118:2:2016:MsgDataTypes":EPriceLevel{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ConsumptionCost{0-3}))', derivedBy='EXTENSION'. */ +#define iso2SalesTariffEntryType_ConsumptionCost_ARRAY_SIZE 3 +struct iso2SalesTariffEntryType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":RelativeTimeInterval, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,RelativeTimeIntervalType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":start,"urn:iso:15118:2:2016:MsgDataTypes":duration{0-1})', derivedBy='RESTRICTION'. */ + struct iso2RelativeTimeIntervalType RelativeTimeInterval ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EPriceLevel, http://www.w3.org/2001/XMLSchema,unsignedByte */ + uint8_t EPriceLevel ; + unsigned int EPriceLevel_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":ConsumptionCost, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ConsumptionCostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":startValue,"urn:iso:15118:2:2016:MsgDataTypes":Cost{1-3})', derivedBy='RESTRICTION'. */ + struct { + struct iso2ConsumptionCostType array[iso2SalesTariffEntryType_ConsumptionCost_ARRAY_SIZE]; + uint16_t arrayLen; + } ConsumptionCost; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DC_EVSEBidirectionalParameterType', base type name='DC_EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2016:MsgDataTypes":EVSEEnergyToBeDelivered{0-1}),("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumDischargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumDischargeCurrent))', derivedBy='EXTENSION'. */ +struct iso2DC_EVSEBidirectionalParameterType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumChargePower ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumChargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMinimumChargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumVoltage ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMinimumVoltage ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSECurrentRegulationTolerance, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSECurrentRegulationTolerance ; + unsigned int EVSECurrentRegulationTolerance_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEPeakCurrentRipple, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEPeakCurrentRipple ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEEnergyToBeDelivered, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEEnergyToBeDelivered ; + unsigned int EVSEEnergyToBeDelivered_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumDischargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumDischargePower ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumDischargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumDischargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumDischargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMinimumDischargeCurrent ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DisplayParametersType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":CurrentRange{0-1},"urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MinimumSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ChargingPerformance{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToTargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToBulkSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToMinimumSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ChargingComplete{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2016:MsgDataTypes":InletHot{0-1})', derivedBy='RESTRICTION'. */ +struct iso2DisplayParametersType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":CurrentRange, http://www.w3.org/2001/XMLSchema,unsignedShort */ + uint16_t CurrentRange ; + unsigned int CurrentRange_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC, urn:iso:15118:2:2016:MsgDataTypes,percentValueType */ + int8_t CurrentSOC ; + unsigned int CurrentSOC_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":TargetSOC, urn:iso:15118:2:2016:MsgDataTypes,percentValueType */ + int8_t TargetSOC ; + unsigned int TargetSOC_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":BulkSOC, urn:iso:15118:2:2016:MsgDataTypes,percentValueType */ + int8_t BulkSOC ; + unsigned int BulkSOC_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":MinimumSOC, urn:iso:15118:2:2016:MsgDataTypes,percentValueType */ + int8_t MinimumSOC ; + unsigned int MinimumSOC_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":ChargingPerformance, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType ChargingPerformance ; + unsigned int ChargingPerformance_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToTargetSOC, urn:iso:15118:2:2016:MsgDataTypes,percentValueType */ + int8_t RemainingTimeToTargetSOC ; + unsigned int RemainingTimeToTargetSOC_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToBulkSOC, urn:iso:15118:2:2016:MsgDataTypes,percentValueType */ + int8_t RemainingTimeToBulkSOC ; + unsigned int RemainingTimeToBulkSOC_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToMinimumSOC, urn:iso:15118:2:2016:MsgDataTypes,percentValueType */ + int8_t RemainingTimeToMinimumSOC ; + unsigned int RemainingTimeToMinimumSOC_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":ChargingComplete, http://www.w3.org/2001/XMLSchema,boolean */ + int ChargingComplete ; + unsigned int ChargingComplete_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":BulkChargingComplete, http://www.w3.org/2001/XMLSchema,boolean */ + int BulkChargingComplete ; + unsigned int BulkChargingComplete_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":InletHot, http://www.w3.org/2001/XMLSchema,boolean */ + int InletHot ; + unsigned int InletHot_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DC_EVBidirectionalParameterType', base type name='DC_EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkSOC{0-1})),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumDischargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":MinimumSOC{0-1}))', derivedBy='EXTENSION'. */ +struct iso2DC_EVBidirectionalParameterType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":DepartureTime, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t DepartureTime ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumChargePower ; + unsigned int EVMaximumChargePower_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumChargePower ; + unsigned int EVMinimumChargePower_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumChargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumChargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumVoltage ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVTargetEnergyRequest ; + unsigned int EVTargetEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumEnergyRequest ; + unsigned int EVMaximumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumEnergyRequest ; + unsigned int EVMinimumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC, urn:iso:15118:2:2016:MsgDataTypes,percentValueType */ + int8_t CurrentSOC ; + unsigned int CurrentSOC_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":TargetSOC, urn:iso:15118:2:2016:MsgDataTypes,percentValueType */ + int8_t TargetSOC ; + unsigned int TargetSOC_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":BulkSOC, urn:iso:15118:2:2016:MsgDataTypes,percentValueType */ + int8_t BulkSOC ; + unsigned int BulkSOC_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumDischargePower ; + unsigned int EVMaximumDischargePower_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMinimumDischargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumDischargePower ; + unsigned int EVMinimumDischargePower_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumDischargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMinimumDischargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumDischargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVMinimumVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumVoltage ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":MinimumSOC, urn:iso:15118:2:2016:MsgDataTypes,percentValueType */ + int8_t MinimumSOC ; + unsigned int MinimumSOC_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MagneticVectorType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":GAID,"urn:iso:15118:2:2016:MsgDataTypes":Distance,"urn:iso:15118:2:2016:MsgDataTypes":AngleGAtoVA,"urn:iso:15118:2:2016:MsgDataTypes":RotationVAtoGA,"urn:iso:15118:2:2016:MsgDataTypes":FODStatus)', derivedBy='RESTRICTION'. */ +#define iso2MagneticVectorType_GAID_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso2MagneticVectorType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":GAID, http://www.w3.org/2001/XMLSchema,ID */ + struct { + exi_string_character_t characters[iso2MagneticVectorType_GAID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } GAID ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":Distance, http://www.w3.org/2001/XMLSchema,unsignedShort */ + uint16_t Distance ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":AngleGAtoVA, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType AngleGAtoVA ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":RotationVAtoGA, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType RotationVAtoGA ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":FODStatus, urn:iso:15118:2:2016:MsgDataTypes,FODStatusType */ + iso2FODStatusType FODStatus ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,SystemStatusResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":OperationMode,"urn:iso:15118:2:2016:MsgBody":EVSEMechanicalChargingDeviceStatus))', derivedBy='EXTENSION'. */ +struct iso2SystemStatusResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":OperationMode, urn:iso:15118:2:2016:MsgDataTypes,operationModeType */ + iso2operationModeType OperationMode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEMechanicalChargingDeviceStatus, urn:iso:15118:2:2016:MsgDataTypes,mechanicalChargingDeviceStatusType */ + iso2mechanicalChargingDeviceStatusType EVSEMechanicalChargingDeviceStatus ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,V2GResponseType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1})', derivedBy='EXTENSION'. */ +struct iso2V2GResponseType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PreChargeResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage))', derivedBy='EXTENSION'. */ +struct iso2PreChargeResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEPresentVoltage ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PaymentServiceSelectionResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1})', derivedBy='EXTENSION'. */ +struct iso2PaymentServiceSelectionResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ManifestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso2ManifestType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2ManifestType_Reference_ARRAY_SIZE 1 +struct iso2ManifestType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso2ManifestType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Reference, Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ + struct { + struct iso2ReferenceType array[iso2ManifestType_Reference_ARRAY_SIZE]; + uint16_t arrayLen; + } Reference; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SelectedServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SelectedService{1-16})', derivedBy='RESTRICTION'. */ +#define iso2SelectedServiceListType_SelectedService_ARRAY_SIZE 16 +struct iso2SelectedServiceListType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SelectedService, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SelectedServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ServiceID,"urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID)', derivedBy='RESTRICTION'. */ + struct { + struct iso2SelectedServiceType array[iso2SelectedServiceListType_SelectedService_ARRAY_SIZE]; + uint16_t arrayLen; + } SelectedService; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,Generic_EVSEFinePositioningParametersType', base type name='EVSEFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":GenericParameters)', derivedBy='EXTENSION'. */ +struct iso2Generic_EVSEFinePositioningParametersType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":GenericParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2016:MsgDataTypes":Parameter{1-16})', derivedBy='RESTRICTION'. */ + struct iso2ParameterSetType GenericParameters ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":RootCertificateID{1-20})', derivedBy='RESTRICTION'. */ +#define iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE 20 +struct iso2ListOfRootCertificateIDsType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":RootCertificateID, Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */ + struct { + struct iso2X509IssuerSerialType array[iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE]; + uint16_t arrayLen; + } RootCertificateID; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PairingReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVProcessing,"urn:iso:15118:2:2016:MsgBody":PairingParameters{0-1})', derivedBy='EXTENSION'. */ +struct iso2PairingReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":EVProcessing, urn:iso:15118:2:2016:MsgDataTypes,EVSEProcessingType */ + iso2EVSEProcessingType EVProcessing ; + /* element: "urn:iso:15118:2:2016:MsgBody":PairingParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2016:MsgDataTypes":Parameter{1-16})', derivedBy='RESTRICTION'. */ + struct iso2ParameterSetType PairingParameters ; + unsigned int PairingParameters_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CurrentDemandResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2016:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSEMaximumPower{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumVoltage{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1}))', derivedBy='EXTENSION'. */ +#define iso2CurrentDemandResType_EVSEID_CHARACTERS_SIZE 37 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,evseIDType is 37 */ +struct iso2CurrentDemandResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEPresentCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEPresentCurrent ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEPresentVoltage ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEPowerLimitAchieved, http://www.w3.org/2001/XMLSchema,boolean */ + int EVSEPowerLimitAchieved ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSECurrentLimitAchieved, http://www.w3.org/2001/XMLSchema,boolean */ + int EVSECurrentLimitAchieved ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEVoltageLimitAchieved, http://www.w3.org/2001/XMLSchema,boolean */ + int EVSEVoltageLimitAchieved ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEMaximumPower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumPower ; + unsigned int EVSEMaximumPower_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEMaximumCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumCurrent ; + unsigned int EVSEMaximumCurrent_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEMaximumVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEMaximumVoltage ; + unsigned int EVSEMaximumVoltage_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEID, urn:iso:15118:2:2016:MsgDataTypes,evseIDType */ + struct { + exi_string_character_t characters[iso2CurrentDemandResType_EVSEID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } EVSEID ; + /* element: "urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID, urn:iso:15118:2:2016:MsgDataTypes,SAIDType */ + uint8_t SAScheduleTupleID ; + unsigned int SAScheduleTupleID_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":MeterInfo, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MeterID,"urn:iso:15118:2:2016:MsgDataTypes":MeterReadingCharged{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MeterReadingDischarged{0-1},"urn:iso:15118:2:2016:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ + struct iso2MeterInfoType MeterInfo ; + unsigned int MeterInfo_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":ReceiptRequired, http://www.w3.org/2001/XMLSchema,boolean */ + int ReceiptRequired ; + unsigned int ReceiptRequired_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ChargingStatusReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumChargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumChargeCurrent{0-1}))', derivedBy='EXTENSION'. */ +struct iso2ChargingStatusReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVTargetEnergyRequest ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumEnergyRequest ; + unsigned int EVMaximumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumEnergyRequest ; + unsigned int EVMinimumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":DisplayParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DisplayParametersType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":CurrentRange{0-1},"urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MinimumSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ChargingPerformance{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToTargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToBulkSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToMinimumSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ChargingComplete{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2016:MsgDataTypes":InletHot{0-1})', derivedBy='RESTRICTION'. */ + struct iso2DisplayParametersType DisplayParameters ; + unsigned int DisplayParameters_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumChargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumChargePower ; + unsigned int EVMaximumChargePower_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumChargeCurrent ; + unsigned int EVMaximumChargeCurrent_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMinimumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumChargeCurrent ; + unsigned int EVMinimumChargeCurrent_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CertificateInstallationResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2016:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2016:MsgBody":DHpublickey,"urn:iso:15118:2:2016:MsgBody":eMAID))', derivedBy='EXTENSION'. */ +struct iso2CertificateInstallationResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":SAProvisioningCertificateChain, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Certificate,"urn:iso:15118:2:2016:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ + struct iso2CertificateChainType SAProvisioningCertificateChain ; + /* element: "urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Certificate,"urn:iso:15118:2:2016:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ + struct iso2CertificateChainType ContractSignatureCertChain ; + /* element: "urn:iso:15118:2:2016:MsgBody":ContractSignatureEncryptedPrivateKey, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ContractSignatureEncryptedPrivateKeyType', base type name='encryptedPrivateKeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct iso2ContractSignatureEncryptedPrivateKeyType ContractSignatureEncryptedPrivateKey ; + /* element: "urn:iso:15118:2:2016:MsgBody":DHpublickey, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DiffieHellmanPublickeyType', base type name='dHpublickeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct iso2DiffieHellmanPublickeyType DHpublickey ; + /* element: "urn:iso:15118:2:2016:MsgBody":eMAID, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EMAIDType', base type name='eMAIDType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct iso2EMAIDType eMAID ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorPackageType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":PackageIndex,"urn:iso:15118:2:2016:MsgDataTypes":SensorMeasurements{1-255})', derivedBy='RESTRICTION'. */ +#define iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE 5 +struct iso2SensorPackageType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":PackageIndex, http://www.w3.org/2001/XMLSchema,unsignedInt */ + uint32_t PackageIndex ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SensorMeasurements, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorMeasurementsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SensorID,"urn:iso:15118:2:2016:MsgDataTypes":EffectiveRadiatedPower,"urn:iso:15118:2:2016:MsgDataTypes":MeasurementDataList)', derivedBy='RESTRICTION'. */ + struct { + struct iso2SensorMeasurementsType array[iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE]; + uint16_t arrayLen; + } SensorMeasurements; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ServiceDiscoveryResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":PaymentOptionList,"urn:iso:15118:2:2016:MsgBody":EnergyTransferServiceList,"urn:iso:15118:2:2016:MsgBody":VASList{0-1}))', derivedBy='EXTENSION'. */ +struct iso2ServiceDiscoveryResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":PaymentOptionList, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PaymentOptionListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":PaymentOption{1-2})', derivedBy='RESTRICTION'. */ + struct iso2PaymentOptionListType PaymentOptionList ; + /* element: "urn:iso:15118:2:2016:MsgBody":EnergyTransferServiceList, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Service{1-8})', derivedBy='RESTRICTION'. */ + struct iso2ServiceListType EnergyTransferServiceList ; + /* element: "urn:iso:15118:2:2016:MsgBody":VASList, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Service{1-8})', derivedBy='RESTRICTION'. */ + struct iso2ServiceListType VASList ; + unsigned int VASList_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PowerDemandResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEOutputPower,"urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1},"urn:iso:15118:2:2016:MsgBody":PowerDemandParameters{0-1}))', derivedBy='EXTENSION'. */ +#define iso2PowerDemandResType_EVSEID_CHARACTERS_SIZE 37 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,evseIDType is 37 */ +struct iso2PowerDemandResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEOutputPower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVSEOutputPower ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEID, urn:iso:15118:2:2016:MsgDataTypes,evseIDType */ + struct { + exi_string_character_t characters[iso2PowerDemandResType_EVSEID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } EVSEID ; + /* element: "urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID, urn:iso:15118:2:2016:MsgDataTypes,SAIDType */ + uint8_t SAScheduleTupleID ; + unsigned int SAScheduleTupleID_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":MeterInfo, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MeterID,"urn:iso:15118:2:2016:MsgDataTypes":MeterReadingCharged{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MeterReadingDischarged{0-1},"urn:iso:15118:2:2016:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ + struct iso2MeterInfoType MeterInfo ; + unsigned int MeterInfo_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":ReceiptRequired, http://www.w3.org/2001/XMLSchema,boolean */ + int ReceiptRequired ; + unsigned int ReceiptRequired_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":PowerDemandParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2016:MsgDataTypes":Parameter{1-16})', derivedBy='RESTRICTION'. */ + struct iso2ParameterSetType PowerDemandParameters ; + unsigned int PowerDemandParameters_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ChargingProfileType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ProfileEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso2ChargingProfileType_ProfileEntry_ARRAY_SIZE 24 +struct iso2ChargingProfileType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":ProfileEntry, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":RelativeTimeInterval),("urn:iso:15118:2:2016:MsgDataTypes":PMax{1-3}))', derivedBy='EXTENSION'. */ + struct { + struct iso2PMaxScheduleEntryType array[iso2ChargingProfileType_ProfileEntry_ARRAY_SIZE]; + uint16_t arrayLen; + } ProfileEntry; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SalesTariffType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SalesTariffID,"urn:iso:15118:2:2016:MsgDataTypes":SalesTariffDescription{0-1},"urn:iso:15118:2:2016:MsgDataTypes":NumEPriceLevels{0-1},"urn:iso:15118:2:2016:MsgDataTypes":SalesTariffEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso2SalesTariffType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2SalesTariffType_SalesTariffDescription_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,tariffDescriptionType is 32 */ +#define iso2SalesTariffType_SalesTariffEntry_ARRAY_SIZE 5 +struct iso2SalesTariffType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso2SalesTariffType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SalesTariffID, urn:iso:15118:2:2016:MsgDataTypes,SAIDType */ + uint8_t SalesTariffID ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SalesTariffDescription, urn:iso:15118:2:2016:MsgDataTypes,tariffDescriptionType */ + struct { + exi_string_character_t characters[iso2SalesTariffType_SalesTariffDescription_CHARACTERS_SIZE]; + uint16_t charactersLen; + } SalesTariffDescription ; + unsigned int SalesTariffDescription_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":NumEPriceLevels, http://www.w3.org/2001/XMLSchema,unsignedByte */ + uint8_t NumEPriceLevels ; + unsigned int NumEPriceLevels_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SalesTariffEntry, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SalesTariffEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":RelativeTimeInterval),("urn:iso:15118:2:2016:MsgDataTypes":EPriceLevel{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ConsumptionCost{0-3}))', derivedBy='EXTENSION'. */ + struct { + struct iso2SalesTariffEntryType array[iso2SalesTariffType_SalesTariffEntry_ARRAY_SIZE]; + uint16_t arrayLen; + } SalesTariffEntry; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso2SignedInfoType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2SignedInfoType_Reference_ARRAY_SIZE 1 +struct iso2SignedInfoType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso2SignedInfoType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso2CanonicalizationMethodType CanonicalizationMethod ; + /* element: "http://www.w3.org/2000/09/xmldsig#":SignatureMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso2SignatureMethodType SignatureMethod ; + /* element: "http://www.w3.org/2000/09/xmldsig#":Reference, Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ + struct { + struct iso2ReferenceType array[iso2SignedInfoType_Reference_ARRAY_SIZE]; + uint16_t arrayLen; + } Reference; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PowerDeliveryResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing))', derivedBy='EXTENSION'. */ +struct iso2PowerDeliveryResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEProcessing, urn:iso:15118:2:2016:MsgDataTypes,EVSEProcessingType */ + iso2EVSEProcessingType EVSEProcessing ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */ +#define iso2RetrievalMethodType_URI_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2RetrievalMethodType_Type_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso2RetrievalMethodType { + /* attribute: URI {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso2RetrievalMethodType_URI_CHARACTERS_SIZE]; + uint16_t charactersLen; + } URI ; + unsigned int URI_isUsed:1; + /* attribute: Type {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[iso2RetrievalMethodType_Type_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Type ; + unsigned int Type_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Transforms, Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso2TransformsType Transforms ; + unsigned int Transforms_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MagneticVectorListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MagneticVector{1-255})', derivedBy='RESTRICTION'. */ +#define iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE 5 +struct iso2MagneticVectorListType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":MagneticVector, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MagneticVectorType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":GAID,"urn:iso:15118:2:2016:MsgDataTypes":Distance,"urn:iso:15118:2:2016:MsgDataTypes":AngleGAtoVA,"urn:iso:15118:2:2016:MsgDataTypes":RotationVAtoGA,"urn:iso:15118:2:2016:MsgDataTypes":FODStatus)', derivedBy='RESTRICTION'. */ + struct { + struct iso2MagneticVectorType array[iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE]; + uint16_t arrayLen; + } MagneticVector; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ServiceParameterListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ParameterSet{1-255})', derivedBy='RESTRICTION'. */ +#define iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE 5 +struct iso2ServiceParameterListType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":ParameterSet, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2016:MsgDataTypes":Parameter{1-16})', derivedBy='RESTRICTION'. */ + struct { + struct iso2ParameterSetType array[iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE]; + uint16_t arrayLen; + } ParameterSet; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PMaxScheduleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":PMaxScheduleEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso2PMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE 5 +struct iso2PMaxScheduleType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":PMaxScheduleEntry, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":RelativeTimeInterval),("urn:iso:15118:2:2016:MsgDataTypes":PMax{1-3}))', derivedBy='EXTENSION'. */ + struct { + struct iso2PMaxScheduleEntryType array[iso2PMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE]; + uint16_t arrayLen; + } PMaxScheduleEntry; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CertificateUpdateResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2016:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2016:MsgBody":DHpublickey,"urn:iso:15118:2:2016:MsgBody":eMAID,"urn:iso:15118:2:2016:MsgBody":RetryCounter{0-1}))', derivedBy='EXTENSION'. */ +struct iso2CertificateUpdateResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":SAProvisioningCertificateChain, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Certificate,"urn:iso:15118:2:2016:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ + struct iso2CertificateChainType SAProvisioningCertificateChain ; + /* element: "urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Certificate,"urn:iso:15118:2:2016:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ + struct iso2CertificateChainType ContractSignatureCertChain ; + /* element: "urn:iso:15118:2:2016:MsgBody":ContractSignatureEncryptedPrivateKey, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ContractSignatureEncryptedPrivateKeyType', base type name='encryptedPrivateKeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct iso2ContractSignatureEncryptedPrivateKeyType ContractSignatureEncryptedPrivateKey ; + /* element: "urn:iso:15118:2:2016:MsgBody":DHpublickey, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DiffieHellmanPublickeyType', base type name='dHpublickeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct iso2DiffieHellmanPublickeyType DHpublickey ; + /* element: "urn:iso:15118:2:2016:MsgBody":eMAID, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EMAIDType', base type name='eMAIDType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct iso2EMAIDType eMAID ; + /* element: "urn:iso:15118:2:2016:MsgBody":RetryCounter, http://www.w3.org/2001/XMLSchema,short */ + int16_t RetryCounter ; + unsigned int RetryCounter_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,DC_BidirectionalControlReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2016:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2016:MsgBody":EVMaximumVoltage,"urn:iso:15118:2:2016:MsgBody":EVMinimumVoltage,"urn:iso:15118:2:2016:MsgBody":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgBody":EVMaximumDischargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumDischargePower{0-1}))', derivedBy='EXTENSION'. */ +struct iso2DC_BidirectionalControlReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVTargetEnergyRequest ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumEnergyRequest ; + unsigned int EVMaximumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumEnergyRequest ; + unsigned int EVMinimumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":DisplayParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DisplayParametersType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":CurrentRange{0-1},"urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MinimumSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ChargingPerformance{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToTargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToBulkSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToMinimumSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ChargingComplete{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2016:MsgDataTypes":InletHot{0-1})', derivedBy='RESTRICTION'. */ + struct iso2DisplayParametersType DisplayParameters ; + unsigned int DisplayParameters_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVTargetCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVTargetCurrent ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVTargetVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVTargetVoltage ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumVoltage ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMinimumVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumVoltage ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumChargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumDischargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumDischargeCurrent ; + unsigned int EVMaximumDischargeCurrent_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumChargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumChargePower ; + unsigned int EVMaximumChargePower_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumDischargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumDischargePower ; + unsigned int EVMaximumDischargePower_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CertificateUpdateReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2016:MsgBody":eMAID,"urn:iso:15118:2:2016:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */ +#define iso2CertificateUpdateReqType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2CertificateUpdateReqType_eMAID_CHARACTERS_SIZE 15 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,eMAIDType is 15 */ +struct iso2CertificateUpdateReqType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso2CertificateUpdateReqType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + /* element: "urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Certificate,"urn:iso:15118:2:2016:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ + struct iso2CertificateChainType ContractSignatureCertChain ; + /* element: "urn:iso:15118:2:2016:MsgBody":eMAID, urn:iso:15118:2:2016:MsgDataTypes,eMAIDType */ + struct { + exi_string_character_t characters[iso2CertificateUpdateReqType_eMAID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } eMAID ; + /* element: "urn:iso:15118:2:2016:MsgBody":ListOfRootCertificateIDs, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":RootCertificateID{1-20})', derivedBy='RESTRICTION'. */ + struct iso2ListOfRootCertificateIDsType ListOfRootCertificateIDs ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,LFA_EVSEFinePositioningSetupParametersType', base type name='EVSEFinePositioningSetupParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NumberOfSensors,"urn:iso:15118:2:2016:MsgDataTypes":SensorList,"urn:iso:15118:2:2016:MsgDataTypes":SensorOrder,"urn:iso:15118:2:2016:MsgDataTypes":SignalPulseDuration,"urn:iso:15118:2:2016:MsgDataTypes":SignalSeparationTime,"urn:iso:15118:2:2016:MsgDataTypes":PackageSeparationTime,"urn:iso:15118:2:2016:MsgDataTypes":AlignmentOffset,"urn:iso:15118:2:2016:MsgDataTypes":SignalFrequency)', derivedBy='EXTENSION'. */ +struct iso2LFA_EVSEFinePositioningSetupParametersType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":NumberOfSensors, http://www.w3.org/2001/XMLSchema,unsignedByte */ + uint8_t NumberOfSensors ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SensorList, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Sensor{1-255})', derivedBy='RESTRICTION'. */ + struct iso2SensorListType SensorList ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SensorOrder, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorOrderListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SensorPosition{1-255})', derivedBy='RESTRICTION'. */ + struct iso2SensorOrderListType SensorOrder ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SignalPulseDuration, http://www.w3.org/2001/XMLSchema,unsignedByte */ + uint8_t SignalPulseDuration ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SignalSeparationTime, http://www.w3.org/2001/XMLSchema,unsignedByte */ + uint8_t SignalSeparationTime ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":PackageSeparationTime, http://www.w3.org/2001/XMLSchema,unsignedByte */ + uint8_t PackageSeparationTime ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":AlignmentOffset, http://www.w3.org/2001/XMLSchema,unsignedShort */ + uint16_t AlignmentOffset ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SignalFrequency, http://www.w3.org/2001/XMLSchema,unsignedShort */ + uint16_t SignalFrequency ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,AlignmentCheckReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVProcessing,"urn:iso:15118:2:2016:MsgBody":AlignmentCheckParameters{0-1})', derivedBy='EXTENSION'. */ +struct iso2AlignmentCheckReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":EVProcessing, urn:iso:15118:2:2016:MsgDataTypes,EVSEProcessingType */ + iso2EVSEProcessingType EVProcessing ; + /* element: "urn:iso:15118:2:2016:MsgBody":AlignmentCheckParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2016:MsgDataTypes":Parameter{1-16})', derivedBy='RESTRICTION'. */ + struct iso2ParameterSetType AlignmentCheckParameters ; + unsigned int AlignmentCheckParameters_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CertificateInstallationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":OEMProvisioningCert,"urn:iso:15118:2:2016:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */ +#define iso2CertificateInstallationReqType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2CertificateInstallationReqType_OEMProvisioningCert_BYTES_SIZE 800 /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,certificateType is 800 */ +struct iso2CertificateInstallationReqType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso2CertificateInstallationReqType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + /* element: "urn:iso:15118:2:2016:MsgBody":OEMProvisioningCert, urn:iso:15118:2:2016:MsgDataTypes,certificateType */ + struct { + uint8_t bytes[iso2CertificateInstallationReqType_OEMProvisioningCert_BYTES_SIZE]; + uint16_t bytesLen; + } OEMProvisioningCert ; + /* element: "urn:iso:15118:2:2016:MsgBody":ListOfRootCertificateIDs, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":RootCertificateID{1-20})', derivedBy='RESTRICTION'. */ + struct iso2ListOfRootCertificateIDsType ListOfRootCertificateIDs ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ChargeParameterDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":MaxSupportingPoints{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVEnergyTransferParameter,"urn:iso:15118:2:2016:MsgBody":MinimumPMaxRequest{0-1})', derivedBy='EXTENSION'. */ +struct iso2ChargeParameterDiscoveryReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":MaxSupportingPoints, urn:iso:15118:2:2016:MsgDataTypes,maxSupportingPointsSAScheduleTuple */ + uint16_t MaxSupportingPoints ; + unsigned int MaxSupportingPoints_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVEnergyTransferParameter, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVEnergyTransferParameterType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime)', derivedBy='RESTRICTION'. */ + struct iso2EVEnergyTransferParameterType EVEnergyTransferParameter ; + unsigned int EVEnergyTransferParameter_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":AC_EVChargeParameter, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,AC_EVChargeParameterType', base type name='EVEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage))', derivedBy='EXTENSION'. */ + struct iso2AC_EVChargeParameterType AC_EVChargeParameter ; + unsigned int AC_EVChargeParameter_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":AC_EVBidirectionalParameter, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,AC_EVBidirectionalParameterType', base type name='AC_EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage)),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumDischargeCurrent))', derivedBy='EXTENSION'. */ + struct iso2AC_EVBidirectionalParameterType AC_EVBidirectionalParameter ; + unsigned int AC_EVBidirectionalParameter_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":DC_EVChargeParameter, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DC_EVChargeParameterType', base type name='EVEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkSOC{0-1}))', derivedBy='EXTENSION'. */ + struct iso2DC_EVChargeParameterType DC_EVChargeParameter ; + unsigned int DC_EVChargeParameter_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":DC_EVBidirectionalParameter, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DC_EVBidirectionalParameterType', base type name='DC_EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkSOC{0-1})),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumDischargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":MinimumSOC{0-1}))', derivedBy='EXTENSION'. */ + struct iso2DC_EVBidirectionalParameterType DC_EVBidirectionalParameter ; + unsigned int DC_EVBidirectionalParameter_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":WPT_EVChargeParameter, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,WPT_EVChargeParameterType', base type name='EVEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumPower,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumPower,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1}))', derivedBy='EXTENSION'. */ + struct iso2WPT_EVChargeParameterType WPT_EVChargeParameter ; + unsigned int WPT_EVChargeParameter_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":MinimumPMaxRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MinimumPMaxRequestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MinimumPMaxScheduleEntry{1-3})', derivedBy='RESTRICTION'. */ + struct iso2MinimumPMaxRequestType MinimumPMaxRequest ; + unsigned int MinimumPMaxRequest_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorPackageListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SensorPackage{1-255})', derivedBy='RESTRICTION'. */ +#define iso2SensorPackageListType_SensorPackage_ARRAY_SIZE 5 +struct iso2SensorPackageListType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SensorPackage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorPackageType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":PackageIndex,"urn:iso:15118:2:2016:MsgDataTypes":SensorMeasurements{1-255})', derivedBy='RESTRICTION'. */ + struct { + struct iso2SensorPackageType array[iso2SensorPackageListType_SensorPackage_ARRAY_SIZE]; + uint16_t arrayLen; + } SensorPackage; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ChargeLoopReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1})', derivedBy='EXTENSION'. */ +struct iso2ChargeLoopReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVTargetEnergyRequest ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumEnergyRequest ; + unsigned int EVMaximumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumEnergyRequest ; + unsigned int EVMinimumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":DisplayParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DisplayParametersType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":CurrentRange{0-1},"urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MinimumSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ChargingPerformance{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToTargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToBulkSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToMinimumSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ChargingComplete{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2016:MsgDataTypes":InletHot{0-1})', derivedBy='RESTRICTION'. */ + struct iso2DisplayParametersType DisplayParameters ; + unsigned int DisplayParameters_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,AC_BidirectionalControlReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVOperation{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumChargePower,"urn:iso:15118:2:2016:MsgBody":EVMaximumDischargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgBody":EVMaximumDischargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgBody":EVMinimumDischargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVPresentActivePower,"urn:iso:15118:2:2016:MsgBody":EVPresentReactivePower))', derivedBy='EXTENSION'. */ +struct iso2AC_BidirectionalControlReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVTargetEnergyRequest ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumEnergyRequest ; + unsigned int EVMaximumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumEnergyRequest ; + unsigned int EVMinimumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":DisplayParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DisplayParametersType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":CurrentRange{0-1},"urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MinimumSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ChargingPerformance{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToTargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToBulkSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToMinimumSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ChargingComplete{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2016:MsgDataTypes":InletHot{0-1})', derivedBy='RESTRICTION'. */ + struct iso2DisplayParametersType DisplayParameters ; + unsigned int DisplayParameters_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVOperation, urn:iso:15118:2:2016:MsgDataTypes,EVOperationType */ + iso2EVOperationType EVOperation ; + unsigned int EVOperation_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumChargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumChargePower ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumDischargePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumDischargePower ; + unsigned int EVMaximumDischargePower_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumChargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumDischargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumDischargeCurrent ; + unsigned int EVMaximumDischargeCurrent_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMinimumChargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumChargeCurrent ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMinimumDischargeCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumDischargeCurrent ; + unsigned int EVMinimumDischargeCurrent_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVPresentActivePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVPresentActivePower ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVPresentReactivePower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVPresentReactivePower ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MV_EVSEFinePositioningParametersType', base type name='EVSEFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MagneticVectorList)', derivedBy='EXTENSION'. */ +struct iso2MV_EVSEFinePositioningParametersType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":MagneticVectorList, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MagneticVectorListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MagneticVector{1-255})', derivedBy='RESTRICTION'. */ + struct iso2MagneticVectorListType MagneticVectorList ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CurrentDemandReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2016:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2016:MsgBody":EVMaximumCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumPower{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumVoltage{0-1}))', derivedBy='EXTENSION'. */ +struct iso2CurrentDemandReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVTargetEnergyRequest ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumEnergyRequest ; + unsigned int EVMaximumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumEnergyRequest ; + unsigned int EVMinimumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":DisplayParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DisplayParametersType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":CurrentRange{0-1},"urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MinimumSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ChargingPerformance{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToTargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToBulkSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToMinimumSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ChargingComplete{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2016:MsgDataTypes":InletHot{0-1})', derivedBy='RESTRICTION'. */ + struct iso2DisplayParametersType DisplayParameters ; + unsigned int DisplayParameters_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVTargetCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVTargetCurrent ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVTargetVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVTargetVoltage ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumCurrent, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumCurrent ; + unsigned int EVMaximumCurrent_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumPower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumPower ; + unsigned int EVMaximumPower_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumVoltage, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumVoltage ; + unsigned int EVMaximumVoltage_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,FinePositioningSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":EVFinePositioningSetupParameters{0-1})', derivedBy='EXTENSION'. */ +struct iso2FinePositioningSetupReqType { + /* substitutionGroup */ +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + union { +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVFinePositioningSetupParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVFinePositioningSetupParametersType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct iso2EVFinePositioningSetupParametersType EVFinePositioningSetupParameters ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":LFA_EVFinePositioningSetupParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,LFA_EVFinePositioningSetupParametersType', base type name='EVFinePositioningSetupParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NumberOfSensors,"urn:iso:15118:2:2016:MsgDataTypes":SensorList,"urn:iso:15118:2:2016:MsgDataTypes":SensorOrder,"urn:iso:15118:2:2016:MsgDataTypes":SignalPulseDuration,"urn:iso:15118:2:2016:MsgDataTypes":SignalSeparationTime,"urn:iso:15118:2:2016:MsgDataTypes":PackageSeparationTime,"urn:iso:15118:2:2016:MsgDataTypes":AlignmentOffset)', derivedBy='EXTENSION'. */ + struct iso2LFA_EVFinePositioningSetupParametersType LFA_EVFinePositioningSetupParameters ; +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + }; +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + unsigned int EVFinePositioningSetupParameters_isUsed:1; + unsigned int LFA_EVFinePositioningSetupParameters_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SAScheduleTupleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2016:MsgDataTypes":PMaxSchedule,"urn:iso:15118:2:2016:MsgDataTypes":PMaxDischargeSchedule{0-1},"urn:iso:15118:2:2016:MsgDataTypes":SalesTariff{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BuyBackTariff{0-1})', derivedBy='RESTRICTION'. */ +struct iso2SAScheduleTupleType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SAScheduleTupleID, urn:iso:15118:2:2016:MsgDataTypes,SAIDType */ + uint8_t SAScheduleTupleID ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":PMaxSchedule, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PMaxScheduleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":PMaxScheduleEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso2PMaxScheduleType PMaxSchedule ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":PMaxDischargeSchedule, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PMaxScheduleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":PMaxScheduleEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso2PMaxScheduleType PMaxDischargeSchedule ; + unsigned int PMaxDischargeSchedule_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SalesTariff, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SalesTariffType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SalesTariffID,"urn:iso:15118:2:2016:MsgDataTypes":SalesTariffDescription{0-1},"urn:iso:15118:2:2016:MsgDataTypes":NumEPriceLevels{0-1},"urn:iso:15118:2:2016:MsgDataTypes":SalesTariffEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso2SalesTariffType SalesTariff ; + unsigned int SalesTariff_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":BuyBackTariff, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SalesTariffType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SalesTariffID,"urn:iso:15118:2:2016:MsgDataTypes":SalesTariffDescription{0-1},"urn:iso:15118:2:2016:MsgDataTypes":NumEPriceLevels{0-1},"urn:iso:15118:2:2016:MsgDataTypes":SalesTariffEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso2SalesTariffType BuyBackTariff ; + unsigned int BuyBackTariff_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ServiceDetailResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":ServiceID,"urn:iso:15118:2:2016:MsgBody":ServiceParameterList{0-1}))', derivedBy='EXTENSION'. */ +struct iso2ServiceDetailResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":ServiceID, urn:iso:15118:2:2016:MsgDataTypes,serviceIDType */ + uint16_t ServiceID ; + /* element: "urn:iso:15118:2:2016:MsgBody":ServiceParameterList, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ServiceParameterListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ParameterSet{1-255})', derivedBy='RESTRICTION'. */ + struct iso2ServiceParameterListType ServiceParameterList ; + unsigned int ServiceParameterList_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PowerDeliveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ChargeProgress,"urn:iso:15118:2:2016:MsgBody":EVOperation{0-1},"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":ChargingProfile{0-1})', derivedBy='EXTENSION'. */ +struct iso2PowerDeliveryReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":ChargeProgress, urn:iso:15118:2:2016:MsgDataTypes,chargeProgressType */ + iso2chargeProgressType ChargeProgress ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVOperation, urn:iso:15118:2:2016:MsgDataTypes,EVOperationType */ + iso2EVOperationType EVOperation ; + unsigned int EVOperation_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID, urn:iso:15118:2:2016:MsgDataTypes,SAIDType */ + uint8_t SAScheduleTupleID ; + unsigned int SAScheduleTupleID_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":ChargingProfile, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ChargingProfileType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ProfileEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso2ChargingProfileType ChargingProfile ; + unsigned int ChargingProfile_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PairingResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":PairingParameters{0-1}))', derivedBy='EXTENSION'. */ +struct iso2PairingResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEProcessing, urn:iso:15118:2:2016:MsgDataTypes,EVSEProcessingType */ + iso2EVSEProcessingType EVSEProcessing ; + /* element: "urn:iso:15118:2:2016:MsgBody":PairingParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2016:MsgDataTypes":Parameter{1-16})', derivedBy='RESTRICTION'. */ + struct iso2ParameterSetType PairingParameters ; + unsigned int PairingParameters_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PowerDemandReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVTargetPower,"urn:iso:15118:2:2016:MsgBody":EVInputPower,"urn:iso:15118:2:2016:MsgBody":PowerDemandParameters{0-1}))', derivedBy='EXTENSION'. */ +struct iso2PowerDemandReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVTargetEnergyRequest ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMaximumEnergyRequest ; + unsigned int EVMaximumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVMinimumEnergyRequest ; + unsigned int EVMinimumEnergyRequest_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":DisplayParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DisplayParametersType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":CurrentRange{0-1},"urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MinimumSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ChargingPerformance{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToTargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToBulkSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToMinimumSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ChargingComplete{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2016:MsgDataTypes":InletHot{0-1})', derivedBy='RESTRICTION'. */ + struct iso2DisplayParametersType DisplayParameters ; + unsigned int DisplayParameters_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVTargetPower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVTargetPower ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVInputPower, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ + struct iso2PhysicalValueType EVInputPower ; + /* element: "urn:iso:15118:2:2016:MsgBody":PowerDemandParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2016:MsgDataTypes":Parameter{1-16})', derivedBy='RESTRICTION'. */ + struct iso2ParameterSetType PowerDemandParameters ; + unsigned int PowerDemandParameters_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PaymentServiceSelectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":SelectedPaymentOption,"urn:iso:15118:2:2016:MsgBody":SelectedEnergyTransferService,"urn:iso:15118:2:2016:MsgBody":SelectedVASList{0-1})', derivedBy='EXTENSION'. */ +struct iso2PaymentServiceSelectionReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":SelectedPaymentOption, urn:iso:15118:2:2016:MsgDataTypes,paymentOptionType */ + iso2paymentOptionType SelectedPaymentOption ; + /* element: "urn:iso:15118:2:2016:MsgBody":SelectedEnergyTransferService, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SelectedServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ServiceID,"urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID)', derivedBy='RESTRICTION'. */ + struct iso2SelectedServiceType SelectedEnergyTransferService ; + /* element: "urn:iso:15118:2:2016:MsgBody":SelectedVASList, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SelectedServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SelectedService{1-16})', derivedBy='RESTRICTION'. */ + struct iso2SelectedServiceListType SelectedVASList ; + unsigned int SelectedVASList_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,LFA_EVFinePositioningParametersType', base type name='EVFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NumberOfSignalPackages,"urn:iso:15118:2:2016:MsgDataTypes":SensorPackageList)', derivedBy='EXTENSION'. */ +struct iso2LFA_EVFinePositioningParametersType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":NumberOfSignalPackages, http://www.w3.org/2001/XMLSchema,unsignedByte */ + uint8_t NumberOfSignalPackages ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SensorPackageList, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorPackageListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SensorPackage{1-255})', derivedBy='RESTRICTION'. */ + struct iso2SensorPackageListType SensorPackageList ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define iso2KeyInfoType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2KeyInfoType_KeyName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2KeyInfoType_KeyName_ARRAY_SIZE 1 +#define iso2KeyInfoType_KeyValue_ARRAY_SIZE 1 +#define iso2KeyInfoType_RetrievalMethod_ARRAY_SIZE 1 +#define iso2KeyInfoType_X509Data_ARRAY_SIZE 1 +#define iso2KeyInfoType_PGPData_ARRAY_SIZE 1 +#define iso2KeyInfoType_SPKIData_ARRAY_SIZE 1 +#define iso2KeyInfoType_MgmtData_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2KeyInfoType_MgmtData_ARRAY_SIZE 1 +#define iso2KeyInfoType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct iso2KeyInfoType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso2KeyInfoType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":KeyName, http://www.w3.org/2001/XMLSchema,string */ + struct { + struct { + exi_string_character_t characters[iso2KeyInfoType_KeyName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } array[iso2KeyInfoType_KeyName_ARRAY_SIZE]; + uint16_t arrayLen; + } KeyName; + /* element: "http://www.w3.org/2000/09/xmldsig#":KeyValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */ + struct { + struct iso2KeyValueType array[iso2KeyInfoType_KeyValue_ARRAY_SIZE]; + uint16_t arrayLen; + } KeyValue; + /* element: "http://www.w3.org/2000/09/xmldsig#":RetrievalMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */ + struct { + struct iso2RetrievalMethodType array[iso2KeyInfoType_RetrievalMethod_ARRAY_SIZE]; + uint16_t arrayLen; + } RetrievalMethod; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509Data, Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct iso2X509DataType array[iso2KeyInfoType_X509Data_ARRAY_SIZE]; + uint16_t arrayLen; + } X509Data; + /* element: "http://www.w3.org/2000/09/xmldsig#":PGPData, Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */ + struct { + struct iso2PGPDataType array[iso2KeyInfoType_PGPData_ARRAY_SIZE]; + uint16_t arrayLen; + } PGPData; + /* element: "http://www.w3.org/2000/09/xmldsig#":SPKIData, Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct iso2SPKIDataType array[iso2KeyInfoType_SPKIData_ARRAY_SIZE]; + uint16_t arrayLen; + } SPKIData; + /* element: "http://www.w3.org/2000/09/xmldsig#":MgmtData, http://www.w3.org/2001/XMLSchema,string */ + struct { + struct { + exi_string_character_t characters[iso2KeyInfoType_MgmtData_CHARACTERS_SIZE]; + uint16_t charactersLen; + } array[iso2KeyInfoType_MgmtData_ARRAY_SIZE]; + uint16_t arrayLen; + } MgmtData; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[iso2KeyInfoType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,FinePositioningReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVProcessing,"urn:iso:15118:2:2016:MsgDataTypes":EVFinePositioningParameters{0-1})', derivedBy='EXTENSION'. */ +struct iso2FinePositioningReqType { + /* element: "urn:iso:15118:2:2016:MsgBody":EVProcessing, urn:iso:15118:2:2016:MsgDataTypes,EVSEProcessingType */ + iso2EVSEProcessingType EVProcessing ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVFinePositioningParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVFinePositioningParametersType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct iso2EVFinePositioningParametersType EVFinePositioningParameters ; + unsigned int EVFinePositioningParameters_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":Generic_EVFinePositioningParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,Generic_EVFinePositioningParametersType', base type name='EVFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":GenericParameters)', derivedBy='EXTENSION'. */ + struct iso2Generic_EVFinePositioningParametersType Generic_EVFinePositioningParameters ; + unsigned int Generic_EVFinePositioningParameters_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":LFA_EVFinePositioningParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,LFA_EVFinePositioningParametersType', base type name='EVFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NumberOfSignalPackages,"urn:iso:15118:2:2016:MsgDataTypes":SensorPackageList)', derivedBy='EXTENSION'. */ + struct iso2LFA_EVFinePositioningParametersType LFA_EVFinePositioningParameters ; + unsigned int LFA_EVFinePositioningParameters_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define iso2SignatureType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2SignatureType_Object_ARRAY_SIZE 1 +struct iso2SignatureType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[iso2SignatureType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":SignedInfo, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso2SignedInfoType SignedInfo ; + /* element: "http://www.w3.org/2000/09/xmldsig#":SignatureValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct iso2SignatureValueType SignatureValue ; + /* element: "http://www.w3.org/2000/09/xmldsig#":KeyInfo, Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct iso2KeyInfoType KeyInfo ; + unsigned int KeyInfo_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Object, Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct iso2ObjectType array[iso2SignatureType_Object_ARRAY_SIZE]; + uint16_t arrayLen; + } Object; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,FinePositioningSetupResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgDataTypes":EVSEFinePositioningSetupParameters{0-1}))', derivedBy='EXTENSION'. */ +struct iso2FinePositioningSetupResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEFinePositioningSetupParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEFinePositioningSetupParametersType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct iso2EVSEFinePositioningSetupParametersType EVSEFinePositioningSetupParameters ; + unsigned int EVSEFinePositioningSetupParameters_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":LFA_EVSEFinePositioningSetupParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,LFA_EVSEFinePositioningSetupParametersType', base type name='EVSEFinePositioningSetupParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NumberOfSensors,"urn:iso:15118:2:2016:MsgDataTypes":SensorList,"urn:iso:15118:2:2016:MsgDataTypes":SensorOrder,"urn:iso:15118:2:2016:MsgDataTypes":SignalPulseDuration,"urn:iso:15118:2:2016:MsgDataTypes":SignalSeparationTime,"urn:iso:15118:2:2016:MsgDataTypes":PackageSeparationTime,"urn:iso:15118:2:2016:MsgDataTypes":AlignmentOffset,"urn:iso:15118:2:2016:MsgDataTypes":SignalFrequency)', derivedBy='EXTENSION'. */ + struct iso2LFA_EVSEFinePositioningSetupParametersType LFA_EVSEFinePositioningSetupParameters ; + unsigned int LFA_EVSEFinePositioningSetupParameters_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":MV_EVSEFinePositioningSetupParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MV_EVSEFinePositioningSetupParametersType', base type name='EVSEFinePositioningSetupParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":FrequencyChannel{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MagneticVectorSetupList{0-1})', derivedBy='EXTENSION'. */ + struct iso2MV_EVSEFinePositioningSetupParametersType MV_EVSEFinePositioningSetupParameters ; + unsigned int MV_EVSEFinePositioningSetupParameters_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SAScheduleListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SAScheduleTuple{1-3})', derivedBy='RESTRICTION'. */ +#define iso2SAScheduleListType_SAScheduleTuple_ARRAY_SIZE 3 +struct iso2SAScheduleListType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SAScheduleTuple, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SAScheduleTupleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2016:MsgDataTypes":PMaxSchedule,"urn:iso:15118:2:2016:MsgDataTypes":PMaxDischargeSchedule{0-1},"urn:iso:15118:2:2016:MsgDataTypes":SalesTariff{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BuyBackTariff{0-1})', derivedBy='RESTRICTION'. */ + struct { + struct iso2SAScheduleTupleType array[iso2SAScheduleListType_SAScheduleTuple_ARRAY_SIZE]; + uint16_t arrayLen; + } SAScheduleTuple; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,LFA_EVSEFinePositioningParametersType', base type name='EVSEFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NumberOfSignalPackages,"urn:iso:15118:2:2016:MsgDataTypes":SensorPackageList)', derivedBy='EXTENSION'. */ +struct iso2LFA_EVSEFinePositioningParametersType { + /* element: "urn:iso:15118:2:2016:MsgDataTypes":NumberOfSignalPackages, http://www.w3.org/2001/XMLSchema,unsignedByte */ + uint8_t NumberOfSignalPackages ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":SensorPackageList, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorPackageListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SensorPackage{1-255})', derivedBy='RESTRICTION'. */ + struct iso2SensorPackageListType SensorPackageList ; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgHeader,MessageHeaderType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgHeader":SessionID,"http://www.w3.org/2000/09/xmldsig#":Signature{0-1})', derivedBy='RESTRICTION'. */ +#define iso2MessageHeaderType_SessionID_BYTES_SIZE 8 /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,sessionIDType is 8 */ +struct iso2MessageHeaderType { + /* element: "urn:iso:15118:2:2016:MsgHeader":SessionID, urn:iso:15118:2:2016:MsgDataTypes,sessionIDType */ + struct { + uint8_t bytes[iso2MessageHeaderType_SessionID_BYTES_SIZE]; + uint16_t bytesLen; + } SessionID ; + /* element: "http://www.w3.org/2000/09/xmldsig#":Signature, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct iso2SignatureType Signature ; + unsigned int Signature_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,FinePositioningResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgDataTypes":EVSEFinePositioningParameters{0-1}))', derivedBy='EXTENSION'. */ +struct iso2FinePositioningResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEProcessing, urn:iso:15118:2:2016:MsgDataTypes,EVSEProcessingType */ + iso2EVSEProcessingType EVSEProcessing ; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEFinePositioningParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEFinePositioningParametersType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct iso2EVSEFinePositioningParametersType EVSEFinePositioningParameters ; + unsigned int EVSEFinePositioningParameters_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":Generic_EVSEFinePositioningParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,Generic_EVSEFinePositioningParametersType', base type name='EVSEFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":GenericParameters)', derivedBy='EXTENSION'. */ + struct iso2Generic_EVSEFinePositioningParametersType Generic_EVSEFinePositioningParameters ; + unsigned int Generic_EVSEFinePositioningParameters_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":LFA_EVSEFinePositioningParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,LFA_EVSEFinePositioningParametersType', base type name='EVSEFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NumberOfSignalPackages,"urn:iso:15118:2:2016:MsgDataTypes":SensorPackageList)', derivedBy='EXTENSION'. */ + struct iso2LFA_EVSEFinePositioningParametersType LFA_EVSEFinePositioningParameters ; + unsigned int LFA_EVSEFinePositioningParameters_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":MV_EVSEFinePositioningParameters, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MV_EVSEFinePositioningParametersType', base type name='EVSEFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MagneticVectorList)', derivedBy='EXTENSION'. */ + struct iso2MV_EVSEFinePositioningParametersType MV_EVSEFinePositioningParameters ; + unsigned int MV_EVSEFinePositioningParameters_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ChargeParameterDiscoveryResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":SAScheduleList{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVSEEnergyTransferParameter))', derivedBy='EXTENSION'. */ +struct iso2ChargeParameterDiscoveryResType { + /* element: "urn:iso:15118:2:2016:MsgBody":ResponseCode, urn:iso:15118:2:2016:MsgDataTypes,responseCodeType */ + iso2responseCodeType ResponseCode ; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEStatus, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ + struct iso2EVSEStatusType EVSEStatus ; + unsigned int EVSEStatus_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgBody":EVSEProcessing, urn:iso:15118:2:2016:MsgDataTypes,EVSEProcessingType */ + iso2EVSEProcessingType EVSEProcessing ; + /* element: "urn:iso:15118:2:2016:MsgBody":SAScheduleList, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SAScheduleListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SAScheduleTuple{1-3})', derivedBy='RESTRICTION'. */ + struct iso2SAScheduleListType SAScheduleList ; + unsigned int SAScheduleList_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":EVSEEnergyTransferParameter, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEEnergyTransferParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct iso2EVSEEnergyTransferParameterType EVSEEnergyTransferParameter ; + unsigned int EVSEEnergyTransferParameter_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":AC_EVSEChargeParameter, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,AC_EVSEChargeParameterType', base type name='EVSEEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalFrequency)', derivedBy='EXTENSION'. */ + struct iso2AC_EVSEChargeParameterType AC_EVSEChargeParameter ; + unsigned int AC_EVSEChargeParameter_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":AC_EVSEBidirectionalParameter, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,AC_EVSEBidirectionalParameterType', base type name='AC_EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalFrequency),("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalFrequency))', derivedBy='EXTENSION'. */ + struct iso2AC_EVSEBidirectionalParameterType AC_EVSEBidirectionalParameter ; + unsigned int AC_EVSEBidirectionalParameter_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":DC_EVSEChargeParameter, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DC_EVSEChargeParameterType', base type name='EVSEEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2016:MsgDataTypes":EVSEEnergyToBeDelivered{0-1})', derivedBy='EXTENSION'. */ + struct iso2DC_EVSEChargeParameterType DC_EVSEChargeParameter ; + unsigned int DC_EVSEChargeParameter_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":DC_EVSEBidirectionalParameter, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DC_EVSEBidirectionalParameterType', base type name='DC_EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2016:MsgDataTypes":EVSEEnergyToBeDelivered{0-1}),("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumDischargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumDischargeCurrent))', derivedBy='EXTENSION'. */ + struct iso2DC_EVSEBidirectionalParameterType DC_EVSEBidirectionalParameter ; + unsigned int DC_EVSEBidirectionalParameter_isUsed:1; + /* element: "urn:iso:15118:2:2016:MsgDataTypes":WPT_EVSEChargeParameter, Complex type name='urn:iso:15118:2:2016:MsgDataTypes,WPT_EVSEChargeParameterType', base type name='EVSEEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumPower,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumPower)', derivedBy='EXTENSION'. */ + struct iso2WPT_EVSEChargeParameterType WPT_EVSEChargeParameter ; + unsigned int WPT_EVSEChargeParameter_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,BodyType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":BodyElement)', derivedBy='RESTRICTION'. */ +struct iso2BodyType { + /* substitutionGroup */ +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + union { +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + /* element: "urn:iso:15118:2:2016:MsgBody":BodyElement, Complex type name='urn:iso:15118:2:2016:MsgBody,BodyBaseType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct iso2BodyBaseType BodyElement ; + /* element: "urn:iso:15118:2:2016:MsgBody":V2GRequest, Complex type name='urn:iso:15118:2:2016:MsgBody,BodyBaseType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ + struct iso2BodyBaseType V2GRequest ; + /* element: "urn:iso:15118:2:2016:MsgBody":DisconnectChargingDeviceReq, Complex type name='urn:iso:15118:2:2016:MsgBody,DisconnectChargingDeviceReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVElectricalChargingDeviceStatus,"urn:iso:15118:2:2016:MsgBody":EVMechanicalChargingDeviceStatus)', derivedBy='EXTENSION'. */ + struct iso2DisconnectChargingDeviceReqType DisconnectChargingDeviceReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":ConnectChargingDeviceReq, Complex type name='urn:iso:15118:2:2016:MsgBody,ConnectChargingDeviceReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVElectricalChargingDeviceStatus,"urn:iso:15118:2:2016:MsgBody":EVMechanicalChargingDeviceStatus)', derivedBy='EXTENSION'. */ + struct iso2ConnectChargingDeviceReqType ConnectChargingDeviceReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":SystemStatusReq, Complex type name='urn:iso:15118:2:2016:MsgBody,SystemStatusReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":OperationMode,"urn:iso:15118:2:2016:MsgBody":EVMechanicalChargingDeviceStatus)', derivedBy='EXTENSION'. */ + struct iso2SystemStatusReqType SystemStatusReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":DC_BidirectionalControlReq, Complex type name='urn:iso:15118:2:2016:MsgBody,DC_BidirectionalControlReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2016:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2016:MsgBody":EVMaximumVoltage,"urn:iso:15118:2:2016:MsgBody":EVMinimumVoltage,"urn:iso:15118:2:2016:MsgBody":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgBody":EVMaximumDischargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumDischargePower{0-1}))', derivedBy='EXTENSION'. */ + struct iso2DC_BidirectionalControlReqType DC_BidirectionalControlReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":AC_BidirectionalControlReq, Complex type name='urn:iso:15118:2:2016:MsgBody,AC_BidirectionalControlReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVOperation{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumChargePower,"urn:iso:15118:2:2016:MsgBody":EVMaximumDischargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgBody":EVMaximumDischargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgBody":EVMinimumDischargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVPresentActivePower,"urn:iso:15118:2:2016:MsgBody":EVPresentReactivePower))', derivedBy='EXTENSION'. */ + struct iso2AC_BidirectionalControlReqType AC_BidirectionalControlReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":VehicleCheckOutReq, Complex type name='urn:iso:15118:2:2016:MsgBody,VehicleCheckOutReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVCheckOutStatus,"urn:iso:15118:2:2016:MsgBody":CheckOutTime)', derivedBy='EXTENSION'. */ + struct iso2VehicleCheckOutReqType VehicleCheckOutReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":VehicleCheckInReq, Complex type name='urn:iso:15118:2:2016:MsgBody,VehicleCheckInReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVCheckInStatus,"urn:iso:15118:2:2016:MsgBody":ParkingMethod{0-1})', derivedBy='EXTENSION'. */ + struct iso2VehicleCheckInReqType VehicleCheckInReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":PowerDemandReq, Complex type name='urn:iso:15118:2:2016:MsgBody,PowerDemandReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVTargetPower,"urn:iso:15118:2:2016:MsgBody":EVInputPower,"urn:iso:15118:2:2016:MsgBody":PowerDemandParameters{0-1}))', derivedBy='EXTENSION'. */ + struct iso2PowerDemandReqType PowerDemandReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":PairingReq, Complex type name='urn:iso:15118:2:2016:MsgBody,PairingReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVProcessing,"urn:iso:15118:2:2016:MsgBody":PairingParameters{0-1})', derivedBy='EXTENSION'. */ + struct iso2PairingReqType PairingReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":AlignmentCheckReq, Complex type name='urn:iso:15118:2:2016:MsgBody,AlignmentCheckReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVProcessing,"urn:iso:15118:2:2016:MsgBody":AlignmentCheckParameters{0-1})', derivedBy='EXTENSION'. */ + struct iso2AlignmentCheckReqType AlignmentCheckReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":FinePositioningReq, Complex type name='urn:iso:15118:2:2016:MsgBody,FinePositioningReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVProcessing,"urn:iso:15118:2:2016:MsgDataTypes":EVFinePositioningParameters{0-1})', derivedBy='EXTENSION'. */ + struct iso2FinePositioningReqType FinePositioningReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":FinePositioningSetupReq, Complex type name='urn:iso:15118:2:2016:MsgBody,FinePositioningSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":EVFinePositioningSetupParameters{0-1})', derivedBy='EXTENSION'. */ + struct iso2FinePositioningSetupReqType FinePositioningSetupReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":WeldingDetectionReq, Complex type name='urn:iso:15118:2:2016:MsgBody,WeldingDetectionReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct iso2WeldingDetectionReqType WeldingDetectionReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":CurrentDemandReq, Complex type name='urn:iso:15118:2:2016:MsgBody,CurrentDemandReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2016:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2016:MsgBody":EVMaximumCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumPower{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumVoltage{0-1}))', derivedBy='EXTENSION'. */ + struct iso2CurrentDemandReqType CurrentDemandReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":PreChargeReq, Complex type name='urn:iso:15118:2:2016:MsgBody,PreChargeReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2016:MsgBody":EVTargetCurrent)', derivedBy='EXTENSION'. */ + struct iso2PreChargeReqType PreChargeReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":CableCheckReq, Complex type name='urn:iso:15118:2:2016:MsgBody,CableCheckReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct iso2CableCheckReqType CableCheckReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":ChargingStatusReq, Complex type name='urn:iso:15118:2:2016:MsgBody,ChargingStatusReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumChargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumChargeCurrent{0-1}))', derivedBy='EXTENSION'. */ + struct iso2ChargingStatusReqType ChargingStatusReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":CertificateInstallationReq, Complex type name='urn:iso:15118:2:2016:MsgBody,CertificateInstallationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":OEMProvisioningCert,"urn:iso:15118:2:2016:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */ + struct iso2CertificateInstallationReqType CertificateInstallationReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":CertificateUpdateReq, Complex type name='urn:iso:15118:2:2016:MsgBody,CertificateUpdateReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2016:MsgBody":eMAID,"urn:iso:15118:2:2016:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */ + struct iso2CertificateUpdateReqType CertificateUpdateReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":SessionStopReq, Complex type name='urn:iso:15118:2:2016:MsgBody,SessionStopReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ChargingSession)', derivedBy='EXTENSION'. */ + struct iso2SessionStopReqType SessionStopReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":MeteringReceiptReq, Complex type name='urn:iso:15118:2:2016:MsgBody,MeteringReceiptReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":SessionID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo)', derivedBy='EXTENSION'. */ + struct iso2MeteringReceiptReqType MeteringReceiptReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":PowerDeliveryReq, Complex type name='urn:iso:15118:2:2016:MsgBody,PowerDeliveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ChargeProgress,"urn:iso:15118:2:2016:MsgBody":EVOperation{0-1},"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":ChargingProfile{0-1})', derivedBy='EXTENSION'. */ + struct iso2PowerDeliveryReqType PowerDeliveryReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":ChargeParameterDiscoveryReq, Complex type name='urn:iso:15118:2:2016:MsgBody,ChargeParameterDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":MaxSupportingPoints{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVEnergyTransferParameter,"urn:iso:15118:2:2016:MsgBody":MinimumPMaxRequest{0-1})', derivedBy='EXTENSION'. */ + struct iso2ChargeParameterDiscoveryReqType ChargeParameterDiscoveryReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":AuthorizationReq, Complex type name='urn:iso:15118:2:2016:MsgBody,AuthorizationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":GenChallenge{0-1})', derivedBy='EXTENSION'. */ + struct iso2AuthorizationReqType AuthorizationReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":PaymentDetailsReq, Complex type name='urn:iso:15118:2:2016:MsgBody,PaymentDetailsReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":eMAID,"urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain)', derivedBy='EXTENSION'. */ + struct iso2PaymentDetailsReqType PaymentDetailsReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":PaymentServiceSelectionReq, Complex type name='urn:iso:15118:2:2016:MsgBody,PaymentServiceSelectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":SelectedPaymentOption,"urn:iso:15118:2:2016:MsgBody":SelectedEnergyTransferService,"urn:iso:15118:2:2016:MsgBody":SelectedVASList{0-1})', derivedBy='EXTENSION'. */ + struct iso2PaymentServiceSelectionReqType PaymentServiceSelectionReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":ServiceDetailReq, Complex type name='urn:iso:15118:2:2016:MsgBody,ServiceDetailReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ServiceID)', derivedBy='EXTENSION'. */ + struct iso2ServiceDetailReqType ServiceDetailReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":ServiceDiscoveryReq, Complex type name='urn:iso:15118:2:2016:MsgBody,ServiceDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":SupportedServiceIDs{0-1})', derivedBy='EXTENSION'. */ + struct iso2ServiceDiscoveryReqType ServiceDiscoveryReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":SessionSetupReq, Complex type name='urn:iso:15118:2:2016:MsgBody,SessionSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVCCID)', derivedBy='EXTENSION'. */ + struct iso2SessionSetupReqType SessionSetupReq ; + /* element: "urn:iso:15118:2:2016:MsgBody":V2GResponse, Complex type name='urn:iso:15118:2:2016:MsgBody,V2GResponseType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1})', derivedBy='EXTENSION'. */ + struct iso2V2GResponseType V2GResponse ; + /* element: "urn:iso:15118:2:2016:MsgBody":DisconnectChargingDeviceRes, Complex type name='urn:iso:15118:2:2016:MsgBody,DisconnectChargingDeviceResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":EVSEElectricalChargingDeviceStatus,"urn:iso:15118:2:2016:MsgBody":EVSEMechanicalChargingDeviceStatus))', derivedBy='EXTENSION'. */ + struct iso2DisconnectChargingDeviceResType DisconnectChargingDeviceRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":ConnectChargingDeviceRes, Complex type name='urn:iso:15118:2:2016:MsgBody,ConnectChargingDeviceResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":EVSEElectricalChargingDeviceStatus,"urn:iso:15118:2:2016:MsgBody":EVSEMechanicalChargingDeviceStatus))', derivedBy='EXTENSION'. */ + struct iso2ConnectChargingDeviceResType ConnectChargingDeviceRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":SystemStatusRes, Complex type name='urn:iso:15118:2:2016:MsgBody,SystemStatusResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":OperationMode,"urn:iso:15118:2:2016:MsgBody":EVSEMechanicalChargingDeviceStatus))', derivedBy='EXTENSION'. */ + struct iso2SystemStatusResType SystemStatusRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":DC_BidirectionalControlRes, Complex type name='urn:iso:15118:2:2016:MsgBody,DC_BidirectionalControlResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2016:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSEMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumDischargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumChargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumDischargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumVoltage{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMinimumVoltage{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1}))', derivedBy='EXTENSION'. */ + struct iso2DC_BidirectionalControlResType DC_BidirectionalControlRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":AC_BidirectionalControlRes, Complex type name='urn:iso:15118:2:2016:MsgBody,AC_BidirectionalControlResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":EVSETargetPower,"urn:iso:15118:2:2016:MsgBody":EVSETargetReactivePower,"urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1}))', derivedBy='EXTENSION'. */ + struct iso2AC_BidirectionalControlResType AC_BidirectionalControlRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":VehicleCheckOutRes, Complex type name='urn:iso:15118:2:2016:MsgBody,VehicleCheckOutResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSECheckOutStatus))', derivedBy='EXTENSION'. */ + struct iso2VehicleCheckOutResType VehicleCheckOutRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":VehicleCheckInRes, Complex type name='urn:iso:15118:2:2016:MsgBody,VehicleCheckInResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":VehicleSpace,"urn:iso:15118:2:2016:MsgBody":TargetOffset{0-1}))', derivedBy='EXTENSION'. */ + struct iso2VehicleCheckInResType VehicleCheckInRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":PowerDemandRes, Complex type name='urn:iso:15118:2:2016:MsgBody,PowerDemandResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEOutputPower,"urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1},"urn:iso:15118:2:2016:MsgBody":PowerDemandParameters{0-1}))', derivedBy='EXTENSION'. */ + struct iso2PowerDemandResType PowerDemandRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":PairingRes, Complex type name='urn:iso:15118:2:2016:MsgBody,PairingResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":PairingParameters{0-1}))', derivedBy='EXTENSION'. */ + struct iso2PairingResType PairingRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":AlignmentCheckRes, Complex type name='urn:iso:15118:2:2016:MsgBody,AlignmentCheckResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":AlignmentCheckParameters{0-1}))', derivedBy='EXTENSION'. */ + struct iso2AlignmentCheckResType AlignmentCheckRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":FinePositioningRes, Complex type name='urn:iso:15118:2:2016:MsgBody,FinePositioningResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgDataTypes":EVSEFinePositioningParameters{0-1}))', derivedBy='EXTENSION'. */ + struct iso2FinePositioningResType FinePositioningRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":FinePositioningSetupRes, Complex type name='urn:iso:15118:2:2016:MsgBody,FinePositioningSetupResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgDataTypes":EVSEFinePositioningSetupParameters{0-1}))', derivedBy='EXTENSION'. */ + struct iso2FinePositioningSetupResType FinePositioningSetupRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":WeldingDetectionRes, Complex type name='urn:iso:15118:2:2016:MsgBody,WeldingDetectionResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage))', derivedBy='EXTENSION'. */ + struct iso2WeldingDetectionResType WeldingDetectionRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":CurrentDemandRes, Complex type name='urn:iso:15118:2:2016:MsgBody,CurrentDemandResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2016:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSEMaximumPower{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumVoltage{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1}))', derivedBy='EXTENSION'. */ + struct iso2CurrentDemandResType CurrentDemandRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":PreChargeRes, Complex type name='urn:iso:15118:2:2016:MsgBody,PreChargeResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage))', derivedBy='EXTENSION'. */ + struct iso2PreChargeResType PreChargeRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":CableCheckRes, Complex type name='urn:iso:15118:2:2016:MsgBody,CableCheckResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing))', derivedBy='EXTENSION'. */ + struct iso2CableCheckResType CableCheckRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":ChargingStatusRes, Complex type name='urn:iso:15118:2:2016:MsgBody,ChargingStatusResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1},"urn:iso:15118:2:2016:MsgBody":EVSETargetPower{0-1}))', derivedBy='EXTENSION'. */ + struct iso2ChargingStatusResType ChargingStatusRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":CertificateInstallationRes, Complex type name='urn:iso:15118:2:2016:MsgBody,CertificateInstallationResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2016:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2016:MsgBody":DHpublickey,"urn:iso:15118:2:2016:MsgBody":eMAID))', derivedBy='EXTENSION'. */ + struct iso2CertificateInstallationResType CertificateInstallationRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":CertificateUpdateRes, Complex type name='urn:iso:15118:2:2016:MsgBody,CertificateUpdateResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2016:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2016:MsgBody":DHpublickey,"urn:iso:15118:2:2016:MsgBody":eMAID,"urn:iso:15118:2:2016:MsgBody":RetryCounter{0-1}))', derivedBy='EXTENSION'. */ + struct iso2CertificateUpdateResType CertificateUpdateRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":SessionStopRes, Complex type name='urn:iso:15118:2:2016:MsgBody,SessionStopResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1})', derivedBy='EXTENSION'. */ + struct iso2SessionStopResType SessionStopRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":MeteringReceiptRes, Complex type name='urn:iso:15118:2:2016:MsgBody,MeteringReceiptResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1})', derivedBy='EXTENSION'. */ + struct iso2MeteringReceiptResType MeteringReceiptRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":PowerDeliveryRes, Complex type name='urn:iso:15118:2:2016:MsgBody,PowerDeliveryResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing))', derivedBy='EXTENSION'. */ + struct iso2PowerDeliveryResType PowerDeliveryRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":ChargeParameterDiscoveryRes, Complex type name='urn:iso:15118:2:2016:MsgBody,ChargeParameterDiscoveryResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":SAScheduleList{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVSEEnergyTransferParameter))', derivedBy='EXTENSION'. */ + struct iso2ChargeParameterDiscoveryResType ChargeParameterDiscoveryRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":AuthorizationRes, Complex type name='urn:iso:15118:2:2016:MsgBody,AuthorizationResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing))', derivedBy='EXTENSION'. */ + struct iso2AuthorizationResType AuthorizationRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":PaymentDetailsRes, Complex type name='urn:iso:15118:2:2016:MsgBody,PaymentDetailsResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":GenChallenge,"urn:iso:15118:2:2016:MsgBody":EVSETimeStamp))', derivedBy='EXTENSION'. */ + struct iso2PaymentDetailsResType PaymentDetailsRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":PaymentServiceSelectionRes, Complex type name='urn:iso:15118:2:2016:MsgBody,PaymentServiceSelectionResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1})', derivedBy='EXTENSION'. */ + struct iso2PaymentServiceSelectionResType PaymentServiceSelectionRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":ServiceDetailRes, Complex type name='urn:iso:15118:2:2016:MsgBody,ServiceDetailResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":ServiceID,"urn:iso:15118:2:2016:MsgBody":ServiceParameterList{0-1}))', derivedBy='EXTENSION'. */ + struct iso2ServiceDetailResType ServiceDetailRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":ServiceDiscoveryRes, Complex type name='urn:iso:15118:2:2016:MsgBody,ServiceDiscoveryResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":PaymentOptionList,"urn:iso:15118:2:2016:MsgBody":EnergyTransferServiceList,"urn:iso:15118:2:2016:MsgBody":VASList{0-1}))', derivedBy='EXTENSION'. */ + struct iso2ServiceDiscoveryResType ServiceDiscoveryRes ; + /* element: "urn:iso:15118:2:2016:MsgBody":SessionSetupRes, Complex type name='urn:iso:15118:2:2016:MsgBody,SessionSetupResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":EVSETimeStamp{0-1}))', derivedBy='EXTENSION'. */ + struct iso2SessionSetupResType SessionSetupRes ; +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + }; +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + unsigned int BodyElement_isUsed:1; + unsigned int V2GRequest_isUsed:1; + unsigned int DisconnectChargingDeviceReq_isUsed:1; + unsigned int ConnectChargingDeviceReq_isUsed:1; + unsigned int SystemStatusReq_isUsed:1; + unsigned int DC_BidirectionalControlReq_isUsed:1; + unsigned int AC_BidirectionalControlReq_isUsed:1; + unsigned int VehicleCheckOutReq_isUsed:1; + unsigned int VehicleCheckInReq_isUsed:1; + unsigned int PowerDemandReq_isUsed:1; + unsigned int PairingReq_isUsed:1; + unsigned int AlignmentCheckReq_isUsed:1; + unsigned int FinePositioningReq_isUsed:1; + unsigned int FinePositioningSetupReq_isUsed:1; + unsigned int WeldingDetectionReq_isUsed:1; + unsigned int CurrentDemandReq_isUsed:1; + unsigned int PreChargeReq_isUsed:1; + unsigned int CableCheckReq_isUsed:1; + unsigned int ChargingStatusReq_isUsed:1; + unsigned int CertificateInstallationReq_isUsed:1; + unsigned int CertificateUpdateReq_isUsed:1; + unsigned int SessionStopReq_isUsed:1; + unsigned int MeteringReceiptReq_isUsed:1; + unsigned int PowerDeliveryReq_isUsed:1; + unsigned int ChargeParameterDiscoveryReq_isUsed:1; + unsigned int AuthorizationReq_isUsed:1; + unsigned int PaymentDetailsReq_isUsed:1; + unsigned int PaymentServiceSelectionReq_isUsed:1; + unsigned int ServiceDetailReq_isUsed:1; + unsigned int ServiceDiscoveryReq_isUsed:1; + unsigned int SessionSetupReq_isUsed:1; + unsigned int V2GResponse_isUsed:1; + unsigned int DisconnectChargingDeviceRes_isUsed:1; + unsigned int ConnectChargingDeviceRes_isUsed:1; + unsigned int SystemStatusRes_isUsed:1; + unsigned int DC_BidirectionalControlRes_isUsed:1; + unsigned int AC_BidirectionalControlRes_isUsed:1; + unsigned int VehicleCheckOutRes_isUsed:1; + unsigned int VehicleCheckInRes_isUsed:1; + unsigned int PowerDemandRes_isUsed:1; + unsigned int PairingRes_isUsed:1; + unsigned int AlignmentCheckRes_isUsed:1; + unsigned int FinePositioningRes_isUsed:1; + unsigned int FinePositioningSetupRes_isUsed:1; + unsigned int WeldingDetectionRes_isUsed:1; + unsigned int CurrentDemandRes_isUsed:1; + unsigned int PreChargeRes_isUsed:1; + unsigned int CableCheckRes_isUsed:1; + unsigned int ChargingStatusRes_isUsed:1; + unsigned int CertificateInstallationRes_isUsed:1; + unsigned int CertificateUpdateRes_isUsed:1; + unsigned int SessionStopRes_isUsed:1; + unsigned int MeteringReceiptRes_isUsed:1; + unsigned int PowerDeliveryRes_isUsed:1; + unsigned int ChargeParameterDiscoveryRes_isUsed:1; + unsigned int AuthorizationRes_isUsed:1; + unsigned int PaymentDetailsRes_isUsed:1; + unsigned int PaymentServiceSelectionRes_isUsed:1; + unsigned int ServiceDetailRes_isUsed:1; + unsigned int ServiceDiscoveryRes_isUsed:1; + unsigned int SessionSetupRes_isUsed:1; +}; + +/* Complex type name='urn:iso:15118:2:2016:MsgDef,#AnonType_V2G_Message', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDef":Header,"urn:iso:15118:2:2016:MsgDef":Body)', derivedBy='RESTRICTION'. */ +struct iso2AnonType_V2G_Message { + /* element: "urn:iso:15118:2:2016:MsgDef":Header, Complex type name='urn:iso:15118:2:2016:MsgHeader,MessageHeaderType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgHeader":SessionID,"http://www.w3.org/2000/09/xmldsig#":Signature{0-1})', derivedBy='RESTRICTION'. */ + struct iso2MessageHeaderType Header ; + /* element: "urn:iso:15118:2:2016:MsgDef":Body, Complex type name='urn:iso:15118:2:2016:MsgBody,BodyType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":BodyElement)', derivedBy='RESTRICTION'. */ + struct iso2BodyType Body ; +}; + + + +#define iso2EXIDocument_MgmtData_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2EXIDocument_KeyName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2EXIDocument_DigestValue_BYTES_SIZE 350 +#define iso2EXIFragment_stringValue_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2EXIFragment_PgenCounter_BYTES_SIZE 350 +#define iso2EXIFragment_SalesTariffDescription_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,tariffDescriptionType is 32 */ +#define iso2EXIFragment_SessionID_BYTES_SIZE 8 /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,sessionIDType is 8 */ +#define iso2EXIFragment_XPath_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2EXIFragment_MgmtData_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2EXIFragment_OEMProvisioningCert_BYTES_SIZE 800 /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,certificateType is 800 */ +#define iso2EXIFragment_P_BYTES_SIZE 350 +#define iso2EXIFragment_Q_BYTES_SIZE 350 +#define iso2EXIFragment_X509SubjectName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2EXIFragment_G_BYTES_SIZE 350 +#define iso2EXIFragment_J_BYTES_SIZE 350 +#define iso2EXIFragment_Y_BYTES_SIZE 350 +#define iso2EXIFragment_DigestValue_BYTES_SIZE 350 +#define iso2EXIFragment_EVCCID_BYTES_SIZE 6 /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,evccIDType is 6 */ +#define iso2EXIFragment_PGPKeyID_BYTES_SIZE 350 +#define iso2EXIFragment_KeyName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2EXIFragment_X509SKI_BYTES_SIZE 350 +#define iso2EXIFragment_Certificate_BYTES_SIZE 800 /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,certificateType is 800 */ +#define iso2EXIFragment_Modulus_BYTES_SIZE 350 +#define iso2EXIFragment_SigMeterReading_BYTES_SIZE 64 /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,sigMeterReadingType is 64 */ +#define iso2EXIFragment_Exponent_BYTES_SIZE 350 +#define iso2EXIFragment_PGPKeyPacket_BYTES_SIZE 350 +#define iso2EXIFragment_Seed_BYTES_SIZE 350 +#define iso2EXIFragment_MeterID_CHARACTERS_SIZE 32 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,meterIDType is 32 */ +#define iso2EXIFragment_X509CRL_BYTES_SIZE 350 +#define iso2EXIFragment_SPKISexp_BYTES_SIZE 350 +#define iso2EXIFragment_X509Certificate_BYTES_SIZE 350 +#define iso2EXIFragment_EVSEID_CHARACTERS_SIZE 37 + EXTRA_CHAR /* XML schema facet maxLength for urn:iso:15118:2:2016:MsgDataTypes,evseIDType is 37 */ +#define iso2EXIFragment_GenChallenge_BYTES_SIZE 16 /* XML schema facet length for urn:iso:15118:2:2016:MsgDataTypes,genChallengeType is 16 */ +#define iso2EXIFragment_GAID_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define iso2EXIFragment_X509IssuerName_CHARACTERS_SIZE 50 + EXTRA_CHAR + + +/* Global elements of EXI Document */ +struct iso2EXIDocument { +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + union { +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + struct iso2AnonType_V2G_Message V2G_Message ; + struct iso2ServiceDiscoveryReqType ServiceDiscoveryReq ; + struct iso2ServiceDiscoveryResType ServiceDiscoveryRes ; + struct iso2FinePositioningReqType FinePositioningReq ; + struct iso2FinePositioningResType FinePositioningRes ; + struct iso2DisconnectChargingDeviceReqType DisconnectChargingDeviceReq ; + struct iso2DisconnectChargingDeviceResType DisconnectChargingDeviceRes ; + struct iso2PowerDemandReqType PowerDemandReq ; + struct iso2MeteringReceiptReqType MeteringReceiptReq ; + struct iso2PaymentDetailsReqType PaymentDetailsReq ; + struct iso2PowerDemandResType PowerDemandRes ; + struct iso2MeteringReceiptResType MeteringReceiptRes ; + struct iso2PaymentDetailsResType PaymentDetailsRes ; + struct iso2SessionSetupReqType SessionSetupReq ; + struct iso2SessionSetupResType SessionSetupRes ; + struct iso2CableCheckReqType CableCheckReq ; + struct iso2CableCheckResType CableCheckRes ; + struct iso2CertificateInstallationReqType CertificateInstallationReq ; + struct iso2CertificateInstallationResType CertificateInstallationRes ; + struct iso2SystemStatusReqType SystemStatusReq ; + struct iso2SystemStatusResType SystemStatusRes ; + struct iso2PairingReqType PairingReq ; + struct iso2WeldingDetectionReqType WeldingDetectionReq ; + struct iso2ConnectChargingDeviceReqType ConnectChargingDeviceReq ; + struct iso2PairingResType PairingRes ; + struct iso2WeldingDetectionResType WeldingDetectionRes ; + struct iso2ConnectChargingDeviceResType ConnectChargingDeviceRes ; + struct iso2CertificateUpdateReqType CertificateUpdateReq ; + struct iso2CertificateUpdateResType CertificateUpdateRes ; + struct iso2PaymentServiceSelectionReqType PaymentServiceSelectionReq ; + struct iso2PowerDeliveryReqType PowerDeliveryReq ; + struct iso2PaymentServiceSelectionResType PaymentServiceSelectionRes ; + struct iso2PowerDeliveryResType PowerDeliveryRes ; + struct iso2ChargingStatusReqType ChargingStatusReq ; + struct iso2ChargingStatusResType ChargingStatusRes ; + struct iso2BodyBaseType BodyElement ; + struct iso2AC_BidirectionalControlReqType AC_BidirectionalControlReq ; + struct iso2AC_BidirectionalControlResType AC_BidirectionalControlRes ; + struct iso2VehicleCheckInReqType VehicleCheckInReq ; + struct iso2CurrentDemandReqType CurrentDemandReq ; + struct iso2VehicleCheckInResType VehicleCheckInRes ; + struct iso2PreChargeReqType PreChargeReq ; + struct iso2CurrentDemandResType CurrentDemandRes ; + struct iso2PreChargeResType PreChargeRes ; + struct iso2AlignmentCheckReqType AlignmentCheckReq ; + struct iso2BodyBaseType V2GRequest ; + struct iso2SessionStopReqType SessionStopReq ; + struct iso2AuthorizationReqType AuthorizationReq ; + struct iso2AlignmentCheckResType AlignmentCheckRes ; + struct iso2SessionStopResType SessionStopRes ; + struct iso2AuthorizationResType AuthorizationRes ; + struct iso2VehicleCheckOutReqType VehicleCheckOutReq ; + struct iso2ChargeParameterDiscoveryReqType ChargeParameterDiscoveryReq ; + struct iso2VehicleCheckOutResType VehicleCheckOutRes ; + struct iso2ChargeParameterDiscoveryResType ChargeParameterDiscoveryRes ; + struct iso2V2GResponseType V2GResponse ; + struct iso2FinePositioningSetupReqType FinePositioningSetupReq ; + struct iso2FinePositioningSetupResType FinePositioningSetupRes ; + struct iso2ServiceDetailReqType ServiceDetailReq ; + struct iso2DC_BidirectionalControlReqType DC_BidirectionalControlReq ; + struct iso2ServiceDetailResType ServiceDetailRes ; + struct iso2DC_BidirectionalControlResType DC_BidirectionalControlRes ; + struct iso2LFA_EVFinePositioningSetupParametersType LFA_EVFinePositioningSetupParameters ; + struct iso2MV_EVSEFinePositioningParametersType MV_EVSEFinePositioningParameters ; + struct iso2RelativeTimeIntervalType RelativeTimeInterval ; + struct iso2SalesTariffEntryType SalesTariffEntry ; + struct iso2LFA_EVSEFinePositioningSetupParametersType LFA_EVSEFinePositioningSetupParameters ; + struct iso2AC_EVChargeParameterType AC_EVChargeParameter ; + struct iso2MV_EVSEFinePositioningSetupParametersType MV_EVSEFinePositioningSetupParameters ; + struct iso2EVEnergyTransferParameterType EVEnergyTransferParameter ; + struct iso2DC_EVSEBidirectionalParameterType DC_EVSEBidirectionalParameter ; + struct iso2SAScheduleListType SAScheduleList ; + struct iso2EVSEFinePositioningSetupParametersType EVSEFinePositioningSetupParameters ; + struct iso2Generic_EVSEFinePositioningParametersType Generic_EVSEFinePositioningParameters ; + struct iso2DC_EVChargeParameterType DC_EVChargeParameter ; + struct iso2DC_EVSEChargeParameterType DC_EVSEChargeParameter ; + struct iso2LFA_EVFinePositioningParametersType LFA_EVFinePositioningParameters ; + struct iso2EVFinePositioningSetupParametersType EVFinePositioningSetupParameters ; + struct iso2AC_EVSEBidirectionalParameterType AC_EVSEBidirectionalParameter ; + struct iso2EVFinePositioningParametersType EVFinePositioningParameters ; + struct iso2WPT_EVChargeParameterType WPT_EVChargeParameter ; + struct iso2LFA_EVSEFinePositioningParametersType LFA_EVSEFinePositioningParameters ; + struct iso2EVSEEnergyTransferParameterType EVSEEnergyTransferParameter ; + struct iso2AC_EVBidirectionalParameterType AC_EVBidirectionalParameter ; + struct iso2EVSEFinePositioningParametersType EVSEFinePositioningParameters ; + struct iso2WPT_EVSEChargeParameterType WPT_EVSEChargeParameter ; + struct iso2AC_EVSEChargeParameterType AC_EVSEChargeParameter ; + struct iso2PMaxScheduleEntryType PMaxScheduleEntry ; + struct iso2Generic_EVFinePositioningParametersType Generic_EVFinePositioningParameters ; + struct iso2DC_EVBidirectionalParameterType DC_EVBidirectionalParameter ; + struct iso2SignaturePropertyType SignatureProperty ; + struct iso2DSAKeyValueType DSAKeyValue ; + struct iso2SignaturePropertiesType SignatureProperties ; + struct iso2KeyValueType KeyValue ; + struct iso2TransformsType Transforms ; + struct iso2DigestMethodType DigestMethod ; + struct iso2SignatureType Signature ; + struct iso2RetrievalMethodType RetrievalMethod ; + struct iso2ManifestType Manifest ; + struct iso2ReferenceType Reference ; + struct iso2CanonicalizationMethodType CanonicalizationMethod ; + struct iso2RSAKeyValueType RSAKeyValue ; + struct iso2TransformType Transform ; + struct iso2PGPDataType PGPData ; + struct { + exi_string_character_t characters[iso2EXIDocument_MgmtData_CHARACTERS_SIZE]; + uint16_t charactersLen; + } MgmtData ; + struct iso2SignatureMethodType SignatureMethod ; + struct iso2KeyInfoType KeyInfo ; + struct iso2SPKIDataType SPKIData ; + struct iso2X509DataType X509Data ; + struct iso2SignatureValueType SignatureValue ; + struct { + exi_string_character_t characters[iso2EXIDocument_KeyName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } KeyName ; + struct { + uint8_t bytes[iso2EXIDocument_DigestValue_BYTES_SIZE]; + uint16_t bytesLen; + } DigestValue ; + struct iso2SignedInfoType SignedInfo ; + struct iso2ObjectType Object ; +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + }; +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + unsigned int V2G_Message_isUsed:1; + unsigned int ServiceDiscoveryReq_isUsed:1; + unsigned int ServiceDiscoveryRes_isUsed:1; + unsigned int FinePositioningReq_isUsed:1; + unsigned int FinePositioningRes_isUsed:1; + unsigned int DisconnectChargingDeviceReq_isUsed:1; + unsigned int DisconnectChargingDeviceRes_isUsed:1; + unsigned int PowerDemandReq_isUsed:1; + unsigned int MeteringReceiptReq_isUsed:1; + unsigned int PaymentDetailsReq_isUsed:1; + unsigned int PowerDemandRes_isUsed:1; + unsigned int MeteringReceiptRes_isUsed:1; + unsigned int PaymentDetailsRes_isUsed:1; + unsigned int SessionSetupReq_isUsed:1; + unsigned int SessionSetupRes_isUsed:1; + unsigned int CableCheckReq_isUsed:1; + unsigned int CableCheckRes_isUsed:1; + unsigned int CertificateInstallationReq_isUsed:1; + unsigned int CertificateInstallationRes_isUsed:1; + unsigned int SystemStatusReq_isUsed:1; + unsigned int SystemStatusRes_isUsed:1; + unsigned int PairingReq_isUsed:1; + unsigned int WeldingDetectionReq_isUsed:1; + unsigned int ConnectChargingDeviceReq_isUsed:1; + unsigned int PairingRes_isUsed:1; + unsigned int WeldingDetectionRes_isUsed:1; + unsigned int ConnectChargingDeviceRes_isUsed:1; + unsigned int CertificateUpdateReq_isUsed:1; + unsigned int CertificateUpdateRes_isUsed:1; + unsigned int PaymentServiceSelectionReq_isUsed:1; + unsigned int PowerDeliveryReq_isUsed:1; + unsigned int PaymentServiceSelectionRes_isUsed:1; + unsigned int PowerDeliveryRes_isUsed:1; + unsigned int ChargingStatusReq_isUsed:1; + unsigned int ChargingStatusRes_isUsed:1; + unsigned int BodyElement_isUsed:1; + unsigned int AC_BidirectionalControlReq_isUsed:1; + unsigned int AC_BidirectionalControlRes_isUsed:1; + unsigned int VehicleCheckInReq_isUsed:1; + unsigned int CurrentDemandReq_isUsed:1; + unsigned int VehicleCheckInRes_isUsed:1; + unsigned int PreChargeReq_isUsed:1; + unsigned int CurrentDemandRes_isUsed:1; + unsigned int PreChargeRes_isUsed:1; + unsigned int AlignmentCheckReq_isUsed:1; + unsigned int V2GRequest_isUsed:1; + unsigned int SessionStopReq_isUsed:1; + unsigned int AuthorizationReq_isUsed:1; + unsigned int AlignmentCheckRes_isUsed:1; + unsigned int SessionStopRes_isUsed:1; + unsigned int AuthorizationRes_isUsed:1; + unsigned int VehicleCheckOutReq_isUsed:1; + unsigned int ChargeParameterDiscoveryReq_isUsed:1; + unsigned int VehicleCheckOutRes_isUsed:1; + unsigned int ChargeParameterDiscoveryRes_isUsed:1; + unsigned int V2GResponse_isUsed:1; + unsigned int FinePositioningSetupReq_isUsed:1; + unsigned int FinePositioningSetupRes_isUsed:1; + unsigned int ServiceDetailReq_isUsed:1; + unsigned int DC_BidirectionalControlReq_isUsed:1; + unsigned int ServiceDetailRes_isUsed:1; + unsigned int DC_BidirectionalControlRes_isUsed:1; + unsigned int LFA_EVFinePositioningSetupParameters_isUsed:1; + unsigned int MV_EVSEFinePositioningParameters_isUsed:1; + unsigned int RelativeTimeInterval_isUsed:1; + unsigned int SalesTariffEntry_isUsed:1; + unsigned int LFA_EVSEFinePositioningSetupParameters_isUsed:1; + unsigned int AC_EVChargeParameter_isUsed:1; + unsigned int MV_EVSEFinePositioningSetupParameters_isUsed:1; + unsigned int EVEnergyTransferParameter_isUsed:1; + unsigned int DC_EVSEBidirectionalParameter_isUsed:1; + unsigned int SAScheduleList_isUsed:1; + unsigned int EVSEFinePositioningSetupParameters_isUsed:1; + unsigned int Generic_EVSEFinePositioningParameters_isUsed:1; + unsigned int DC_EVChargeParameter_isUsed:1; + unsigned int DC_EVSEChargeParameter_isUsed:1; + unsigned int LFA_EVFinePositioningParameters_isUsed:1; + unsigned int EVFinePositioningSetupParameters_isUsed:1; + unsigned int AC_EVSEBidirectionalParameter_isUsed:1; + unsigned int EVFinePositioningParameters_isUsed:1; + unsigned int WPT_EVChargeParameter_isUsed:1; + unsigned int LFA_EVSEFinePositioningParameters_isUsed:1; + unsigned int EVSEEnergyTransferParameter_isUsed:1; + unsigned int AC_EVBidirectionalParameter_isUsed:1; + unsigned int EVSEFinePositioningParameters_isUsed:1; + unsigned int WPT_EVSEChargeParameter_isUsed:1; + unsigned int AC_EVSEChargeParameter_isUsed:1; + unsigned int PMaxScheduleEntry_isUsed:1; + unsigned int Generic_EVFinePositioningParameters_isUsed:1; + unsigned int DC_EVBidirectionalParameter_isUsed:1; + unsigned int SignatureProperty_isUsed:1; + unsigned int DSAKeyValue_isUsed:1; + unsigned int SignatureProperties_isUsed:1; + unsigned int KeyValue_isUsed:1; + unsigned int Transforms_isUsed:1; + unsigned int DigestMethod_isUsed:1; + unsigned int Signature_isUsed:1; + unsigned int RetrievalMethod_isUsed:1; + unsigned int Manifest_isUsed:1; + unsigned int Reference_isUsed:1; + unsigned int CanonicalizationMethod_isUsed:1; + unsigned int RSAKeyValue_isUsed:1; + unsigned int Transform_isUsed:1; + unsigned int PGPData_isUsed:1; + unsigned int MgmtData_isUsed:1; + unsigned int SignatureMethod_isUsed:1; + unsigned int KeyInfo_isUsed:1; + unsigned int SPKIData_isUsed:1; + unsigned int X509Data_isUsed:1; + unsigned int SignatureValue_isUsed:1; + unsigned int KeyName_isUsed:1; + unsigned int DigestValue_isUsed:1; + unsigned int SignedInfo_isUsed:1; + unsigned int Object_isUsed:1; + + + int _warning_; +}; + + +#if DEPLOY_ISO2_CODEC_FRAGMENT == SUPPORT_YES +/* Possible elements of EXI Fragment */ +struct iso2EXIFragment { +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + union { +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + struct iso2PhysicalValueType EVMaximumVoltage ; + uint32_t FrequencyChannel ; + iso2EVSEProcessingType EVProcessing ; + int BulkChargingComplete ; + iso2parkingMethodType ParkingMethod ; + uint8_t SAScheduleTupleID ; + uint16_t Distance ; + struct iso2ParameterSetType ParameterSet ; + struct iso2PhysicalValueType EVMinimumDischargeCurrent ; + uint8_t SignalSeparationTime ; + struct iso2EVSEEnergyTransferParameterType EVSEEnergyTransferParameter ; + struct iso2PhysicalValueType EVSEMaximumVoltage ; + struct iso2DC_EVSEBidirectionalParameterType DC_EVSEBidirectionalParameter ; + iso2chargingSessionType ChargingSession ; + struct iso2SubCertificatesType SubCertificates ; + struct iso2RetrievalMethodType RetrievalMethod ; + struct iso2MagneticVectorSetupListType MagneticVectorSetupList ; + struct iso2ParameterSetType PairingParameters ; + struct iso2PhysicalValueType EVSEMinimumPower ; + struct iso2AC_BidirectionalControlReqType AC_BidirectionalControlReq ; + struct iso2CostType Cost ; + struct iso2AC_BidirectionalControlResType AC_BidirectionalControlRes ; + struct iso2SalesTariffType BuyBackTariff ; + int16_t XCoordinate ; + iso2EVCheckOutStatusType EVSECheckOutStatus ; + struct { + exi_string_character_t characters[iso2EXIFragment_stringValue_CHARACTERS_SIZE]; + uint16_t charactersLen; + } stringValue ; + int16_t RetryCounter ; + struct iso2PhysicalValueType EVSEMaximumDischargeCurrent ; + struct iso2SensorType Sensor ; + uint64_t MeterReadingCharged ; + int64_t HMACOutputLength ; + struct iso2V2GResponseType V2GResponse ; + struct iso2PhysicalValueType EVMinimumVoltage ; + struct iso2PhysicalValueType EVMinimumEnergyRequest ; + struct iso2RelativeTimeIntervalType RelativeTimeInterval ; + struct iso2WPT_EVChargeParameterType WPT_EVChargeParameter ; + struct iso2SAScheduleTupleType SAScheduleTuple ; + uint16_t ServiceID ; + struct { + uint8_t bytes[iso2EXIFragment_PgenCounter_BYTES_SIZE]; + uint16_t bytesLen; + } PgenCounter ; + struct { + exi_string_character_t characters[iso2EXIFragment_SalesTariffDescription_CHARACTERS_SIZE]; + uint16_t charactersLen; + } SalesTariffDescription ; + struct iso2PhysicalValueType AngleGAtoVA ; + int boolValue ; + struct iso2PhysicalValueType EVMaximumDischargeCurrent ; + uint16_t NotificationMaxDelay ; + struct iso2PhysicalValueType EVSEMaximumDischargePower ; + struct iso2PGPDataType PGPData ; + struct iso2PhysicalValueType EVSEMaximumChargePower ; + struct { + uint8_t bytes[iso2EXIFragment_SessionID_BYTES_SIZE]; + uint16_t bytesLen; + } SessionID ; + struct iso2PhysicalValueType EVSEEnergyToBeDelivered ; + struct iso2PhysicalValueType EVMaximumPower ; + struct iso2PhysicalValueType EVMaximumCurrent ; + struct iso2RSAKeyValueType RSAKeyValue ; + struct iso2PhysicalValueType EVSENominalVoltage ; + struct iso2MagneticVectorType MagneticVector ; + struct { + exi_string_character_t characters[iso2EXIFragment_XPath_CHARACTERS_SIZE]; + uint16_t charactersLen; + } XPath ; + struct iso2SignatureType Signature ; + iso2electricalChargingDeviceStatusType EVElectricalChargingDeviceStatus ; + iso2EVSEProcessingType EVSEProcessing ; + iso2FODStatusType FODStatus ; + struct iso2PowerDeliveryResType PowerDeliveryRes ; + struct iso2SessionStopResType SessionStopRes ; + struct iso2WPT_EVSEChargeParameterType WPT_EVSEChargeParameter ; + iso2responseCodeType ResponseCode ; + struct iso2PhysicalValueType EVTargetEnergyRequest ; + struct iso2FinePositioningSetupReqType FinePositioningSetupReq ; + struct iso2PhysicalValueType EVSEPresentCurrent ; + struct iso2FinePositioningSetupResType FinePositioningSetupRes ; + struct iso2PMaxScheduleEntryType ProfileEntry ; + struct { + exi_string_character_t characters[iso2EXIFragment_MgmtData_CHARACTERS_SIZE]; + uint16_t charactersLen; + } MgmtData ; + struct iso2CertificateChainType SAProvisioningCertificateChain ; + struct iso2PowerDeliveryReqType PowerDeliveryReq ; + struct iso2SessionStopReqType SessionStopReq ; + int ReceiptRequired ; + struct iso2ChargingProfileType ChargingProfile ; + uint16_t MaxSupportingPoints ; + uint32_t start ; + struct iso2PhysicalValueType EVMinimumChargePower ; + struct iso2PhysicalValueType amount ; + struct iso2PreChargeReqType PreChargeReq ; + struct { + uint8_t bytes[iso2EXIFragment_OEMProvisioningCert_BYTES_SIZE]; + uint16_t bytesLen; + } OEMProvisioningCert ; + uint32_t PackageIndex ; + struct iso2PreChargeResType PreChargeRes ; + struct { + uint8_t bytes[iso2EXIFragment_P_BYTES_SIZE]; + uint16_t bytesLen; + } P ; + struct { + uint8_t bytes[iso2EXIFragment_Q_BYTES_SIZE]; + uint16_t bytesLen; + } Q ; + struct { + exi_string_character_t characters[iso2EXIFragment_X509SubjectName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } X509SubjectName ; + struct { + uint8_t bytes[iso2EXIFragment_G_BYTES_SIZE]; + uint16_t bytesLen; + } G ; + struct { + uint8_t bytes[iso2EXIFragment_J_BYTES_SIZE]; + uint16_t bytesLen; + } J ; + struct iso2CertificateChainType ContractSignatureCertChain ; + struct iso2MV_EVSEFinePositioningSetupParametersType MV_EVSEFinePositioningSetupParameters ; + struct iso2PhysicalValueType EVSEMinimumDischargeCurrent ; + struct iso2PhysicalValueType EVMaximumChargeCurrent ; + uint16_t AlignmentOffset ; + struct { + uint8_t bytes[iso2EXIFragment_Y_BYTES_SIZE]; + uint16_t bytesLen; + } Y ; + int8_t RemainingTimeToTargetSOC ; + struct { + uint8_t bytes[iso2EXIFragment_DigestValue_BYTES_SIZE]; + uint16_t bytesLen; + } DigestValue ; + struct iso2SensorMeasurementsType SensorMeasurements ; + struct iso2SalesTariffType SalesTariff ; + struct { + uint8_t bytes[iso2EXIFragment_EVCCID_BYTES_SIZE]; + uint16_t bytesLen; + } EVCCID ; + struct iso2PhysicalValueType EVSEMaximumPower ; + struct iso2TargetPositionType TargetOffset ; + struct iso2ParameterSetType PowerDemandParameters ; + struct { + uint8_t bytes[iso2EXIFragment_PGPKeyID_BYTES_SIZE]; + uint16_t bytesLen; + } PGPKeyID ; + struct iso2DisconnectChargingDeviceReqType DisconnectChargingDeviceReq ; + struct iso2DisconnectChargingDeviceResType DisconnectChargingDeviceRes ; + struct iso2DSAKeyValueType DSAKeyValue ; + struct iso2SalesTariffEntryType SalesTariffEntry ; + struct iso2CertificateInstallationResType CertificateInstallationRes ; + struct iso2CanonicalizationMethodType CanonicalizationMethod ; + struct iso2Generic_EVFinePositioningParametersType Generic_EVFinePositioningParameters ; + struct iso2PhysicalValueType EVSEMinimumVoltage ; + struct iso2SystemStatusResType SystemStatusRes ; + struct iso2PhysicalValueType EVSEOutputPower ; + struct iso2SignedInfoType SignedInfo ; + struct iso2PhysicalValueType EVMinimumChargeCurrent ; + iso2costKindType costKind ; + struct iso2SystemStatusReqType SystemStatusReq ; + struct iso2CableCheckReqType CableCheckReq ; + uint8_t NumEPriceLevels ; + int EVSEVoltageLimitAchieved ; + uint8_t PackageSeparationTime ; + struct iso2CableCheckResType CableCheckRes ; + iso2EVCheckInStatusType EVCheckInStatus ; + struct iso2PMaxScheduleType PMaxDischargeSchedule ; + struct iso2PhysicalValueType EVMinimumPower ; + struct iso2PhysicalValueType ChargingPerformance ; + struct iso2AlignmentCheckReqType AlignmentCheckReq ; + iso2mechanicalChargingDeviceStatusType EVMechanicalChargingDeviceStatus ; + uint16_t VehicleSpace ; + struct iso2AlignmentCheckResType AlignmentCheckRes ; + struct iso2PhysicalValueType EVMinimumDischargePower ; + int8_t RemainingTimeToMinimumSOC ; + struct iso2AuthorizationResType AuthorizationRes ; + struct iso2CertificateInstallationReqType CertificateInstallationReq ; + struct iso2PaymentDetailsReqType PaymentDetailsReq ; + struct iso2PaymentDetailsResType PaymentDetailsRes ; + struct iso2AuthorizationReqType AuthorizationReq ; + struct iso2PhysicalValueType EVTargetCurrent ; + struct iso2SessionSetupReqType SessionSetupReq ; + struct iso2SessionSetupResType SessionSetupRes ; + struct iso2PhysicalValueType EVSENominalFrequency ; + struct iso2MessageHeaderType Header ; + uint8_t NumberOfSensors ; + int64_t EVSETimeStamp ; + int16_t MeterStatus ; + struct iso2MV_EVSEFinePositioningParametersType MV_EVSEFinePositioningParameters ; + iso2chargeProgressType ChargeProgress ; + struct { + exi_string_character_t characters[iso2EXIFragment_KeyName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } KeyName ; + struct iso2PMaxScheduleType PMaxSchedule ; + uint32_t duration ; + int8_t RemainingTimeToBulkSOC ; + struct iso2CartesianCoordinatesType SensorOrientation ; + struct iso2PhysicalValueType EVSEMaximumChargeCurrent ; + struct iso2LFA_EVSEFinePositioningParametersType LFA_EVSEFinePositioningParameters ; + struct iso2VehicleCheckInResType VehicleCheckInRes ; + struct iso2PMaxScheduleEntryType PMaxScheduleEntry ; + struct iso2SAScheduleListType SAScheduleList ; + struct { + uint8_t bytes[iso2EXIFragment_X509SKI_BYTES_SIZE]; + uint16_t bytesLen; + } X509SKI ; + struct iso2PaymentOptionListType PaymentOptionList ; + struct iso2ContractSignatureEncryptedPrivateKeyType ContractSignatureEncryptedPrivateKey ; + struct iso2VehicleCheckInReqType VehicleCheckInReq ; + struct { + uint8_t bytes[iso2EXIFragment_Certificate_BYTES_SIZE]; + uint16_t bytesLen; + } Certificate ; + uint64_t CheckOutTime ; + int8_t CurrentSOC ; + int16_t ZCoordinate ; + uint16_t MeasurementData ; + struct iso2PairingResType PairingRes ; + struct iso2PhysicalValueType EVSEMaximumCurrent ; + struct iso2LFA_EVFinePositioningParametersType LFA_EVFinePositioningParameters ; + struct iso2ParameterSetType AlignmentCheckParameters ; + int8_t EffectiveRadiatedPower ; + struct iso2PairingReqType PairingReq ; + int16_t Value ; + int8_t byteValue ; + struct iso2CurrentDemandReqType CurrentDemandReq ; + struct iso2Generic_EVSEFinePositioningParametersType Generic_EVSEFinePositioningParameters ; + struct iso2CurrentDemandResType CurrentDemandRes ; + struct iso2AC_EVBidirectionalParameterType AC_EVBidirectionalParameter ; + struct { + uint8_t bytes[iso2EXIFragment_Modulus_BYTES_SIZE]; + uint16_t bytesLen; + } Modulus ; + struct iso2SelectedServiceType SelectedEnergyTransferService ; + struct iso2PhysicalValueType startValue ; + struct iso2SelectedServiceListType SelectedVASList ; + struct iso2ChargeParameterDiscoveryReqType ChargeParameterDiscoveryReq ; + struct iso2ChargeParameterDiscoveryResType ChargeParameterDiscoveryRes ; + struct { + uint8_t bytes[iso2EXIFragment_SigMeterReading_BYTES_SIZE]; + uint16_t bytesLen; + } SigMeterReading ; + int8_t TargetSOC ; + struct iso2EVSEStatusType EVSEStatus ; + struct iso2PhysicalValueType EVSEMinimumChargeCurrent ; + iso2electricalChargingDeviceStatusType EVSEElectricalChargingDeviceStatus ; + int64_t X509SerialNumber ; + iso2paymentOptionType PaymentOption ; + struct iso2TransformsType Transforms ; + struct iso2PhysicalValueType EVSEPeakCurrentRipple ; + struct iso2ConsumptionCostType ConsumptionCost ; + struct iso2EVSEFinePositioningSetupParametersType EVSEFinePositioningSetupParameters ; + uint8_t EPriceLevel ; + struct { + uint8_t bytes[iso2EXIFragment_Exponent_BYTES_SIZE]; + uint16_t bytesLen; + } Exponent ; + struct iso2X509IssuerSerialType X509IssuerSerial ; + struct iso2SPKIDataType SPKIData ; + struct iso2MagneticVectorListType MagneticVectorList ; + struct iso2EVSEFinePositioningParametersType EVSEFinePositioningParameters ; + struct iso2PhysicalValueType EVTargetPower ; + struct iso2SensorPackageListType SensorPackageList ; + uint32_t DepartureTime ; + int InletHot ; + struct iso2PhysicalValueType EVPresentActivePower ; + struct iso2X509DataType X509Data ; + int16_t YCoordinate ; + struct iso2KeyValueType KeyValue ; + struct iso2DisplayParametersType DisplayParameters ; + int EVSEPowerLimitAchieved ; + struct iso2BodyType Body ; + struct iso2DC_EVChargeParameterType DC_EVChargeParameter ; + struct iso2ServiceType Service ; + struct iso2SignaturePropertyType SignatureProperty ; + struct { + uint8_t bytes[iso2EXIFragment_PGPKeyPacket_BYTES_SIZE]; + uint16_t bytesLen; + } PGPKeyPacket ; + struct { + uint8_t bytes[iso2EXIFragment_Seed_BYTES_SIZE]; + uint16_t bytesLen; + } Seed ; + struct iso2LFA_EVFinePositioningSetupParametersType LFA_EVFinePositioningSetupParameters ; + struct iso2MinimumPMaxRequestType MinimumPMaxRequest ; + struct iso2FinePositioningReqType FinePositioningReq ; + struct iso2ServiceListType EnergyTransferServiceList ; + struct iso2FinePositioningResType FinePositioningRes ; + struct iso2AC_EVSEBidirectionalParameterType AC_EVSEBidirectionalParameter ; + int FreeService ; + struct iso2AC_EVSEChargeParameterType AC_EVSEChargeParameter ; + uint8_t SensorID ; + struct iso2PhysicalValueType EVSECurrentRegulationTolerance ; + iso2mechanicalChargingDeviceStatusType EVSEMechanicalChargingDeviceStatus ; + struct iso2EVEnergyTransferParameterType EVEnergyTransferParameter ; + uint8_t SignalPulseDuration ; + int16_t shortValue ; + struct iso2ManifestType Manifest ; + struct iso2DC_EVSEChargeParameterType DC_EVSEChargeParameter ; + struct iso2MeteringReceiptReqType MeteringReceiptReq ; + struct { + exi_string_character_t characters[iso2EXIFragment_MeterID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } MeterID ; + struct iso2MeteringReceiptResType MeteringReceiptRes ; + struct iso2ServiceDiscoveryReqType ServiceDiscoveryReq ; + uint8_t SalesTariffID ; + struct iso2ServiceDiscoveryResType ServiceDiscoveryRes ; + struct { + uint8_t bytes[iso2EXIFragment_X509CRL_BYTES_SIZE]; + uint16_t bytesLen; + } X509CRL ; + struct iso2MagneticVectorSetupType MagneticVectorSetup ; + struct iso2DigestMethodType DigestMethod ; + struct { + uint8_t bytes[iso2EXIFragment_SPKISexp_BYTES_SIZE]; + uint16_t bytesLen; + } SPKISexp ; + uint64_t MeterReadingDischarged ; + struct iso2MeasurementDataListType MeasurementDataList ; + struct iso2SignaturePropertiesType SignatureProperties ; + struct iso2CartesianCoordinatesType SensorPosition ; + struct iso2LFA_EVSEFinePositioningSetupParametersType LFA_EVSEFinePositioningSetupParameters ; + struct iso2EMAIDType eMAID ; + struct iso2SensorPackageType SensorPackage ; + iso2EVCheckOutStatusType EVCheckOutStatus ; + struct { + uint8_t bytes[iso2EXIFragment_X509Certificate_BYTES_SIZE]; + uint16_t bytesLen; + } X509Certificate ; + struct iso2X509IssuerSerialType RootCertificateID ; + struct iso2DC_BidirectionalControlReqType DC_BidirectionalControlReq ; + struct iso2PhysicalValueType EVSEPresentVoltage ; + struct iso2DC_BidirectionalControlResType DC_BidirectionalControlRes ; + struct iso2ServiceListType VASList ; + struct iso2MeterInfoType MeterInfo ; + struct iso2PhysicalValueType EVSETargetReactivePower ; + struct iso2ChargingStatusReqType ChargingStatusReq ; + struct iso2ParameterSetType GenericParameters ; + struct iso2ChargingStatusResType ChargingStatusRes ; + struct iso2PhysicalValueType EVMaximumChargePower ; + int8_t BulkSOC ; + uint8_t NumberOfSignalPackages ; + uint16_t ParameterSetID ; + struct iso2PhysicalValueType PMax ; + struct iso2PhysicalValueType EVMaximumEnergyRequest ; + iso2EVOperationType EVOperation ; + struct iso2CertificateUpdateResType CertificateUpdateRes ; + int ChargingComplete ; + struct iso2ListOfRootCertificateIDsType ListOfRootCertificateIDs ; + struct iso2PhysicalValueType RotationVAtoGA ; + struct iso2PhysicalValueType EVTargetVoltage ; + struct iso2CertificateUpdateReqType CertificateUpdateReq ; + struct iso2ConnectChargingDeviceResType ConnectChargingDeviceRes ; + struct iso2DiffieHellmanPublickeyType DHpublickey ; + struct iso2ServiceParameterListType ServiceParameterList ; + struct iso2SignatureValueType SignatureValue ; + struct iso2PhysicalValueType physicalValue ; + iso2operationModeType OperationMode ; + int EVSECurrentLimitAchieved ; + struct iso2ServiceDetailReqType ServiceDetailReq ; + struct iso2ServiceDetailResType ServiceDetailRes ; + int32_t intValue ; + struct iso2PhysicalValueType EVMaximumDischargePower ; + int8_t MinimumSOC ; + iso2paymentOptionType SelectedPaymentOption ; + struct iso2AnonType_V2G_Message V2G_Message ; + struct { + exi_string_character_t characters[iso2EXIFragment_EVSEID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } EVSEID ; + int64_t TMeter ; + struct iso2SensorOrderListType SensorOrder ; + struct iso2ServiceIDListType SupportedServiceIDs ; + struct { + uint8_t bytes[iso2EXIFragment_GenChallenge_BYTES_SIZE]; + uint16_t bytesLen; + } GenChallenge ; + struct iso2EVFinePositioningParametersType EVFinePositioningParameters ; + struct iso2SensorListType SensorList ; + struct iso2KeyInfoType KeyInfo ; + struct iso2ConnectChargingDeviceReqType ConnectChargingDeviceReq ; + struct iso2AC_EVChargeParameterType AC_EVChargeParameter ; + struct iso2ParameterType Parameter ; + struct iso2WeldingDetectionResType WeldingDetectionRes ; + struct { + exi_string_character_t characters[iso2EXIFragment_GAID_CHARACTERS_SIZE]; + uint16_t charactersLen; + } GAID ; + uint16_t SignalFrequency ; + struct iso2PhysicalValueType EVSETargetPower ; + struct iso2DC_EVBidirectionalParameterType DC_EVBidirectionalParameter ; + struct iso2SignatureMethodType SignatureMethod ; + struct iso2WeldingDetectionReqType WeldingDetectionReq ; + struct iso2SelectedServiceType SelectedService ; + struct iso2PhysicalValueType EVInputPower ; + struct iso2VehicleCheckOutReqType VehicleCheckOutReq ; + struct iso2PowerDemandReqType PowerDemandReq ; + struct iso2VehicleCheckOutResType VehicleCheckOutRes ; + uint16_t CurrentRange ; + struct iso2PhysicalValueType EVPresentReactivePower ; + struct { + exi_string_character_t characters[iso2EXIFragment_X509IssuerName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } X509IssuerName ; + struct iso2BodyBaseType V2GRequest ; + struct iso2ReferenceType Reference ; + struct iso2BodyBaseType BodyElement ; + struct iso2PMaxScheduleEntryType MinimumPMaxScheduleEntry ; + struct iso2EVFinePositioningSetupParametersType EVFinePositioningSetupParameters ; + iso2EVSENotificationType EVSENotification ; + struct iso2PaymentServiceSelectionReqType PaymentServiceSelectionReq ; + struct iso2PaymentServiceSelectionResType PaymentServiceSelectionRes ; + struct iso2TransformType Transform ; + struct iso2ObjectType Object ; + uint16_t TargetOffsetY ; + struct iso2PowerDemandResType PowerDemandRes ; + uint16_t TargetOffsetX ; +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + }; +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + unsigned int EVMaximumVoltage_isUsed:1; + unsigned int FrequencyChannel_isUsed:1; + unsigned int EVProcessing_isUsed:1; + unsigned int BulkChargingComplete_isUsed:1; + unsigned int ParkingMethod_isUsed:1; + unsigned int SAScheduleTupleID_isUsed:1; + unsigned int Distance_isUsed:1; + unsigned int ParameterSet_isUsed:1; + unsigned int EVMinimumDischargeCurrent_isUsed:1; + unsigned int SignalSeparationTime_isUsed:1; + unsigned int EVSEEnergyTransferParameter_isUsed:1; + unsigned int EVSEMaximumVoltage_isUsed:1; + unsigned int DC_EVSEBidirectionalParameter_isUsed:1; + unsigned int ChargingSession_isUsed:1; + unsigned int SubCertificates_isUsed:1; + unsigned int RetrievalMethod_isUsed:1; + unsigned int MagneticVectorSetupList_isUsed:1; + unsigned int PairingParameters_isUsed:1; + unsigned int EVSEMinimumPower_isUsed:1; + unsigned int AC_BidirectionalControlReq_isUsed:1; + unsigned int Cost_isUsed:1; + unsigned int AC_BidirectionalControlRes_isUsed:1; + unsigned int BuyBackTariff_isUsed:1; + unsigned int XCoordinate_isUsed:1; + unsigned int EVSECheckOutStatus_isUsed:1; + unsigned int stringValue_isUsed:1; + unsigned int RetryCounter_isUsed:1; + unsigned int EVSEMaximumDischargeCurrent_isUsed:1; + unsigned int Sensor_isUsed:1; + unsigned int MeterReadingCharged_isUsed:1; + unsigned int HMACOutputLength_isUsed:1; + unsigned int V2GResponse_isUsed:1; + unsigned int EVMinimumVoltage_isUsed:1; + unsigned int EVMinimumEnergyRequest_isUsed:1; + unsigned int RelativeTimeInterval_isUsed:1; + unsigned int WPT_EVChargeParameter_isUsed:1; + unsigned int SAScheduleTuple_isUsed:1; + unsigned int ServiceID_isUsed:1; + unsigned int PgenCounter_isUsed:1; + unsigned int SalesTariffDescription_isUsed:1; + unsigned int AngleGAtoVA_isUsed:1; + unsigned int boolValue_isUsed:1; + unsigned int EVMaximumDischargeCurrent_isUsed:1; + unsigned int NotificationMaxDelay_isUsed:1; + unsigned int EVSEMaximumDischargePower_isUsed:1; + unsigned int PGPData_isUsed:1; + unsigned int EVSEMaximumChargePower_isUsed:1; + unsigned int SessionID_isUsed:1; + unsigned int EVSEEnergyToBeDelivered_isUsed:1; + unsigned int EVMaximumPower_isUsed:1; + unsigned int EVMaximumCurrent_isUsed:1; + unsigned int RSAKeyValue_isUsed:1; + unsigned int EVSENominalVoltage_isUsed:1; + unsigned int MagneticVector_isUsed:1; + unsigned int XPath_isUsed:1; + unsigned int Signature_isUsed:1; + unsigned int EVElectricalChargingDeviceStatus_isUsed:1; + unsigned int EVSEProcessing_isUsed:1; + unsigned int FODStatus_isUsed:1; + unsigned int PowerDeliveryRes_isUsed:1; + unsigned int SessionStopRes_isUsed:1; + unsigned int WPT_EVSEChargeParameter_isUsed:1; + unsigned int ResponseCode_isUsed:1; + unsigned int EVTargetEnergyRequest_isUsed:1; + unsigned int FinePositioningSetupReq_isUsed:1; + unsigned int EVSEPresentCurrent_isUsed:1; + unsigned int FinePositioningSetupRes_isUsed:1; + unsigned int ProfileEntry_isUsed:1; + unsigned int MgmtData_isUsed:1; + unsigned int SAProvisioningCertificateChain_isUsed:1; + unsigned int PowerDeliveryReq_isUsed:1; + unsigned int SessionStopReq_isUsed:1; + unsigned int ReceiptRequired_isUsed:1; + unsigned int ChargingProfile_isUsed:1; + unsigned int MaxSupportingPoints_isUsed:1; + unsigned int start_isUsed:1; + unsigned int EVMinimumChargePower_isUsed:1; + unsigned int amount_isUsed:1; + unsigned int PreChargeReq_isUsed:1; + unsigned int OEMProvisioningCert_isUsed:1; + unsigned int PackageIndex_isUsed:1; + unsigned int PreChargeRes_isUsed:1; + unsigned int P_isUsed:1; + unsigned int Q_isUsed:1; + unsigned int X509SubjectName_isUsed:1; + unsigned int G_isUsed:1; + unsigned int J_isUsed:1; + unsigned int ContractSignatureCertChain_isUsed:1; + unsigned int MV_EVSEFinePositioningSetupParameters_isUsed:1; + unsigned int EVSEMinimumDischargeCurrent_isUsed:1; + unsigned int EVMaximumChargeCurrent_isUsed:1; + unsigned int AlignmentOffset_isUsed:1; + unsigned int Y_isUsed:1; + unsigned int RemainingTimeToTargetSOC_isUsed:1; + unsigned int DigestValue_isUsed:1; + unsigned int SensorMeasurements_isUsed:1; + unsigned int SalesTariff_isUsed:1; + unsigned int EVCCID_isUsed:1; + unsigned int EVSEMaximumPower_isUsed:1; + unsigned int TargetOffset_isUsed:1; + unsigned int PowerDemandParameters_isUsed:1; + unsigned int PGPKeyID_isUsed:1; + unsigned int DisconnectChargingDeviceReq_isUsed:1; + unsigned int DisconnectChargingDeviceRes_isUsed:1; + unsigned int DSAKeyValue_isUsed:1; + unsigned int SalesTariffEntry_isUsed:1; + unsigned int CertificateInstallationRes_isUsed:1; + unsigned int CanonicalizationMethod_isUsed:1; + unsigned int Generic_EVFinePositioningParameters_isUsed:1; + unsigned int EVSEMinimumVoltage_isUsed:1; + unsigned int SystemStatusRes_isUsed:1; + unsigned int EVSEOutputPower_isUsed:1; + unsigned int SignedInfo_isUsed:1; + unsigned int EVMinimumChargeCurrent_isUsed:1; + unsigned int costKind_isUsed:1; + unsigned int SystemStatusReq_isUsed:1; + unsigned int CableCheckReq_isUsed:1; + unsigned int NumEPriceLevels_isUsed:1; + unsigned int EVSEVoltageLimitAchieved_isUsed:1; + unsigned int PackageSeparationTime_isUsed:1; + unsigned int CableCheckRes_isUsed:1; + unsigned int EVCheckInStatus_isUsed:1; + unsigned int PMaxDischargeSchedule_isUsed:1; + unsigned int EVMinimumPower_isUsed:1; + unsigned int ChargingPerformance_isUsed:1; + unsigned int AlignmentCheckReq_isUsed:1; + unsigned int EVMechanicalChargingDeviceStatus_isUsed:1; + unsigned int VehicleSpace_isUsed:1; + unsigned int AlignmentCheckRes_isUsed:1; + unsigned int EVMinimumDischargePower_isUsed:1; + unsigned int RemainingTimeToMinimumSOC_isUsed:1; + unsigned int AuthorizationRes_isUsed:1; + unsigned int CertificateInstallationReq_isUsed:1; + unsigned int PaymentDetailsReq_isUsed:1; + unsigned int PaymentDetailsRes_isUsed:1; + unsigned int AuthorizationReq_isUsed:1; + unsigned int EVTargetCurrent_isUsed:1; + unsigned int SessionSetupReq_isUsed:1; + unsigned int SessionSetupRes_isUsed:1; + unsigned int EVSENominalFrequency_isUsed:1; + unsigned int Header_isUsed:1; + unsigned int NumberOfSensors_isUsed:1; + unsigned int EVSETimeStamp_isUsed:1; + unsigned int MeterStatus_isUsed:1; + unsigned int MV_EVSEFinePositioningParameters_isUsed:1; + unsigned int ChargeProgress_isUsed:1; + unsigned int KeyName_isUsed:1; + unsigned int PMaxSchedule_isUsed:1; + unsigned int duration_isUsed:1; + unsigned int RemainingTimeToBulkSOC_isUsed:1; + unsigned int SensorOrientation_isUsed:1; + unsigned int EVSEMaximumChargeCurrent_isUsed:1; + unsigned int LFA_EVSEFinePositioningParameters_isUsed:1; + unsigned int VehicleCheckInRes_isUsed:1; + unsigned int PMaxScheduleEntry_isUsed:1; + unsigned int SAScheduleList_isUsed:1; + unsigned int X509SKI_isUsed:1; + unsigned int PaymentOptionList_isUsed:1; + unsigned int ContractSignatureEncryptedPrivateKey_isUsed:1; + unsigned int VehicleCheckInReq_isUsed:1; + unsigned int Certificate_isUsed:1; + unsigned int CheckOutTime_isUsed:1; + unsigned int CurrentSOC_isUsed:1; + unsigned int ZCoordinate_isUsed:1; + unsigned int MeasurementData_isUsed:1; + unsigned int PairingRes_isUsed:1; + unsigned int EVSEMaximumCurrent_isUsed:1; + unsigned int LFA_EVFinePositioningParameters_isUsed:1; + unsigned int AlignmentCheckParameters_isUsed:1; + unsigned int EffectiveRadiatedPower_isUsed:1; + unsigned int PairingReq_isUsed:1; + unsigned int Value_isUsed:1; + unsigned int byteValue_isUsed:1; + unsigned int CurrentDemandReq_isUsed:1; + unsigned int Generic_EVSEFinePositioningParameters_isUsed:1; + unsigned int CurrentDemandRes_isUsed:1; + unsigned int AC_EVBidirectionalParameter_isUsed:1; + unsigned int Modulus_isUsed:1; + unsigned int SelectedEnergyTransferService_isUsed:1; + unsigned int startValue_isUsed:1; + unsigned int SelectedVASList_isUsed:1; + unsigned int ChargeParameterDiscoveryReq_isUsed:1; + unsigned int ChargeParameterDiscoveryRes_isUsed:1; + unsigned int SigMeterReading_isUsed:1; + unsigned int TargetSOC_isUsed:1; + unsigned int EVSEStatus_isUsed:1; + unsigned int EVSEMinimumChargeCurrent_isUsed:1; + unsigned int EVSEElectricalChargingDeviceStatus_isUsed:1; + unsigned int X509SerialNumber_isUsed:1; + unsigned int PaymentOption_isUsed:1; + unsigned int Transforms_isUsed:1; + unsigned int EVSEPeakCurrentRipple_isUsed:1; + unsigned int ConsumptionCost_isUsed:1; + unsigned int EVSEFinePositioningSetupParameters_isUsed:1; + unsigned int EPriceLevel_isUsed:1; + unsigned int Exponent_isUsed:1; + unsigned int X509IssuerSerial_isUsed:1; + unsigned int SPKIData_isUsed:1; + unsigned int MagneticVectorList_isUsed:1; + unsigned int EVSEFinePositioningParameters_isUsed:1; + unsigned int EVTargetPower_isUsed:1; + unsigned int SensorPackageList_isUsed:1; + unsigned int DepartureTime_isUsed:1; + unsigned int InletHot_isUsed:1; + unsigned int EVPresentActivePower_isUsed:1; + unsigned int X509Data_isUsed:1; + unsigned int YCoordinate_isUsed:1; + unsigned int KeyValue_isUsed:1; + unsigned int DisplayParameters_isUsed:1; + unsigned int EVSEPowerLimitAchieved_isUsed:1; + unsigned int Body_isUsed:1; + unsigned int DC_EVChargeParameter_isUsed:1; + unsigned int Service_isUsed:1; + unsigned int SignatureProperty_isUsed:1; + unsigned int PGPKeyPacket_isUsed:1; + unsigned int Seed_isUsed:1; + unsigned int LFA_EVFinePositioningSetupParameters_isUsed:1; + unsigned int MinimumPMaxRequest_isUsed:1; + unsigned int FinePositioningReq_isUsed:1; + unsigned int EnergyTransferServiceList_isUsed:1; + unsigned int FinePositioningRes_isUsed:1; + unsigned int AC_EVSEBidirectionalParameter_isUsed:1; + unsigned int FreeService_isUsed:1; + unsigned int AC_EVSEChargeParameter_isUsed:1; + unsigned int SensorID_isUsed:1; + unsigned int EVSECurrentRegulationTolerance_isUsed:1; + unsigned int EVSEMechanicalChargingDeviceStatus_isUsed:1; + unsigned int EVEnergyTransferParameter_isUsed:1; + unsigned int SignalPulseDuration_isUsed:1; + unsigned int shortValue_isUsed:1; + unsigned int Manifest_isUsed:1; + unsigned int DC_EVSEChargeParameter_isUsed:1; + unsigned int MeteringReceiptReq_isUsed:1; + unsigned int MeterID_isUsed:1; + unsigned int MeteringReceiptRes_isUsed:1; + unsigned int ServiceDiscoveryReq_isUsed:1; + unsigned int SalesTariffID_isUsed:1; + unsigned int ServiceDiscoveryRes_isUsed:1; + unsigned int X509CRL_isUsed:1; + unsigned int MagneticVectorSetup_isUsed:1; + unsigned int DigestMethod_isUsed:1; + unsigned int SPKISexp_isUsed:1; + unsigned int MeterReadingDischarged_isUsed:1; + unsigned int MeasurementDataList_isUsed:1; + unsigned int SignatureProperties_isUsed:1; + unsigned int SensorPosition_isUsed:1; + unsigned int LFA_EVSEFinePositioningSetupParameters_isUsed:1; + unsigned int eMAID_isUsed:1; + unsigned int SensorPackage_isUsed:1; + unsigned int EVCheckOutStatus_isUsed:1; + unsigned int X509Certificate_isUsed:1; + unsigned int RootCertificateID_isUsed:1; + unsigned int DC_BidirectionalControlReq_isUsed:1; + unsigned int EVSEPresentVoltage_isUsed:1; + unsigned int DC_BidirectionalControlRes_isUsed:1; + unsigned int VASList_isUsed:1; + unsigned int MeterInfo_isUsed:1; + unsigned int EVSETargetReactivePower_isUsed:1; + unsigned int ChargingStatusReq_isUsed:1; + unsigned int GenericParameters_isUsed:1; + unsigned int ChargingStatusRes_isUsed:1; + unsigned int EVMaximumChargePower_isUsed:1; + unsigned int BulkSOC_isUsed:1; + unsigned int NumberOfSignalPackages_isUsed:1; + unsigned int ParameterSetID_isUsed:1; + unsigned int PMax_isUsed:1; + unsigned int EVMaximumEnergyRequest_isUsed:1; + unsigned int EVOperation_isUsed:1; + unsigned int CertificateUpdateRes_isUsed:1; + unsigned int ChargingComplete_isUsed:1; + unsigned int ListOfRootCertificateIDs_isUsed:1; + unsigned int RotationVAtoGA_isUsed:1; + unsigned int EVTargetVoltage_isUsed:1; + unsigned int CertificateUpdateReq_isUsed:1; + unsigned int ConnectChargingDeviceRes_isUsed:1; + unsigned int DHpublickey_isUsed:1; + unsigned int ServiceParameterList_isUsed:1; + unsigned int SignatureValue_isUsed:1; + unsigned int physicalValue_isUsed:1; + unsigned int OperationMode_isUsed:1; + unsigned int EVSECurrentLimitAchieved_isUsed:1; + unsigned int ServiceDetailReq_isUsed:1; + unsigned int ServiceDetailRes_isUsed:1; + unsigned int intValue_isUsed:1; + unsigned int EVMaximumDischargePower_isUsed:1; + unsigned int MinimumSOC_isUsed:1; + unsigned int SelectedPaymentOption_isUsed:1; + unsigned int V2G_Message_isUsed:1; + unsigned int EVSEID_isUsed:1; + unsigned int TMeter_isUsed:1; + unsigned int SensorOrder_isUsed:1; + unsigned int SupportedServiceIDs_isUsed:1; + unsigned int GenChallenge_isUsed:1; + unsigned int EVFinePositioningParameters_isUsed:1; + unsigned int SensorList_isUsed:1; + unsigned int KeyInfo_isUsed:1; + unsigned int ConnectChargingDeviceReq_isUsed:1; + unsigned int AC_EVChargeParameter_isUsed:1; + unsigned int Parameter_isUsed:1; + unsigned int WeldingDetectionRes_isUsed:1; + unsigned int GAID_isUsed:1; + unsigned int SignalFrequency_isUsed:1; + unsigned int EVSETargetPower_isUsed:1; + unsigned int DC_EVBidirectionalParameter_isUsed:1; + unsigned int SignatureMethod_isUsed:1; + unsigned int WeldingDetectionReq_isUsed:1; + unsigned int SelectedService_isUsed:1; + unsigned int EVInputPower_isUsed:1; + unsigned int VehicleCheckOutReq_isUsed:1; + unsigned int PowerDemandReq_isUsed:1; + unsigned int VehicleCheckOutRes_isUsed:1; + unsigned int CurrentRange_isUsed:1; + unsigned int EVPresentReactivePower_isUsed:1; + unsigned int X509IssuerName_isUsed:1; + unsigned int V2GRequest_isUsed:1; + unsigned int Reference_isUsed:1; + unsigned int BodyElement_isUsed:1; + unsigned int MinimumPMaxScheduleEntry_isUsed:1; + unsigned int EVFinePositioningSetupParameters_isUsed:1; + unsigned int EVSENotification_isUsed:1; + unsigned int PaymentServiceSelectionReq_isUsed:1; + unsigned int PaymentServiceSelectionRes_isUsed:1; + unsigned int Transform_isUsed:1; + unsigned int Object_isUsed:1; + unsigned int TargetOffsetY_isUsed:1; + unsigned int PowerDemandRes_isUsed:1; + unsigned int TargetOffsetX_isUsed:1; + + + int _warning_; +}; +#endif /* DEPLOY_ISO2_CODEC_FRAGMENT */ + + +/* Initialization methods for structs */ + +void init_iso2EXIDocument(struct iso2EXIDocument* exiDoc); +#if DEPLOY_ISO2_CODEC_FRAGMENT == SUPPORT_YES +void init_iso2EXIFragment(struct iso2EXIFragment* exiFrag); +#endif /* DEPLOY_ISO2_CODEC_FRAGMENT */ +void init_iso2RetrievalMethodType(struct iso2RetrievalMethodType* iso2RetrievalMethodType); +void init_iso2AuthorizationResType(struct iso2AuthorizationResType* iso2AuthorizationResType); +void init_iso2MV_EVSEFinePositioningSetupParametersType(struct iso2MV_EVSEFinePositioningSetupParametersType* iso2MV_EVSEFinePositioningSetupParametersType); +void init_iso2X509DataType(struct iso2X509DataType* iso2X509DataType); +void init_iso2RSAKeyValueType(struct iso2RSAKeyValueType* iso2RSAKeyValueType); +void init_iso2DC_BidirectionalControlResType(struct iso2DC_BidirectionalControlResType* iso2DC_BidirectionalControlResType); +void init_iso2CostType(struct iso2CostType* iso2CostType); +void init_iso2ChargingStatusResType(struct iso2ChargingStatusResType* iso2ChargingStatusResType); +void init_iso2MeterInfoType(struct iso2MeterInfoType* iso2MeterInfoType); +void init_iso2AC_EVChargeParameterType(struct iso2AC_EVChargeParameterType* iso2AC_EVChargeParameterType); +void init_iso2AC_EVSEBidirectionalParameterType(struct iso2AC_EVSEBidirectionalParameterType* iso2AC_EVSEBidirectionalParameterType); +void init_iso2VehicleCheckOutResType(struct iso2VehicleCheckOutResType* iso2VehicleCheckOutResType); +void init_iso2MagneticVectorListType(struct iso2MagneticVectorListType* iso2MagneticVectorListType); +void init_iso2CableCheckResType(struct iso2CableCheckResType* iso2CableCheckResType); +void init_iso2ServiceDiscoveryReqType(struct iso2ServiceDiscoveryReqType* iso2ServiceDiscoveryReqType); +void init_iso2ServiceType(struct iso2ServiceType* iso2ServiceType); +void init_iso2ServiceParameterListType(struct iso2ServiceParameterListType* iso2ServiceParameterListType); +void init_iso2PMaxScheduleType(struct iso2PMaxScheduleType* iso2PMaxScheduleType); +void init_iso2SignaturePropertiesType(struct iso2SignaturePropertiesType* iso2SignaturePropertiesType); +void init_iso2PMaxScheduleEntryType(struct iso2PMaxScheduleEntryType* iso2PMaxScheduleEntryType); +void init_iso2SignatureType(struct iso2SignatureType* iso2SignatureType); +void init_iso2VehicleCheckInReqType(struct iso2VehicleCheckInReqType* iso2VehicleCheckInReqType); +void init_iso2ConnectChargingDeviceResType(struct iso2ConnectChargingDeviceResType* iso2ConnectChargingDeviceResType); +void init_iso2WeldingDetectionResType(struct iso2WeldingDetectionResType* iso2WeldingDetectionResType); +void init_iso2SessionStopResType(struct iso2SessionStopResType* iso2SessionStopResType); +void init_iso2VehicleCheckInResType(struct iso2VehicleCheckInResType* iso2VehicleCheckInResType); +void init_iso2ServiceListType(struct iso2ServiceListType* iso2ServiceListType); +void init_iso2CertificateUpdateResType(struct iso2CertificateUpdateResType* iso2CertificateUpdateResType); +void init_iso2FinePositioningSetupResType(struct iso2FinePositioningSetupResType* iso2FinePositioningSetupResType); +void init_iso2AC_EVBidirectionalParameterType(struct iso2AC_EVBidirectionalParameterType* iso2AC_EVBidirectionalParameterType); +void init_iso2DC_BidirectionalControlReqType(struct iso2DC_BidirectionalControlReqType* iso2DC_BidirectionalControlReqType); +void init_iso2CertificateUpdateReqType(struct iso2CertificateUpdateReqType* iso2CertificateUpdateReqType); +void init_iso2ConsumptionCostType(struct iso2ConsumptionCostType* iso2ConsumptionCostType); +void init_iso2SAScheduleListType(struct iso2SAScheduleListType* iso2SAScheduleListType); +void init_iso2MagneticVectorSetupType(struct iso2MagneticVectorSetupType* iso2MagneticVectorSetupType); +void init_iso2LFA_EVSEFinePositioningSetupParametersType(struct iso2LFA_EVSEFinePositioningSetupParametersType* iso2LFA_EVSEFinePositioningSetupParametersType); +void init_iso2PaymentOptionListType(struct iso2PaymentOptionListType* iso2PaymentOptionListType); +void init_iso2LFA_EVSEFinePositioningParametersType(struct iso2LFA_EVSEFinePositioningParametersType* iso2LFA_EVSEFinePositioningParametersType); +void init_iso2RelativeTimeIntervalType(struct iso2RelativeTimeIntervalType* iso2RelativeTimeIntervalType); +void init_iso2EVFinePositioningParametersType(struct iso2EVFinePositioningParametersType* iso2EVFinePositioningParametersType); +void init_iso2AlignmentCheckReqType(struct iso2AlignmentCheckReqType* iso2AlignmentCheckReqType); +void init_iso2CertificateInstallationReqType(struct iso2CertificateInstallationReqType* iso2CertificateInstallationReqType); +void init_iso2TransformsType(struct iso2TransformsType* iso2TransformsType); +void init_iso2ObjectType(struct iso2ObjectType* iso2ObjectType); +void init_iso2SensorOrderListType(struct iso2SensorOrderListType* iso2SensorOrderListType); +void init_iso2ChargeParameterDiscoveryReqType(struct iso2ChargeParameterDiscoveryReqType* iso2ChargeParameterDiscoveryReqType); +void init_iso2ParameterType(struct iso2ParameterType* iso2ParameterType); +void init_iso2SessionStopReqType(struct iso2SessionStopReqType* iso2SessionStopReqType); +void init_iso2SensorMeasurementsType(struct iso2SensorMeasurementsType* iso2SensorMeasurementsType); +void init_iso2DC_EVSEChargeParameterType(struct iso2DC_EVSEChargeParameterType* iso2DC_EVSEChargeParameterType); +void init_iso2SensorPackageListType(struct iso2SensorPackageListType* iso2SensorPackageListType); +void init_iso2MeasurementDataListType(struct iso2MeasurementDataListType* iso2MeasurementDataListType); +void init_iso2CertificateChainType(struct iso2CertificateChainType* iso2CertificateChainType); +void init_iso2SignaturePropertyType(struct iso2SignaturePropertyType* iso2SignaturePropertyType); +void init_iso2TransformType(struct iso2TransformType* iso2TransformType); +void init_iso2EMAIDType(struct iso2EMAIDType* iso2EMAIDType); +void init_iso2DSAKeyValueType(struct iso2DSAKeyValueType* iso2DSAKeyValueType); +void init_iso2EntryType(struct iso2EntryType* iso2EntryType); +void init_iso2MessageHeaderType(struct iso2MessageHeaderType* iso2MessageHeaderType); +void init_iso2WPT_EVChargeParameterType(struct iso2WPT_EVChargeParameterType* iso2WPT_EVChargeParameterType); +void init_iso2DisconnectChargingDeviceReqType(struct iso2DisconnectChargingDeviceReqType* iso2DisconnectChargingDeviceReqType); +void init_iso2ChargeLoopReqType(struct iso2ChargeLoopReqType* iso2ChargeLoopReqType); +void init_iso2V2GRequestType(struct iso2V2GRequestType* iso2V2GRequestType); +void init_iso2MeteringReceiptResType(struct iso2MeteringReceiptResType* iso2MeteringReceiptResType); +void init_iso2SessionSetupResType(struct iso2SessionSetupResType* iso2SessionSetupResType); +void init_iso2AC_BidirectionalControlReqType(struct iso2AC_BidirectionalControlReqType* iso2AC_BidirectionalControlReqType); +void init_iso2MV_EVSEFinePositioningParametersType(struct iso2MV_EVSEFinePositioningParametersType* iso2MV_EVSEFinePositioningParametersType); +void init_iso2ReferenceType(struct iso2ReferenceType* iso2ReferenceType); +void init_iso2EVSEEnergyTransferParameterType(struct iso2EVSEEnergyTransferParameterType* iso2EVSEEnergyTransferParameterType); +void init_iso2MeteringReceiptReqType(struct iso2MeteringReceiptReqType* iso2MeteringReceiptReqType); +void init_iso2KeyValueType(struct iso2KeyValueType* iso2KeyValueType); +void init_iso2SensorListType(struct iso2SensorListType* iso2SensorListType); +void init_iso2CurrentDemandReqType(struct iso2CurrentDemandReqType* iso2CurrentDemandReqType); +void init_iso2FinePositioningSetupReqType(struct iso2FinePositioningSetupReqType* iso2FinePositioningSetupReqType); +void init_iso2LFA_EVFinePositioningSetupParametersType(struct iso2LFA_EVFinePositioningSetupParametersType* iso2LFA_EVFinePositioningSetupParametersType); +void init_iso2SAScheduleTupleType(struct iso2SAScheduleTupleType* iso2SAScheduleTupleType); +void init_iso2WPT_EVSEChargeParameterType(struct iso2WPT_EVSEChargeParameterType* iso2WPT_EVSEChargeParameterType); +void init_iso2FinePositioningResType(struct iso2FinePositioningResType* iso2FinePositioningResType); +void init_iso2BodyBaseType(struct iso2BodyBaseType* iso2BodyBaseType); +void init_iso2ServiceDetailResType(struct iso2ServiceDetailResType* iso2ServiceDetailResType); +void init_iso2PowerDeliveryReqType(struct iso2PowerDeliveryReqType* iso2PowerDeliveryReqType); +void init_iso2PairingResType(struct iso2PairingResType* iso2PairingResType); +void init_iso2AuthorizationReqType(struct iso2AuthorizationReqType* iso2AuthorizationReqType); +void init_iso2ParameterSetType(struct iso2ParameterSetType* iso2ParameterSetType); +void init_iso2SPKIDataType(struct iso2SPKIDataType* iso2SPKIDataType); +void init_iso2PaymentDetailsResType(struct iso2PaymentDetailsResType* iso2PaymentDetailsResType); +void init_iso2SignatureMethodType(struct iso2SignatureMethodType* iso2SignatureMethodType); +void init_iso2AC_BidirectionalControlResType(struct iso2AC_BidirectionalControlResType* iso2AC_BidirectionalControlResType); +void init_iso2VehicleCheckOutReqType(struct iso2VehicleCheckOutReqType* iso2VehicleCheckOutReqType); +void init_iso2WeldingDetectionReqType(struct iso2WeldingDetectionReqType* iso2WeldingDetectionReqType); +void init_iso2AlignmentCheckResType(struct iso2AlignmentCheckResType* iso2AlignmentCheckResType); +void init_iso2PowerDemandReqType(struct iso2PowerDemandReqType* iso2PowerDemandReqType); +void init_iso2MinimumPMaxRequestType(struct iso2MinimumPMaxRequestType* iso2MinimumPMaxRequestType); +void init_iso2DisconnectChargingDeviceResType(struct iso2DisconnectChargingDeviceResType* iso2DisconnectChargingDeviceResType); +void init_iso2SessionSetupReqType(struct iso2SessionSetupReqType* iso2SessionSetupReqType); +void init_iso2PaymentDetailsReqType(struct iso2PaymentDetailsReqType* iso2PaymentDetailsReqType); +void init_iso2Generic_EVFinePositioningParametersType(struct iso2Generic_EVFinePositioningParametersType* iso2Generic_EVFinePositioningParametersType); +void init_iso2ConnectChargingDeviceReqType(struct iso2ConnectChargingDeviceReqType* iso2ConnectChargingDeviceReqType); +void init_iso2AC_EVSEChargeParameterType(struct iso2AC_EVSEChargeParameterType* iso2AC_EVSEChargeParameterType); +void init_iso2SalesTariffEntryType(struct iso2SalesTariffEntryType* iso2SalesTariffEntryType); +void init_iso2DC_EVSEBidirectionalParameterType(struct iso2DC_EVSEBidirectionalParameterType* iso2DC_EVSEBidirectionalParameterType); +void init_iso2CanonicalizationMethodType(struct iso2CanonicalizationMethodType* iso2CanonicalizationMethodType); +void init_iso2DisplayParametersType(struct iso2DisplayParametersType* iso2DisplayParametersType); +void init_iso2DC_EVBidirectionalParameterType(struct iso2DC_EVBidirectionalParameterType* iso2DC_EVBidirectionalParameterType); +void init_iso2PaymentServiceSelectionReqType(struct iso2PaymentServiceSelectionReqType* iso2PaymentServiceSelectionReqType); +void init_iso2MagneticVectorType(struct iso2MagneticVectorType* iso2MagneticVectorType); +void init_iso2PhysicalValueType(struct iso2PhysicalValueType* iso2PhysicalValueType); +void init_iso2SystemStatusReqType(struct iso2SystemStatusReqType* iso2SystemStatusReqType); +void init_iso2SystemStatusResType(struct iso2SystemStatusResType* iso2SystemStatusResType); +void init_iso2EVSEFinePositioningSetupParametersType(struct iso2EVSEFinePositioningSetupParametersType* iso2EVSEFinePositioningSetupParametersType); +void init_iso2V2GResponseType(struct iso2V2GResponseType* iso2V2GResponseType); +void init_iso2BodyType(struct iso2BodyType* iso2BodyType); +void init_iso2PreChargeResType(struct iso2PreChargeResType* iso2PreChargeResType); +void init_iso2EVSEFinePositioningParametersType(struct iso2EVSEFinePositioningParametersType* iso2EVSEFinePositioningParametersType); +void init_iso2PaymentServiceSelectionResType(struct iso2PaymentServiceSelectionResType* iso2PaymentServiceSelectionResType); +void init_iso2DigestMethodType(struct iso2DigestMethodType* iso2DigestMethodType); +void init_iso2TargetPositionType(struct iso2TargetPositionType* iso2TargetPositionType); +void init_iso2LFA_EVFinePositioningParametersType(struct iso2LFA_EVFinePositioningParametersType* iso2LFA_EVFinePositioningParametersType); +void init_iso2DC_EVChargeParameterType(struct iso2DC_EVChargeParameterType* iso2DC_EVChargeParameterType); +void init_iso2ServiceDetailReqType(struct iso2ServiceDetailReqType* iso2ServiceDetailReqType); +void init_iso2PreChargeReqType(struct iso2PreChargeReqType* iso2PreChargeReqType); +void init_iso2ManifestType(struct iso2ManifestType* iso2ManifestType); +void init_iso2AnonType_V2G_Message(struct iso2AnonType_V2G_Message* iso2AnonType_V2G_Message); +void init_iso2SelectedServiceListType(struct iso2SelectedServiceListType* iso2SelectedServiceListType); +void init_iso2Generic_EVSEFinePositioningParametersType(struct iso2Generic_EVSEFinePositioningParametersType* iso2Generic_EVSEFinePositioningParametersType); +void init_iso2CartesianCoordinatesType(struct iso2CartesianCoordinatesType* iso2CartesianCoordinatesType); +void init_iso2KeyInfoType(struct iso2KeyInfoType* iso2KeyInfoType); +void init_iso2SubCertificatesType(struct iso2SubCertificatesType* iso2SubCertificatesType); +void init_iso2ListOfRootCertificateIDsType(struct iso2ListOfRootCertificateIDsType* iso2ListOfRootCertificateIDsType); +void init_iso2EVEnergyTransferParameterType(struct iso2EVEnergyTransferParameterType* iso2EVEnergyTransferParameterType); +void init_iso2ContractSignatureEncryptedPrivateKeyType(struct iso2ContractSignatureEncryptedPrivateKeyType* iso2ContractSignatureEncryptedPrivateKeyType); +void init_iso2MagneticVectorSetupListType(struct iso2MagneticVectorSetupListType* iso2MagneticVectorSetupListType); +void init_iso2PairingReqType(struct iso2PairingReqType* iso2PairingReqType); +void init_iso2CurrentDemandResType(struct iso2CurrentDemandResType* iso2CurrentDemandResType); +void init_iso2X509IssuerSerialType(struct iso2X509IssuerSerialType* iso2X509IssuerSerialType); +void init_iso2ChargingStatusReqType(struct iso2ChargingStatusReqType* iso2ChargingStatusReqType); +void init_iso2CertificateInstallationResType(struct iso2CertificateInstallationResType* iso2CertificateInstallationResType); +void init_iso2SensorPackageType(struct iso2SensorPackageType* iso2SensorPackageType); +void init_iso2PGPDataType(struct iso2PGPDataType* iso2PGPDataType); +void init_iso2ServiceDiscoveryResType(struct iso2ServiceDiscoveryResType* iso2ServiceDiscoveryResType); +void init_iso2ServiceIDListType(struct iso2ServiceIDListType* iso2ServiceIDListType); +void init_iso2EVFinePositioningSetupParametersType(struct iso2EVFinePositioningSetupParametersType* iso2EVFinePositioningSetupParametersType); +void init_iso2ChargeParameterDiscoveryResType(struct iso2ChargeParameterDiscoveryResType* iso2ChargeParameterDiscoveryResType); +void init_iso2PowerDemandResType(struct iso2PowerDemandResType* iso2PowerDemandResType); +void init_iso2ChargingProfileType(struct iso2ChargingProfileType* iso2ChargingProfileType); +void init_iso2FinePositioningReqType(struct iso2FinePositioningReqType* iso2FinePositioningReqType); +void init_iso2SalesTariffType(struct iso2SalesTariffType* iso2SalesTariffType); +void init_iso2SensorType(struct iso2SensorType* iso2SensorType); +void init_iso2SignatureValueType(struct iso2SignatureValueType* iso2SignatureValueType); +void init_iso2SignedInfoType(struct iso2SignedInfoType* iso2SignedInfoType); +void init_iso2PowerDeliveryResType(struct iso2PowerDeliveryResType* iso2PowerDeliveryResType); +void init_iso2CableCheckReqType(struct iso2CableCheckReqType* iso2CableCheckReqType); +void init_iso2SelectedServiceType(struct iso2SelectedServiceType* iso2SelectedServiceType); +void init_iso2DiffieHellmanPublickeyType(struct iso2DiffieHellmanPublickeyType* iso2DiffieHellmanPublickeyType); +void init_iso2EVSEStatusType(struct iso2EVSEStatusType* iso2EVSEStatusType); + + +#endif /* DEPLOY_ISO2_CODEC */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/iso2/iso2EXIDatatypesDecoder.c b/csharp/vc2022/src/iso2/iso2EXIDatatypesDecoder.c new file mode 100644 index 0000000..b7bd293 --- /dev/null +++ b/csharp/vc2022/src/iso2/iso2EXIDatatypesDecoder.c @@ -0,0 +1,86541 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + + +#include "iso2EXIDatatypesDecoder.h" + +#include "DecoderChannel.h" +#include "EXIHeaderDecoder.h" + +#include "iso2EXIDatatypes.h" +#include "ErrorCodes.h" + +#ifndef EXI_iso2_DATATYPES_DECODER_C +#define EXI_iso2_DATATYPES_DECODER_C + +#if DEPLOY_ISO2_CODEC == SUPPORT_YES + +/** event-code */ +static uint32_t eventCode; +static int errn; +static uint32_t uint32; + +/* Forward Declarations */ +static int decode_iso2RetrievalMethodType(bitstream_t* stream, struct iso2RetrievalMethodType* iso2RetrievalMethodType); +static int decode_iso2AuthorizationResType(bitstream_t* stream, struct iso2AuthorizationResType* iso2AuthorizationResType); +static int decode_iso2MV_EVSEFinePositioningSetupParametersType(bitstream_t* stream, struct iso2MV_EVSEFinePositioningSetupParametersType* iso2MV_EVSEFinePositioningSetupParametersType); +static int decode_iso2X509DataType(bitstream_t* stream, struct iso2X509DataType* iso2X509DataType); +static int decode_iso2RSAKeyValueType(bitstream_t* stream, struct iso2RSAKeyValueType* iso2RSAKeyValueType); +static int decode_iso2DC_BidirectionalControlResType(bitstream_t* stream, struct iso2DC_BidirectionalControlResType* iso2DC_BidirectionalControlResType); +static int decode_iso2CostType(bitstream_t* stream, struct iso2CostType* iso2CostType); +static int decode_iso2ChargingStatusResType(bitstream_t* stream, struct iso2ChargingStatusResType* iso2ChargingStatusResType); +static int decode_iso2MeterInfoType(bitstream_t* stream, struct iso2MeterInfoType* iso2MeterInfoType); +static int decode_iso2AC_EVChargeParameterType(bitstream_t* stream, struct iso2AC_EVChargeParameterType* iso2AC_EVChargeParameterType); +static int decode_iso2AC_EVSEBidirectionalParameterType(bitstream_t* stream, struct iso2AC_EVSEBidirectionalParameterType* iso2AC_EVSEBidirectionalParameterType); +static int decode_iso2VehicleCheckOutResType(bitstream_t* stream, struct iso2VehicleCheckOutResType* iso2VehicleCheckOutResType); +static int decode_iso2MagneticVectorListType(bitstream_t* stream, struct iso2MagneticVectorListType* iso2MagneticVectorListType); +static int decode_iso2CableCheckResType(bitstream_t* stream, struct iso2CableCheckResType* iso2CableCheckResType); +static int decode_iso2ServiceDiscoveryReqType(bitstream_t* stream, struct iso2ServiceDiscoveryReqType* iso2ServiceDiscoveryReqType); +static int decode_iso2ServiceType(bitstream_t* stream, struct iso2ServiceType* iso2ServiceType); +static int decode_iso2ServiceParameterListType(bitstream_t* stream, struct iso2ServiceParameterListType* iso2ServiceParameterListType); +static int decode_iso2PMaxScheduleType(bitstream_t* stream, struct iso2PMaxScheduleType* iso2PMaxScheduleType); +static int decode_iso2SignaturePropertiesType(bitstream_t* stream, struct iso2SignaturePropertiesType* iso2SignaturePropertiesType); +static int decode_iso2PMaxScheduleEntryType(bitstream_t* stream, struct iso2PMaxScheduleEntryType* iso2PMaxScheduleEntryType); +static int decode_iso2SignatureType(bitstream_t* stream, struct iso2SignatureType* iso2SignatureType); +static int decode_iso2VehicleCheckInReqType(bitstream_t* stream, struct iso2VehicleCheckInReqType* iso2VehicleCheckInReqType); +static int decode_iso2ConnectChargingDeviceResType(bitstream_t* stream, struct iso2ConnectChargingDeviceResType* iso2ConnectChargingDeviceResType); +static int decode_iso2WeldingDetectionResType(bitstream_t* stream, struct iso2WeldingDetectionResType* iso2WeldingDetectionResType); +static int decode_iso2SessionStopResType(bitstream_t* stream, struct iso2SessionStopResType* iso2SessionStopResType); +static int decode_iso2VehicleCheckInResType(bitstream_t* stream, struct iso2VehicleCheckInResType* iso2VehicleCheckInResType); +static int decode_iso2ServiceListType(bitstream_t* stream, struct iso2ServiceListType* iso2ServiceListType); +static int decode_iso2CertificateUpdateResType(bitstream_t* stream, struct iso2CertificateUpdateResType* iso2CertificateUpdateResType); +static int decode_iso2FinePositioningSetupResType(bitstream_t* stream, struct iso2FinePositioningSetupResType* iso2FinePositioningSetupResType); +static int decode_iso2AC_EVBidirectionalParameterType(bitstream_t* stream, struct iso2AC_EVBidirectionalParameterType* iso2AC_EVBidirectionalParameterType); +static int decode_iso2DC_BidirectionalControlReqType(bitstream_t* stream, struct iso2DC_BidirectionalControlReqType* iso2DC_BidirectionalControlReqType); +static int decode_iso2CertificateUpdateReqType(bitstream_t* stream, struct iso2CertificateUpdateReqType* iso2CertificateUpdateReqType); +static int decode_iso2ConsumptionCostType(bitstream_t* stream, struct iso2ConsumptionCostType* iso2ConsumptionCostType); +static int decode_iso2SAScheduleListType(bitstream_t* stream, struct iso2SAScheduleListType* iso2SAScheduleListType); +static int decode_iso2MagneticVectorSetupType(bitstream_t* stream, struct iso2MagneticVectorSetupType* iso2MagneticVectorSetupType); +static int decode_iso2LFA_EVSEFinePositioningSetupParametersType(bitstream_t* stream, struct iso2LFA_EVSEFinePositioningSetupParametersType* iso2LFA_EVSEFinePositioningSetupParametersType); +static int decode_iso2PaymentOptionListType(bitstream_t* stream, struct iso2PaymentOptionListType* iso2PaymentOptionListType); +static int decode_iso2LFA_EVSEFinePositioningParametersType(bitstream_t* stream, struct iso2LFA_EVSEFinePositioningParametersType* iso2LFA_EVSEFinePositioningParametersType); +static int decode_iso2RelativeTimeIntervalType(bitstream_t* stream, struct iso2RelativeTimeIntervalType* iso2RelativeTimeIntervalType); +static int decode_iso2EVFinePositioningParametersType(bitstream_t* stream, struct iso2EVFinePositioningParametersType* iso2EVFinePositioningParametersType); +static int decode_iso2AlignmentCheckReqType(bitstream_t* stream, struct iso2AlignmentCheckReqType* iso2AlignmentCheckReqType); +static int decode_iso2CertificateInstallationReqType(bitstream_t* stream, struct iso2CertificateInstallationReqType* iso2CertificateInstallationReqType); +static int decode_iso2TransformsType(bitstream_t* stream, struct iso2TransformsType* iso2TransformsType); +static int decode_iso2ObjectType(bitstream_t* stream, struct iso2ObjectType* iso2ObjectType); +static int decode_iso2SensorOrderListType(bitstream_t* stream, struct iso2SensorOrderListType* iso2SensorOrderListType); +static int decode_iso2ChargeParameterDiscoveryReqType(bitstream_t* stream, struct iso2ChargeParameterDiscoveryReqType* iso2ChargeParameterDiscoveryReqType); +static int decode_iso2ParameterType(bitstream_t* stream, struct iso2ParameterType* iso2ParameterType); +static int decode_iso2SessionStopReqType(bitstream_t* stream, struct iso2SessionStopReqType* iso2SessionStopReqType); +static int decode_iso2SensorMeasurementsType(bitstream_t* stream, struct iso2SensorMeasurementsType* iso2SensorMeasurementsType); +static int decode_iso2DC_EVSEChargeParameterType(bitstream_t* stream, struct iso2DC_EVSEChargeParameterType* iso2DC_EVSEChargeParameterType); +static int decode_iso2SensorPackageListType(bitstream_t* stream, struct iso2SensorPackageListType* iso2SensorPackageListType); +static int decode_iso2MeasurementDataListType(bitstream_t* stream, struct iso2MeasurementDataListType* iso2MeasurementDataListType); +static int decode_iso2CertificateChainType(bitstream_t* stream, struct iso2CertificateChainType* iso2CertificateChainType); +static int decode_iso2SignaturePropertyType(bitstream_t* stream, struct iso2SignaturePropertyType* iso2SignaturePropertyType); +static int decode_iso2TransformType(bitstream_t* stream, struct iso2TransformType* iso2TransformType); +static int decode_iso2EMAIDType(bitstream_t* stream, struct iso2EMAIDType* iso2EMAIDType); +static int decode_iso2DSAKeyValueType(bitstream_t* stream, struct iso2DSAKeyValueType* iso2DSAKeyValueType); +static int decode_iso2EntryType(bitstream_t* stream, struct iso2EntryType* iso2EntryType); +static int decode_iso2MessageHeaderType(bitstream_t* stream, struct iso2MessageHeaderType* iso2MessageHeaderType); +static int decode_iso2WPT_EVChargeParameterType(bitstream_t* stream, struct iso2WPT_EVChargeParameterType* iso2WPT_EVChargeParameterType); +static int decode_iso2DisconnectChargingDeviceReqType(bitstream_t* stream, struct iso2DisconnectChargingDeviceReqType* iso2DisconnectChargingDeviceReqType); +static int decode_iso2ChargeLoopReqType(bitstream_t* stream, struct iso2ChargeLoopReqType* iso2ChargeLoopReqType); +static int decode_iso2V2GRequestType(bitstream_t* stream, struct iso2V2GRequestType* iso2V2GRequestType); +static int decode_iso2MeteringReceiptResType(bitstream_t* stream, struct iso2MeteringReceiptResType* iso2MeteringReceiptResType); +static int decode_iso2SessionSetupResType(bitstream_t* stream, struct iso2SessionSetupResType* iso2SessionSetupResType); +static int decode_iso2AC_BidirectionalControlReqType(bitstream_t* stream, struct iso2AC_BidirectionalControlReqType* iso2AC_BidirectionalControlReqType); +static int decode_iso2MV_EVSEFinePositioningParametersType(bitstream_t* stream, struct iso2MV_EVSEFinePositioningParametersType* iso2MV_EVSEFinePositioningParametersType); +static int decode_iso2ReferenceType(bitstream_t* stream, struct iso2ReferenceType* iso2ReferenceType); +static int decode_iso2EVSEEnergyTransferParameterType(bitstream_t* stream, struct iso2EVSEEnergyTransferParameterType* iso2EVSEEnergyTransferParameterType); +static int decode_iso2MeteringReceiptReqType(bitstream_t* stream, struct iso2MeteringReceiptReqType* iso2MeteringReceiptReqType); +static int decode_iso2KeyValueType(bitstream_t* stream, struct iso2KeyValueType* iso2KeyValueType); +static int decode_iso2SensorListType(bitstream_t* stream, struct iso2SensorListType* iso2SensorListType); +static int decode_iso2CurrentDemandReqType(bitstream_t* stream, struct iso2CurrentDemandReqType* iso2CurrentDemandReqType); +static int decode_iso2FinePositioningSetupReqType(bitstream_t* stream, struct iso2FinePositioningSetupReqType* iso2FinePositioningSetupReqType); +static int decode_iso2LFA_EVFinePositioningSetupParametersType(bitstream_t* stream, struct iso2LFA_EVFinePositioningSetupParametersType* iso2LFA_EVFinePositioningSetupParametersType); +static int decode_iso2SAScheduleTupleType(bitstream_t* stream, struct iso2SAScheduleTupleType* iso2SAScheduleTupleType); +static int decode_iso2WPT_EVSEChargeParameterType(bitstream_t* stream, struct iso2WPT_EVSEChargeParameterType* iso2WPT_EVSEChargeParameterType); +static int decode_iso2FinePositioningResType(bitstream_t* stream, struct iso2FinePositioningResType* iso2FinePositioningResType); +static int decode_iso2BodyBaseType(bitstream_t* stream, struct iso2BodyBaseType* iso2BodyBaseType); +static int decode_iso2ServiceDetailResType(bitstream_t* stream, struct iso2ServiceDetailResType* iso2ServiceDetailResType); +static int decode_iso2PowerDeliveryReqType(bitstream_t* stream, struct iso2PowerDeliveryReqType* iso2PowerDeliveryReqType); +static int decode_iso2PairingResType(bitstream_t* stream, struct iso2PairingResType* iso2PairingResType); +static int decode_iso2AuthorizationReqType(bitstream_t* stream, struct iso2AuthorizationReqType* iso2AuthorizationReqType); +static int decode_iso2ParameterSetType(bitstream_t* stream, struct iso2ParameterSetType* iso2ParameterSetType); +static int decode_iso2SPKIDataType(bitstream_t* stream, struct iso2SPKIDataType* iso2SPKIDataType); +static int decode_iso2PaymentDetailsResType(bitstream_t* stream, struct iso2PaymentDetailsResType* iso2PaymentDetailsResType); +static int decode_iso2SignatureMethodType(bitstream_t* stream, struct iso2SignatureMethodType* iso2SignatureMethodType); +static int decode_iso2AC_BidirectionalControlResType(bitstream_t* stream, struct iso2AC_BidirectionalControlResType* iso2AC_BidirectionalControlResType); +static int decode_iso2VehicleCheckOutReqType(bitstream_t* stream, struct iso2VehicleCheckOutReqType* iso2VehicleCheckOutReqType); +static int decode_iso2WeldingDetectionReqType(bitstream_t* stream, struct iso2WeldingDetectionReqType* iso2WeldingDetectionReqType); +static int decode_iso2AlignmentCheckResType(bitstream_t* stream, struct iso2AlignmentCheckResType* iso2AlignmentCheckResType); +static int decode_iso2PowerDemandReqType(bitstream_t* stream, struct iso2PowerDemandReqType* iso2PowerDemandReqType); +static int decode_iso2MinimumPMaxRequestType(bitstream_t* stream, struct iso2MinimumPMaxRequestType* iso2MinimumPMaxRequestType); +static int decode_iso2DisconnectChargingDeviceResType(bitstream_t* stream, struct iso2DisconnectChargingDeviceResType* iso2DisconnectChargingDeviceResType); +static int decode_iso2SessionSetupReqType(bitstream_t* stream, struct iso2SessionSetupReqType* iso2SessionSetupReqType); +static int decode_iso2PaymentDetailsReqType(bitstream_t* stream, struct iso2PaymentDetailsReqType* iso2PaymentDetailsReqType); +static int decode_iso2Generic_EVFinePositioningParametersType(bitstream_t* stream, struct iso2Generic_EVFinePositioningParametersType* iso2Generic_EVFinePositioningParametersType); +static int decode_iso2ConnectChargingDeviceReqType(bitstream_t* stream, struct iso2ConnectChargingDeviceReqType* iso2ConnectChargingDeviceReqType); +static int decode_iso2AC_EVSEChargeParameterType(bitstream_t* stream, struct iso2AC_EVSEChargeParameterType* iso2AC_EVSEChargeParameterType); +static int decode_iso2SalesTariffEntryType(bitstream_t* stream, struct iso2SalesTariffEntryType* iso2SalesTariffEntryType); +static int decode_iso2DC_EVSEBidirectionalParameterType(bitstream_t* stream, struct iso2DC_EVSEBidirectionalParameterType* iso2DC_EVSEBidirectionalParameterType); +static int decode_iso2CanonicalizationMethodType(bitstream_t* stream, struct iso2CanonicalizationMethodType* iso2CanonicalizationMethodType); +static int decode_iso2DisplayParametersType(bitstream_t* stream, struct iso2DisplayParametersType* iso2DisplayParametersType); +static int decode_iso2DC_EVBidirectionalParameterType(bitstream_t* stream, struct iso2DC_EVBidirectionalParameterType* iso2DC_EVBidirectionalParameterType); +static int decode_iso2PaymentServiceSelectionReqType(bitstream_t* stream, struct iso2PaymentServiceSelectionReqType* iso2PaymentServiceSelectionReqType); +static int decode_iso2MagneticVectorType(bitstream_t* stream, struct iso2MagneticVectorType* iso2MagneticVectorType); +static int decode_iso2PhysicalValueType(bitstream_t* stream, struct iso2PhysicalValueType* iso2PhysicalValueType); +static int decode_iso2SystemStatusReqType(bitstream_t* stream, struct iso2SystemStatusReqType* iso2SystemStatusReqType); +static int decode_iso2SystemStatusResType(bitstream_t* stream, struct iso2SystemStatusResType* iso2SystemStatusResType); +static int decode_iso2EVSEFinePositioningSetupParametersType(bitstream_t* stream, struct iso2EVSEFinePositioningSetupParametersType* iso2EVSEFinePositioningSetupParametersType); +static int decode_iso2V2GResponseType(bitstream_t* stream, struct iso2V2GResponseType* iso2V2GResponseType); +static int decode_iso2BodyType(bitstream_t* stream, struct iso2BodyType* iso2BodyType); +static int decode_iso2PreChargeResType(bitstream_t* stream, struct iso2PreChargeResType* iso2PreChargeResType); +static int decode_iso2EVSEFinePositioningParametersType(bitstream_t* stream, struct iso2EVSEFinePositioningParametersType* iso2EVSEFinePositioningParametersType); +static int decode_iso2PaymentServiceSelectionResType(bitstream_t* stream, struct iso2PaymentServiceSelectionResType* iso2PaymentServiceSelectionResType); +static int decode_iso2DigestMethodType(bitstream_t* stream, struct iso2DigestMethodType* iso2DigestMethodType); +static int decode_iso2TargetPositionType(bitstream_t* stream, struct iso2TargetPositionType* iso2TargetPositionType); +static int decode_iso2LFA_EVFinePositioningParametersType(bitstream_t* stream, struct iso2LFA_EVFinePositioningParametersType* iso2LFA_EVFinePositioningParametersType); +static int decode_iso2DC_EVChargeParameterType(bitstream_t* stream, struct iso2DC_EVChargeParameterType* iso2DC_EVChargeParameterType); +static int decode_iso2ServiceDetailReqType(bitstream_t* stream, struct iso2ServiceDetailReqType* iso2ServiceDetailReqType); +static int decode_iso2PreChargeReqType(bitstream_t* stream, struct iso2PreChargeReqType* iso2PreChargeReqType); +static int decode_iso2ManifestType(bitstream_t* stream, struct iso2ManifestType* iso2ManifestType); +static int decode_iso2AnonType_V2G_Message(bitstream_t* stream, struct iso2AnonType_V2G_Message* iso2AnonType_V2G_Message); +static int decode_iso2SelectedServiceListType(bitstream_t* stream, struct iso2SelectedServiceListType* iso2SelectedServiceListType); +static int decode_iso2Generic_EVSEFinePositioningParametersType(bitstream_t* stream, struct iso2Generic_EVSEFinePositioningParametersType* iso2Generic_EVSEFinePositioningParametersType); +static int decode_iso2CartesianCoordinatesType(bitstream_t* stream, struct iso2CartesianCoordinatesType* iso2CartesianCoordinatesType); +static int decode_iso2KeyInfoType(bitstream_t* stream, struct iso2KeyInfoType* iso2KeyInfoType); +static int decode_iso2SubCertificatesType(bitstream_t* stream, struct iso2SubCertificatesType* iso2SubCertificatesType); +static int decode_iso2ListOfRootCertificateIDsType(bitstream_t* stream, struct iso2ListOfRootCertificateIDsType* iso2ListOfRootCertificateIDsType); +static int decode_iso2EVEnergyTransferParameterType(bitstream_t* stream, struct iso2EVEnergyTransferParameterType* iso2EVEnergyTransferParameterType); +static int decode_iso2ContractSignatureEncryptedPrivateKeyType(bitstream_t* stream, struct iso2ContractSignatureEncryptedPrivateKeyType* iso2ContractSignatureEncryptedPrivateKeyType); +static int decode_iso2MagneticVectorSetupListType(bitstream_t* stream, struct iso2MagneticVectorSetupListType* iso2MagneticVectorSetupListType); +static int decode_iso2PairingReqType(bitstream_t* stream, struct iso2PairingReqType* iso2PairingReqType); +static int decode_iso2CurrentDemandResType(bitstream_t* stream, struct iso2CurrentDemandResType* iso2CurrentDemandResType); +static int decode_iso2X509IssuerSerialType(bitstream_t* stream, struct iso2X509IssuerSerialType* iso2X509IssuerSerialType); +static int decode_iso2ChargingStatusReqType(bitstream_t* stream, struct iso2ChargingStatusReqType* iso2ChargingStatusReqType); +static int decode_iso2CertificateInstallationResType(bitstream_t* stream, struct iso2CertificateInstallationResType* iso2CertificateInstallationResType); +static int decode_iso2SensorPackageType(bitstream_t* stream, struct iso2SensorPackageType* iso2SensorPackageType); +static int decode_iso2PGPDataType(bitstream_t* stream, struct iso2PGPDataType* iso2PGPDataType); +static int decode_iso2ServiceDiscoveryResType(bitstream_t* stream, struct iso2ServiceDiscoveryResType* iso2ServiceDiscoveryResType); +static int decode_iso2ServiceIDListType(bitstream_t* stream, struct iso2ServiceIDListType* iso2ServiceIDListType); +static int decode_iso2EVFinePositioningSetupParametersType(bitstream_t* stream, struct iso2EVFinePositioningSetupParametersType* iso2EVFinePositioningSetupParametersType); +static int decode_iso2ChargeParameterDiscoveryResType(bitstream_t* stream, struct iso2ChargeParameterDiscoveryResType* iso2ChargeParameterDiscoveryResType); +static int decode_iso2PowerDemandResType(bitstream_t* stream, struct iso2PowerDemandResType* iso2PowerDemandResType); +static int decode_iso2ChargingProfileType(bitstream_t* stream, struct iso2ChargingProfileType* iso2ChargingProfileType); +static int decode_iso2FinePositioningReqType(bitstream_t* stream, struct iso2FinePositioningReqType* iso2FinePositioningReqType); +static int decode_iso2SalesTariffType(bitstream_t* stream, struct iso2SalesTariffType* iso2SalesTariffType); +static int decode_iso2SensorType(bitstream_t* stream, struct iso2SensorType* iso2SensorType); +static int decode_iso2SignatureValueType(bitstream_t* stream, struct iso2SignatureValueType* iso2SignatureValueType); +static int decode_iso2SignedInfoType(bitstream_t* stream, struct iso2SignedInfoType* iso2SignedInfoType); +static int decode_iso2PowerDeliveryResType(bitstream_t* stream, struct iso2PowerDeliveryResType* iso2PowerDeliveryResType); +static int decode_iso2CableCheckReqType(bitstream_t* stream, struct iso2CableCheckReqType* iso2CableCheckReqType); +static int decode_iso2SelectedServiceType(bitstream_t* stream, struct iso2SelectedServiceType* iso2SelectedServiceType); +static int decode_iso2DiffieHellmanPublickeyType(bitstream_t* stream, struct iso2DiffieHellmanPublickeyType* iso2DiffieHellmanPublickeyType); +static int decode_iso2EVSEStatusType(bitstream_t* stream, struct iso2EVSEStatusType* iso2EVSEStatusType); + +/* Deviant data decoding (skip functions) */ + + + /* Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso2RetrievalMethodType(bitstream_t* stream, struct iso2RetrievalMethodType* iso2RetrievalMethodType) { + int grammarID = 0; + int done = 0; + + init_iso2RetrievalMethodType(iso2RetrievalMethodType); + + while(!done) { + switch(grammarID) { + case 0: + /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2RetrievalMethodType->Type.charactersLen); + if (errn == 0) { + if (iso2RetrievalMethodType->Type.charactersLen >= 2) { + iso2RetrievalMethodType->Type.charactersLen = (uint16_t)(iso2RetrievalMethodType->Type.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2RetrievalMethodType->Type.charactersLen, iso2RetrievalMethodType->Type.characters, iso2RetrievalMethodType_Type_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2RetrievalMethodType->Type_isUsed = 1u; + grammarID = 1; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso2RetrievalMethodType->URI.charactersLen); + if (errn == 0) { + if (iso2RetrievalMethodType->URI.charactersLen >= 2) { + iso2RetrievalMethodType->URI.charactersLen = (uint16_t)(iso2RetrievalMethodType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2RetrievalMethodType->URI.charactersLen, iso2RetrievalMethodType->URI.characters, iso2RetrievalMethodType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2RetrievalMethodType->URI_isUsed = 1u; + grammarID = 2; + break; + case 2: + errn = decode_iso2TransformsType(stream, &iso2RetrievalMethodType->Transforms); + iso2RetrievalMethodType->Transforms_isUsed = 1u; + grammarID = 3; + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1: + /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2RetrievalMethodType->URI.charactersLen); + if (errn == 0) { + if (iso2RetrievalMethodType->URI.charactersLen >= 2) { + iso2RetrievalMethodType->URI.charactersLen = (uint16_t)(iso2RetrievalMethodType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2RetrievalMethodType->URI.charactersLen, iso2RetrievalMethodType->URI.characters, iso2RetrievalMethodType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2RetrievalMethodType->URI_isUsed = 1u; + grammarID = 2; + break; + case 1: + errn = decode_iso2TransformsType(stream, &iso2RetrievalMethodType->Transforms); + iso2RetrievalMethodType->Transforms_isUsed = 1u; + grammarID = 3; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2TransformsType(stream, &iso2RetrievalMethodType->Transforms); + iso2RetrievalMethodType->Transforms_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,AuthorizationResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing))', derivedBy='EXTENSION'. */ +static int decode_iso2AuthorizationResType(bitstream_t* stream, struct iso2AuthorizationResType* iso2AuthorizationResType) { + int grammarID = 5; + int done = 0; + + init_iso2AuthorizationResType(iso2AuthorizationResType); + + while(!done) { + switch(grammarID) { + case 5: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2AuthorizationResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 6; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 6: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2AuthorizationResType->EVSEStatus); + iso2AuthorizationResType->EVSEStatus_isUsed = 1u; + grammarID = 7; + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2AuthorizationResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 7: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2AuthorizationResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MV_EVSEFinePositioningSetupParametersType', base type name='EVSEFinePositioningSetupParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":FrequencyChannel{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MagneticVectorSetupList{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso2MV_EVSEFinePositioningSetupParametersType(bitstream_t* stream, struct iso2MV_EVSEFinePositioningSetupParametersType* iso2MV_EVSEFinePositioningSetupParametersType) { + int grammarID = 8; + int done = 0; + + init_iso2MV_EVSEFinePositioningSetupParametersType(iso2MV_EVSEFinePositioningSetupParametersType); + + while(!done) { + switch(grammarID) { + case 8: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FrequencyChannel), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetupList), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &iso2MV_EVSEFinePositioningSetupParametersType->FrequencyChannel); + iso2MV_EVSEFinePositioningSetupParametersType->FrequencyChannel_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FrequencyChannel) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 9; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_iso2MagneticVectorSetupListType(stream, &iso2MV_EVSEFinePositioningSetupParametersType->MagneticVectorSetupList); + iso2MV_EVSEFinePositioningSetupParametersType->MagneticVectorSetupList_isUsed = 1u; + grammarID = 3; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 9: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetupList), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2MagneticVectorSetupListType(stream, &iso2MV_EVSEFinePositioningSetupParametersType->MagneticVectorSetupList); + iso2MV_EVSEFinePositioningSetupParametersType->MagneticVectorSetupList_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_iso2X509DataType(bitstream_t* stream, struct iso2X509DataType* iso2X509DataType) { + int grammarID = 10; + int done = 0; + + init_iso2X509DataType(iso2X509DataType); + + while(!done) { + switch(grammarID) { + case 10: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2X509DataType->X509IssuerSerial.arrayLen < iso2X509DataType_X509IssuerSerial_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2X509DataType->X509IssuerSerial.array[iso2X509DataType->X509IssuerSerial.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 11; + break; + case 1: + if (iso2X509DataType->X509SKI.arrayLen < iso2X509DataType_X509SKI_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2X509DataType->X509SKI.array[iso2X509DataType->X509SKI.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso2X509DataType->X509SKI.array[iso2X509DataType->X509SKI.arrayLen].bytesLen) <= iso2X509DataType_X509SKI_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2X509DataType->X509SKI.array[iso2X509DataType->X509SKI.arrayLen].bytesLen, iso2X509DataType->X509SKI.array[iso2X509DataType->X509SKI.arrayLen].bytes); + } + iso2X509DataType->X509SKI.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 11; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + if (iso2X509DataType->X509SubjectName.arrayLen < iso2X509DataType_X509SubjectName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2X509DataType->X509SubjectName.array[iso2X509DataType->X509SubjectName.arrayLen].charactersLen); + if (errn == 0) { + if (iso2X509DataType->X509SubjectName.array[iso2X509DataType->X509SubjectName.arrayLen].charactersLen >= 2) { + iso2X509DataType->X509SubjectName.array[iso2X509DataType->X509SubjectName.arrayLen].charactersLen = (uint16_t)(iso2X509DataType->X509SubjectName.array[iso2X509DataType->X509SubjectName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2X509DataType->X509SubjectName.array[iso2X509DataType->X509SubjectName.arrayLen].charactersLen, iso2X509DataType->X509SubjectName.array[iso2X509DataType->X509SubjectName.arrayLen].characters, iso2X509DataType_X509SubjectName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2X509DataType->X509SubjectName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 11; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + if (iso2X509DataType->X509Certificate.arrayLen < iso2X509DataType_X509Certificate_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2X509DataType->X509Certificate.array[iso2X509DataType->X509Certificate.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso2X509DataType->X509Certificate.array[iso2X509DataType->X509Certificate.arrayLen].bytesLen) <= iso2X509DataType_X509Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2X509DataType->X509Certificate.array[iso2X509DataType->X509Certificate.arrayLen].bytesLen, iso2X509DataType->X509Certificate.array[iso2X509DataType->X509Certificate.arrayLen].bytes); + } + iso2X509DataType->X509Certificate.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 11; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + if (iso2X509DataType->X509CRL.arrayLen < iso2X509DataType_X509CRL_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2X509DataType->X509CRL.array[iso2X509DataType->X509CRL.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso2X509DataType->X509CRL.array[iso2X509DataType->X509CRL.arrayLen].bytesLen) <= iso2X509DataType_X509CRL_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2X509DataType->X509CRL.array[iso2X509DataType->X509CRL.arrayLen].bytesLen, iso2X509DataType->X509CRL.array[iso2X509DataType->X509CRL.arrayLen].bytes); + } + iso2X509DataType->X509CRL.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 11; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 11; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 11: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2X509DataType->X509IssuerSerial.arrayLen < iso2X509DataType_X509IssuerSerial_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2X509DataType->X509IssuerSerial.array[iso2X509DataType->X509IssuerSerial.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 11; + break; + case 1: + if (iso2X509DataType->X509SKI.arrayLen < iso2X509DataType_X509SKI_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2X509DataType->X509SKI.array[iso2X509DataType->X509SKI.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso2X509DataType->X509SKI.array[iso2X509DataType->X509SKI.arrayLen].bytesLen) <= iso2X509DataType_X509SKI_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2X509DataType->X509SKI.array[iso2X509DataType->X509SKI.arrayLen].bytesLen, iso2X509DataType->X509SKI.array[iso2X509DataType->X509SKI.arrayLen].bytes); + } + iso2X509DataType->X509SKI.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 11; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + if (iso2X509DataType->X509SubjectName.arrayLen < iso2X509DataType_X509SubjectName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2X509DataType->X509SubjectName.array[iso2X509DataType->X509SubjectName.arrayLen].charactersLen); + if (errn == 0) { + if (iso2X509DataType->X509SubjectName.array[iso2X509DataType->X509SubjectName.arrayLen].charactersLen >= 2) { + iso2X509DataType->X509SubjectName.array[iso2X509DataType->X509SubjectName.arrayLen].charactersLen = (uint16_t)(iso2X509DataType->X509SubjectName.array[iso2X509DataType->X509SubjectName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2X509DataType->X509SubjectName.array[iso2X509DataType->X509SubjectName.arrayLen].charactersLen, iso2X509DataType->X509SubjectName.array[iso2X509DataType->X509SubjectName.arrayLen].characters, iso2X509DataType_X509SubjectName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2X509DataType->X509SubjectName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 11; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + if (iso2X509DataType->X509Certificate.arrayLen < iso2X509DataType_X509Certificate_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2X509DataType->X509Certificate.array[iso2X509DataType->X509Certificate.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso2X509DataType->X509Certificate.array[iso2X509DataType->X509Certificate.arrayLen].bytesLen) <= iso2X509DataType_X509Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2X509DataType->X509Certificate.array[iso2X509DataType->X509Certificate.arrayLen].bytesLen, iso2X509DataType->X509Certificate.array[iso2X509DataType->X509Certificate.arrayLen].bytes); + } + iso2X509DataType->X509Certificate.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 11; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + if (iso2X509DataType->X509CRL.arrayLen < iso2X509DataType_X509CRL_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2X509DataType->X509CRL.array[iso2X509DataType->X509CRL.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso2X509DataType->X509CRL.array[iso2X509DataType->X509CRL.arrayLen].bytesLen) <= iso2X509DataType_X509CRL_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2X509DataType->X509CRL.array[iso2X509DataType->X509CRL.arrayLen].bytesLen, iso2X509DataType->X509CRL.array[iso2X509DataType->X509CRL.arrayLen].bytes); + } + iso2X509DataType->X509CRL.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 11; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 11; + break; + case 6: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */ +static int decode_iso2RSAKeyValueType(bitstream_t* stream, struct iso2RSAKeyValueType* iso2RSAKeyValueType) { + int grammarID = 12; + int done = 0; + + init_iso2RSAKeyValueType(iso2RSAKeyValueType); + + while(!done) { + switch(grammarID) { + case 12: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2RSAKeyValueType->Modulus.bytesLen); + if (errn == 0) { + errn = (iso2RSAKeyValueType->Modulus.bytesLen) <= iso2RSAKeyValueType_Modulus_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2RSAKeyValueType->Modulus.bytesLen, iso2RSAKeyValueType->Modulus.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 13; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 13: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2RSAKeyValueType->Exponent.bytesLen); + if (errn == 0) { + errn = (iso2RSAKeyValueType->Exponent.bytesLen) <= iso2RSAKeyValueType_Exponent_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2RSAKeyValueType->Exponent.bytesLen, iso2RSAKeyValueType->Exponent.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,DC_BidirectionalControlResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2016:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSEMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumDischargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumChargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumDischargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumVoltage{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMinimumVoltage{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2DC_BidirectionalControlResType(bitstream_t* stream, struct iso2DC_BidirectionalControlResType* iso2DC_BidirectionalControlResType) { + int grammarID = 14; + int done = 0; + + init_iso2DC_BidirectionalControlResType(iso2DC_BidirectionalControlResType); + + while(!done) { + switch(grammarID) { + case 14: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2DC_BidirectionalControlResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 15; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 15: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2DC_BidirectionalControlResType->EVSEStatus); + iso2DC_BidirectionalControlResType->EVSEStatus_isUsed = 1u; + grammarID = 16; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEPresentCurrent); + grammarID = 17; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 16: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEPresentCurrent); + grammarID = 17; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 17: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEPresentVoltage); + grammarID = 18; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 18: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPowerLimitAchieved)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DC_BidirectionalControlResType->EVSEPowerLimitAchieved); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPowerLimitAchieved) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 19; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 19: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECurrentLimitAchieved)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DC_BidirectionalControlResType->EVSECurrentLimitAchieved); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECurrentLimitAchieved) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 20; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 20: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEVoltageLimitAchieved)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DC_BidirectionalControlResType->EVSEVoltageLimitAchieved); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEVoltageLimitAchieved) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 21; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 21: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumChargePower); + iso2DC_BidirectionalControlResType->EVSEMaximumChargePower_isUsed = 1u; + grammarID = 22; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumDischargePower); + iso2DC_BidirectionalControlResType->EVSEMaximumDischargePower_isUsed = 1u; + grammarID = 23; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumChargeCurrent); + iso2DC_BidirectionalControlResType->EVSEMaximumChargeCurrent_isUsed = 1u; + grammarID = 24; + break; + case 3: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumDischargeCurrent); + iso2DC_BidirectionalControlResType->EVSEMaximumDischargeCurrent_isUsed = 1u; + grammarID = 25; + break; + case 4: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumVoltage); + iso2DC_BidirectionalControlResType->EVSEMaximumVoltage_isUsed = 1u; + grammarID = 26; + break; + case 5: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMinimumVoltage); + iso2DC_BidirectionalControlResType->EVSEMinimumVoltage_isUsed = 1u; + grammarID = 27; + break; + case 6: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DC_BidirectionalControlResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso2DC_BidirectionalControlResType->EVSEID.charactersLen >= 2) { + iso2DC_BidirectionalControlResType->EVSEID.charactersLen = (uint16_t)(iso2DC_BidirectionalControlResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2DC_BidirectionalControlResType->EVSEID.charactersLen, iso2DC_BidirectionalControlResType->EVSEID.characters, iso2DC_BidirectionalControlResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 28; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 22: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumDischargePower); + iso2DC_BidirectionalControlResType->EVSEMaximumDischargePower_isUsed = 1u; + grammarID = 23; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumChargeCurrent); + iso2DC_BidirectionalControlResType->EVSEMaximumChargeCurrent_isUsed = 1u; + grammarID = 24; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumDischargeCurrent); + iso2DC_BidirectionalControlResType->EVSEMaximumDischargeCurrent_isUsed = 1u; + grammarID = 25; + break; + case 3: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumVoltage); + iso2DC_BidirectionalControlResType->EVSEMaximumVoltage_isUsed = 1u; + grammarID = 26; + break; + case 4: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMinimumVoltage); + iso2DC_BidirectionalControlResType->EVSEMinimumVoltage_isUsed = 1u; + grammarID = 27; + break; + case 5: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DC_BidirectionalControlResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso2DC_BidirectionalControlResType->EVSEID.charactersLen >= 2) { + iso2DC_BidirectionalControlResType->EVSEID.charactersLen = (uint16_t)(iso2DC_BidirectionalControlResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2DC_BidirectionalControlResType->EVSEID.charactersLen, iso2DC_BidirectionalControlResType->EVSEID.characters, iso2DC_BidirectionalControlResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 28; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 23: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumChargeCurrent); + iso2DC_BidirectionalControlResType->EVSEMaximumChargeCurrent_isUsed = 1u; + grammarID = 24; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumDischargeCurrent); + iso2DC_BidirectionalControlResType->EVSEMaximumDischargeCurrent_isUsed = 1u; + grammarID = 25; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumVoltage); + iso2DC_BidirectionalControlResType->EVSEMaximumVoltage_isUsed = 1u; + grammarID = 26; + break; + case 3: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMinimumVoltage); + iso2DC_BidirectionalControlResType->EVSEMinimumVoltage_isUsed = 1u; + grammarID = 27; + break; + case 4: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DC_BidirectionalControlResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso2DC_BidirectionalControlResType->EVSEID.charactersLen >= 2) { + iso2DC_BidirectionalControlResType->EVSEID.charactersLen = (uint16_t)(iso2DC_BidirectionalControlResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2DC_BidirectionalControlResType->EVSEID.charactersLen, iso2DC_BidirectionalControlResType->EVSEID.characters, iso2DC_BidirectionalControlResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 28; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 24: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumDischargeCurrent); + iso2DC_BidirectionalControlResType->EVSEMaximumDischargeCurrent_isUsed = 1u; + grammarID = 25; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumVoltage); + iso2DC_BidirectionalControlResType->EVSEMaximumVoltage_isUsed = 1u; + grammarID = 26; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMinimumVoltage); + iso2DC_BidirectionalControlResType->EVSEMinimumVoltage_isUsed = 1u; + grammarID = 27; + break; + case 3: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DC_BidirectionalControlResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso2DC_BidirectionalControlResType->EVSEID.charactersLen >= 2) { + iso2DC_BidirectionalControlResType->EVSEID.charactersLen = (uint16_t)(iso2DC_BidirectionalControlResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2DC_BidirectionalControlResType->EVSEID.charactersLen, iso2DC_BidirectionalControlResType->EVSEID.characters, iso2DC_BidirectionalControlResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 28; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 25: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumVoltage); + iso2DC_BidirectionalControlResType->EVSEMaximumVoltage_isUsed = 1u; + grammarID = 26; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMinimumVoltage); + iso2DC_BidirectionalControlResType->EVSEMinimumVoltage_isUsed = 1u; + grammarID = 27; + break; + case 2: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DC_BidirectionalControlResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso2DC_BidirectionalControlResType->EVSEID.charactersLen >= 2) { + iso2DC_BidirectionalControlResType->EVSEID.charactersLen = (uint16_t)(iso2DC_BidirectionalControlResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2DC_BidirectionalControlResType->EVSEID.charactersLen, iso2DC_BidirectionalControlResType->EVSEID.characters, iso2DC_BidirectionalControlResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 28; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 26: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMinimumVoltage); + iso2DC_BidirectionalControlResType->EVSEMinimumVoltage_isUsed = 1u; + grammarID = 27; + break; + case 1: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DC_BidirectionalControlResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso2DC_BidirectionalControlResType->EVSEID.charactersLen >= 2) { + iso2DC_BidirectionalControlResType->EVSEID.charactersLen = (uint16_t)(iso2DC_BidirectionalControlResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2DC_BidirectionalControlResType->EVSEID.charactersLen, iso2DC_BidirectionalControlResType->EVSEID.characters, iso2DC_BidirectionalControlResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 28; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 27: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DC_BidirectionalControlResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso2DC_BidirectionalControlResType->EVSEID.charactersLen >= 2) { + iso2DC_BidirectionalControlResType->EVSEID.charactersLen = (uint16_t)(iso2DC_BidirectionalControlResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2DC_BidirectionalControlResType->EVSEID.charactersLen, iso2DC_BidirectionalControlResType->EVSEID.characters, iso2DC_BidirectionalControlResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 28; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 28: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2DC_BidirectionalControlResType->SAScheduleTupleID = (uint8_t)(uint32 + 1); + iso2DC_BidirectionalControlResType->SAScheduleTupleID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 29; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_iso2MeterInfoType(stream, &iso2DC_BidirectionalControlResType->MeterInfo); + iso2DC_BidirectionalControlResType->MeterInfo_isUsed = 1u; + grammarID = 30; + break; + case 2: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DC_BidirectionalControlResType->ReceiptRequired); + iso2DC_BidirectionalControlResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 29: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2MeterInfoType(stream, &iso2DC_BidirectionalControlResType->MeterInfo); + iso2DC_BidirectionalControlResType->MeterInfo_isUsed = 1u; + grammarID = 30; + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DC_BidirectionalControlResType->ReceiptRequired); + iso2DC_BidirectionalControlResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 30: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DC_BidirectionalControlResType->ReceiptRequired); + iso2DC_BidirectionalControlResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,CostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":costKind,"urn:iso:15118:2:2016:MsgDataTypes":amount)', derivedBy='RESTRICTION'. */ +static int decode_iso2CostType(bitstream_t* stream, struct iso2CostType* iso2CostType) { + int grammarID = 31; + int done = 0; + + init_iso2CostType(iso2CostType); + + while(!done) { + switch(grammarID) { + case 31: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}costKind)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2CostType->costKind = (iso2costKindType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}costKind) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 32; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 32: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}amount)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2CostType->amount); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ChargingStatusResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1},"urn:iso:15118:2:2016:MsgBody":EVSETargetPower{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2ChargingStatusResType(bitstream_t* stream, struct iso2ChargingStatusResType* iso2ChargingStatusResType) { + int grammarID = 33; + int done = 0; + + init_iso2ChargingStatusResType(iso2ChargingStatusResType); + + while(!done) { + switch(grammarID) { + case 33: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2ChargingStatusResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 34; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 34: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2ChargingStatusResType->EVSEStatus); + iso2ChargingStatusResType->EVSEStatus_isUsed = 1u; + grammarID = 35; + break; + case 1: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ChargingStatusResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso2ChargingStatusResType->EVSEID.charactersLen >= 2) { + iso2ChargingStatusResType->EVSEID.charactersLen = (uint16_t)(iso2ChargingStatusResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ChargingStatusResType->EVSEID.charactersLen, iso2ChargingStatusResType->EVSEID.characters, iso2ChargingStatusResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 36; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 35: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ChargingStatusResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso2ChargingStatusResType->EVSEID.charactersLen >= 2) { + iso2ChargingStatusResType->EVSEID.charactersLen = (uint16_t)(iso2ChargingStatusResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ChargingStatusResType->EVSEID.charactersLen, iso2ChargingStatusResType->EVSEID.characters, iso2ChargingStatusResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 36; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 36: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetPower), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2ChargingStatusResType->SAScheduleTupleID = (uint8_t)(uint32 + 1); + iso2ChargingStatusResType->SAScheduleTupleID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 37; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_iso2MeterInfoType(stream, &iso2ChargingStatusResType->MeterInfo); + iso2ChargingStatusResType->MeterInfo_isUsed = 1u; + grammarID = 38; + break; + case 2: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2ChargingStatusResType->ReceiptRequired); + iso2ChargingStatusResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 39; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusResType->EVSETargetPower); + iso2ChargingStatusResType->EVSETargetPower_isUsed = 1u; + grammarID = 3; + break; + case 4: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 37: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetPower), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2MeterInfoType(stream, &iso2ChargingStatusResType->MeterInfo); + iso2ChargingStatusResType->MeterInfo_isUsed = 1u; + grammarID = 38; + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2ChargingStatusResType->ReceiptRequired); + iso2ChargingStatusResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 39; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusResType->EVSETargetPower); + iso2ChargingStatusResType->EVSETargetPower_isUsed = 1u; + grammarID = 3; + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 38: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetPower), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2ChargingStatusResType->ReceiptRequired); + iso2ChargingStatusResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 39; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusResType->EVSETargetPower); + iso2ChargingStatusResType->EVSETargetPower_isUsed = 1u; + grammarID = 3; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 39: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetPower), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusResType->EVSETargetPower); + iso2ChargingStatusResType->EVSETargetPower_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MeterID,"urn:iso:15118:2:2016:MsgDataTypes":MeterReadingCharged{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MeterReadingDischarged{0-1},"urn:iso:15118:2:2016:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso2MeterInfoType(bitstream_t* stream, struct iso2MeterInfoType* iso2MeterInfoType) { + int grammarID = 40; + int done = 0; + + init_iso2MeterInfoType(iso2MeterInfoType); + + while(!done) { + switch(grammarID) { + case 40: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeterInfoType->MeterID.charactersLen); + if (errn == 0) { + if (iso2MeterInfoType->MeterID.charactersLen >= 2) { + iso2MeterInfoType->MeterID.charactersLen = (uint16_t)(iso2MeterInfoType->MeterID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2MeterInfoType->MeterID.charactersLen, iso2MeterInfoType->MeterID.characters, iso2MeterInfoType_MeterID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 41; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 41: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterReadingCharged), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterReadingDischarged), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger64(stream, &iso2MeterInfoType->MeterReadingCharged); + iso2MeterInfoType->MeterReadingCharged_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterReadingCharged) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 42; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger64(stream, &iso2MeterInfoType->MeterReadingDischarged); + iso2MeterInfoType->MeterReadingDischarged_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterReadingDischarged) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 43; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeterInfoType->SigMeterReading.bytesLen); + if (errn == 0) { + errn = (iso2MeterInfoType->SigMeterReading.bytesLen) <= iso2MeterInfoType_SigMeterReading_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2MeterInfoType->SigMeterReading.bytesLen, iso2MeterInfoType->SigMeterReading.bytes); + } + iso2MeterInfoType->SigMeterReading_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SigMeterReading) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 44; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &iso2MeterInfoType->MeterStatus); + iso2MeterInfoType->MeterStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 45; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &iso2MeterInfoType->TMeter); + iso2MeterInfoType->TMeter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 42: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterReadingDischarged), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger64(stream, &iso2MeterInfoType->MeterReadingDischarged); + iso2MeterInfoType->MeterReadingDischarged_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterReadingDischarged) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 43; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeterInfoType->SigMeterReading.bytesLen); + if (errn == 0) { + errn = (iso2MeterInfoType->SigMeterReading.bytesLen) <= iso2MeterInfoType_SigMeterReading_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2MeterInfoType->SigMeterReading.bytesLen, iso2MeterInfoType->SigMeterReading.bytes); + } + iso2MeterInfoType->SigMeterReading_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SigMeterReading) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 44; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &iso2MeterInfoType->MeterStatus); + iso2MeterInfoType->MeterStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 45; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &iso2MeterInfoType->TMeter); + iso2MeterInfoType->TMeter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 43: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeterInfoType->SigMeterReading.bytesLen); + if (errn == 0) { + errn = (iso2MeterInfoType->SigMeterReading.bytesLen) <= iso2MeterInfoType_SigMeterReading_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2MeterInfoType->SigMeterReading.bytesLen, iso2MeterInfoType->SigMeterReading.bytes); + } + iso2MeterInfoType->SigMeterReading_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SigMeterReading) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 44; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &iso2MeterInfoType->MeterStatus); + iso2MeterInfoType->MeterStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 45; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &iso2MeterInfoType->TMeter); + iso2MeterInfoType->TMeter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 44: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &iso2MeterInfoType->MeterStatus); + iso2MeterInfoType->MeterStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 45; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &iso2MeterInfoType->TMeter); + iso2MeterInfoType->TMeter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 45: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &iso2MeterInfoType->TMeter); + iso2MeterInfoType->TMeter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,AC_EVChargeParameterType', base type name='EVEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage))', derivedBy='EXTENSION'. */ +static int decode_iso2AC_EVChargeParameterType(bitstream_t* stream, struct iso2AC_EVChargeParameterType* iso2AC_EVChargeParameterType) { + int grammarID = 46; + int done = 0; + + init_iso2AC_EVChargeParameterType(iso2AC_EVChargeParameterType); + + while(!done) { + switch(grammarID) { + case 46: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &iso2AC_EVChargeParameterType->DepartureTime); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 47; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 47: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargePower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMaximumChargePower); + grammarID = 48; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 48: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMaximumChargeCurrent); + grammarID = 49; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 49: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMinimumChargeCurrent); + grammarID = 50; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 50: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVTargetEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVTargetEnergyRequest); + iso2AC_EVChargeParameterType->EVTargetEnergyRequest_isUsed = 1u; + grammarID = 51; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMaximumEnergyRequest); + iso2AC_EVChargeParameterType->EVMaximumEnergyRequest_isUsed = 1u; + grammarID = 52; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMinimumEnergyRequest); + iso2AC_EVChargeParameterType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 53; + break; + case 3: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMaximumVoltage); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 51: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMaximumEnergyRequest); + iso2AC_EVChargeParameterType->EVMaximumEnergyRequest_isUsed = 1u; + grammarID = 52; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMinimumEnergyRequest); + iso2AC_EVChargeParameterType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 53; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMaximumVoltage); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 52: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMinimumEnergyRequest); + iso2AC_EVChargeParameterType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 53; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMaximumVoltage); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 53: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMaximumVoltage); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,AC_EVSEBidirectionalParameterType', base type name='AC_EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalFrequency),("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalFrequency))', derivedBy='EXTENSION'. */ +static int decode_iso2AC_EVSEBidirectionalParameterType(bitstream_t* stream, struct iso2AC_EVSEBidirectionalParameterType* iso2AC_EVSEBidirectionalParameterType) { + int grammarID = 54; + int done = 0; + + init_iso2AC_EVSEBidirectionalParameterType(iso2AC_EVSEBidirectionalParameterType); + + while(!done) { + switch(grammarID) { + case 54: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVSEBidirectionalParameterType->EVSEMaximumChargeCurrent); + grammarID = 55; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 55: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENominalVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVSEBidirectionalParameterType->EVSENominalVoltage); + grammarID = 56; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 56: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENominalFrequency)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVSEBidirectionalParameterType->EVSENominalFrequency); + grammarID = 57; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 57: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumDischargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVSEBidirectionalParameterType->EVSEMaximumDischargeCurrent); + grammarID = 58; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 58: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENominalFrequency)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVSEBidirectionalParameterType->EVSENominalFrequency); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,VehicleCheckOutResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSECheckOutStatus))', derivedBy='EXTENSION'. */ +static int decode_iso2VehicleCheckOutResType(bitstream_t* stream, struct iso2VehicleCheckOutResType* iso2VehicleCheckOutResType) { + int grammarID = 59; + int done = 0; + + init_iso2VehicleCheckOutResType(iso2VehicleCheckOutResType); + + while(!done) { + switch(grammarID) { + case 59: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2VehicleCheckOutResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 60; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 60: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECheckOutStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2VehicleCheckOutResType->EVSEStatus); + iso2VehicleCheckOutResType->EVSEStatus_isUsed = 1u; + grammarID = 61; + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2VehicleCheckOutResType->EVSECheckOutStatus = (iso2EVCheckOutStatusType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECheckOutStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 61: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECheckOutStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2VehicleCheckOutResType->EVSECheckOutStatus = (iso2EVCheckOutStatusType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECheckOutStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MagneticVectorListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MagneticVector{1-255})', derivedBy='RESTRICTION'. */ +static int decode_iso2MagneticVectorListType(bitstream_t* stream, struct iso2MagneticVectorListType* iso2MagneticVectorListType) { + int grammarID = 62; + int done = 0; + + init_iso2MagneticVectorListType(iso2MagneticVectorListType); + + while(!done) { + switch(grammarID) { + case 62: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 63; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 63: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 64; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 64: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 65; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 65: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 66; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 66: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 67; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 67: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 68; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 68: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 69; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 69: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 70: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 71; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 71: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 72; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 72: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 73; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 73: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 74; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 74: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 75; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 75: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 76; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 76: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 77; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 77: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 78; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 78: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 79; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 79: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 80; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 80: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 81; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 81: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 82; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 82: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 83; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 83: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 84; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 84: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 85; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 85: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 86; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 86: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 87; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 87: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 88; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 88: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 89; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 89: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 90; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 90: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 91; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 91: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 92; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 92: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 93; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 93: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 94; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 94: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 95; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 95: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 96; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 96: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 97; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 97: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 98; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 98: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 99; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 99: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 100; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 100: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 101; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 101: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 102; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 102: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 103; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 103: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 104; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 104: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 105; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 105: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 106; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 106: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 107; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 107: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 108; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 108: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 109; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 109: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 110; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 110: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 111; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 111: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 112; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 112: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 113; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 113: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 114; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 114: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 115; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 115: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 116; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 116: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 117; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 117: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 118; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 118: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 119; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 119: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 120; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 120: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 121; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 121: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 122; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 122: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 123; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 123: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 124; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 124: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 125; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 125: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 126; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 126: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 127; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 127: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 128; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 128: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 129; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 129: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 130; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 130: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 131; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 131: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 132; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 132: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 133; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 133: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 134; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 134: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 135; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 135: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 136; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 136: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 137; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 137: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 138; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 138: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 139; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 139: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 140; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 140: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 141; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 141: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 142; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 142: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 143; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 143: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 144; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 144: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 145; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 145: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 146; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 146: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 147; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 147: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 148; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 148: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 149; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 149: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 150; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 150: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 151; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 151: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 152; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 152: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 153; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 153: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 154; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 154: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 155; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 155: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 156; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 156: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 157; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 157: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 158; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 158: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 159; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 159: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 160; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 160: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 161; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 161: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 162; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 162: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 163; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 163: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 164; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 164: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 165; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 165: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 166; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 166: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 167; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 167: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 168; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 168: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 169; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 169: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 170; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 170: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 171; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 171: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 172; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 172: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 173; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 173: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 174; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 174: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 175; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 175: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 176; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 176: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 177; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 177: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 178; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 178: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 179; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 179: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 180; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 180: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 181; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 181: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 182; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 182: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 183; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 183: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 184; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 184: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 185; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 185: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 186; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 186: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 187; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 187: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 188; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 188: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 189; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 189: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 190; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 190: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 191; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 191: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 192; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 192: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 193; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 193: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 194; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 194: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 195; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 195: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 196; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 196: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 197; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 197: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 198; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 198: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 199; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 199: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 200; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 200: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 201; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 201: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 202; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 202: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 203; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 203: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 204; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 204: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 205; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 205: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 206; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 206: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 207; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 207: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 208; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 208: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 209; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 209: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 210; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 210: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 211; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 211: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 212; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 212: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 213; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 213: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 214; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 214: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 215; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 215: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 216; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 216: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 217; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 217: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 218; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 218: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 219; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 219: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 220; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 220: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 221; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 221: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 222; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 222: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 223; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 223: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 224; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 224: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 225; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 225: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 226; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 226: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 227; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 227: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 228; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 228: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 229; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 229: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 230; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 230: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 231; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 231: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 232; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 232: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 233; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 233: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 234; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 234: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 235; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 235: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 236; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 236: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 237; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 237: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 238; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 238: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 239; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 239: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 240; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 240: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 241; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 241: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 242; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 242: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 243; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 243: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 244; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 244: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 245; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 245: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 246; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 246: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 247; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 247: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 248; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 248: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 249; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 249: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 250; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 250: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 251; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 251: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 252; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 252: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 253; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 253: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 254; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 254: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 255; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 255: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 256; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 256: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 257; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 257: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 258; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 258: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 259; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 259: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 260; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 260: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 261; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 261: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 262; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 262: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 263; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 263: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 264; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 264: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 265; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 265: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 266; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 266: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 267; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 267: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 268; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 268: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 269; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 269: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 270; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 270: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 271; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 271: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 272; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 272: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 273; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 273: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 274; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 274: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 275; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 275: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 276; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 276: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 277; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 277: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 278; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 278: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 279; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 279: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 280; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 280: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 281; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 281: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 282; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 282: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 283; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 283: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 284; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 284: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 285; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 285: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 286; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 286: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 287; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 287: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 288; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 288: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 289; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 289: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 290; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 290: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 291; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 291: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 292; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 292: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 293; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 293: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 294; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 294: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 295; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 295: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 296; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 296: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 297; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 297: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 298; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 298: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 299; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 299: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 300; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 300: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 301; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 301: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 302; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 302: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 303; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 303: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 304; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 304: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 305; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 305: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 306; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 306: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 307; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 307: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 308; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 308: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 309; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 309: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 310; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 310: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 311; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 311: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 312; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 312: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 313; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 313: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 314; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 314: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 315; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 315: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 316; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 316: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorListType->MagneticVector.arrayLen < iso2MagneticVectorListType_MagneticVector_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array[iso2MagneticVectorListType->MagneticVector.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CableCheckResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing))', derivedBy='EXTENSION'. */ +static int decode_iso2CableCheckResType(bitstream_t* stream, struct iso2CableCheckResType* iso2CableCheckResType) { + int grammarID = 5; + int done = 0; + + init_iso2CableCheckResType(iso2CableCheckResType); + + while(!done) { + switch(grammarID) { + case 5: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2CableCheckResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 6; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 6: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2CableCheckResType->EVSEStatus); + iso2CableCheckResType->EVSEStatus_isUsed = 1u; + grammarID = 7; + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2CableCheckResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 7: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2CableCheckResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ServiceDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":SupportedServiceIDs{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso2ServiceDiscoveryReqType(bitstream_t* stream, struct iso2ServiceDiscoveryReqType* iso2ServiceDiscoveryReqType) { + int grammarID = 317; + int done = 0; + + init_iso2ServiceDiscoveryReqType(iso2ServiceDiscoveryReqType); + + while(!done) { + switch(grammarID) { + case 317: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SupportedServiceIDs), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2ServiceIDListType(stream, &iso2ServiceDiscoveryReqType->SupportedServiceIDs); + iso2ServiceDiscoveryReqType->SupportedServiceIDs_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ServiceID,"urn:iso:15118:2:2016:MsgDataTypes":FreeService)', derivedBy='RESTRICTION'. */ +static int decode_iso2ServiceType(bitstream_t* stream, struct iso2ServiceType* iso2ServiceType) { + int grammarID = 318; + int done = 0; + + init_iso2ServiceType(iso2ServiceType); + + while(!done) { + switch(grammarID) { + case 318: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ServiceType->ServiceID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 319; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 319: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FreeService)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2ServiceType->FreeService); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FreeService) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ServiceParameterListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ParameterSet{1-255})', derivedBy='RESTRICTION'. */ +static int decode_iso2ServiceParameterListType(bitstream_t* stream, struct iso2ServiceParameterListType* iso2ServiceParameterListType) { + int grammarID = 320; + int done = 0; + + init_iso2ServiceParameterListType(iso2ServiceParameterListType); + + while(!done) { + switch(grammarID) { + case 320: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 321; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 321: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 322; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 322: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 323; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 323: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 324; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 324: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 325; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 325: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 326; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 326: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 327; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 327: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 328; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 328: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 329; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 329: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 330; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 330: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 331; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 331: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 332; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 332: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 333; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 333: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 334; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 334: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 335; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 335: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 336; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 336: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 337; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 337: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 338; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 338: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 339; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 339: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 340; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 340: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 341; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 341: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 342; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 342: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 343; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 343: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 344; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 344: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 345; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 345: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 346; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 346: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 347; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 347: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 348; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 348: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 349; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 349: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 350; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 350: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 351; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 351: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 352; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 352: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 353; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 353: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 354; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 354: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 355; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 355: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 356; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 356: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 357; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 357: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 358; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 358: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 359; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 359: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 360; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 360: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 361; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 361: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 362; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 362: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 363; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 363: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 364; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 364: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 365; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 365: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 366; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 366: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 367; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 367: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 368; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 368: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 369; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 369: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 370; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 370: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 371; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 371: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 372; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 372: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 373; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 373: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 374; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 374: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 375; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 375: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 376; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 376: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 377; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 377: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 378; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 378: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 379; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 379: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 380; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 380: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 381; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 381: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 382; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 382: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 383; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 383: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 384; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 384: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 385; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 385: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 386; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 386: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 387; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 387: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 388; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 388: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 389; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 389: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 390; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 390: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 391; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 391: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 392; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 392: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 393; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 393: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 394; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 394: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 395; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 395: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 396; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 396: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 397; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 397: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 398; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 398: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 399; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 399: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 400; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 400: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 401; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 401: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 402; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 402: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 403; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 403: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 404; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 404: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 405; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 405: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 406; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 406: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 407; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 407: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 408; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 408: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 409; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 409: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 410; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 410: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 411; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 411: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 412; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 412: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 413; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 413: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 414; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 414: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 415; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 415: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 416; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 416: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 417; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 417: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 418; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 418: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 419; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 419: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 420; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 420: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 421; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 421: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 422; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 422: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 423; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 423: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 424; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 424: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 425; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 425: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 426; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 426: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 427; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 427: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 428; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 428: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 429; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 429: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 430; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 430: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 431; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 431: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 432; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 432: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 433; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 433: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 434; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 434: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 435; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 435: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 436; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 436: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 437; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 437: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 438; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 438: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 439; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 439: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 440; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 440: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 441; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 441: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 442; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 442: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 443; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 443: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 444; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 444: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 445; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 445: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 446; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 446: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 447; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 447: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 448; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 448: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 449; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 449: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 450; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 450: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 451; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 451: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 452; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 452: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 453; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 453: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 454; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 454: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 455; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 455: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 456; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 456: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 457; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 457: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 458; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 458: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 459; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 459: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 460; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 460: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 461; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 461: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 462; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 462: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 463; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 463: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 464; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 464: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 465; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 465: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 466; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 466: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 467; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 467: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 468; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 468: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 469; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 469: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 470; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 470: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 471; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 471: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 472; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 472: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 473; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 473: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 474; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 474: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 475; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 475: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 476; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 476: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 477; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 477: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 478; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 478: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 479; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 479: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 480; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 480: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 481; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 481: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 482; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 482: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 483; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 483: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 484; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 484: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 485; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 485: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 486; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 486: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 487; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 487: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 488; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 488: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 489; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 489: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 490; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 490: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 491; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 491: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 492; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 492: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 493; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 493: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 494; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 494: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 495; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 495: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 496; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 496: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 497; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 497: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 498; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 498: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 499; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 499: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 500; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 500: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 501; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 501: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 502; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 502: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 503; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 503: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 504; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 504: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 505; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 505: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 506; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 506: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 507; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 507: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 508; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 508: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 509; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 509: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 510; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 510: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 511; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 511: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 512; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 512: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 513; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 513: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 514; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 514: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 515; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 515: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 516; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 516: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 517; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 517: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 518; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 518: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 519; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 519: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 520; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 520: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 521; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 521: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 522; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 522: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 523; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 523: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 524; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 524: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 525; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 525: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 526; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 526: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 527; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 527: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 528; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 528: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 529; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 529: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 530; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 530: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 531; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 531: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 532; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 532: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 533; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 533: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 534; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 534: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 535; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 535: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 536; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 536: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 537; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 537: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 538; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 538: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 539; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 539: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 540; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 540: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 541; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 541: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 542; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 542: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 543; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 543: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 544; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 544: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 545; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 545: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 546; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 546: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 547; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 547: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 548; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 548: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 549; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 549: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 550; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 550: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 551; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 551: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 552; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 552: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 553; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 553: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 554; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 554: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 555; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 555: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 556; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 556: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 557; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 557: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 558; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 558: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 559; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 559: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 560; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 560: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 561; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 561: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 562; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 562: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 563; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 563: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 564; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 564: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 565; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 565: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 566; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 566: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 567; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 567: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 568; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 568: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 569; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 569: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 570; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 570: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 571; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 571: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 572; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 572: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 573; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 573: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 574; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 574: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceParameterListType->ParameterSet.arrayLen < iso2ServiceParameterListType_ParameterSet_ARRAY_SIZE) { + errn = decode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array[iso2ServiceParameterListType->ParameterSet.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PMaxScheduleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":PMaxScheduleEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso2PMaxScheduleType(bitstream_t* stream, struct iso2PMaxScheduleType* iso2PMaxScheduleType) { + int grammarID = 575; + int done = 0; + + init_iso2PMaxScheduleType(iso2PMaxScheduleType); + + while(!done) { + switch(grammarID) { + case 575: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxScheduleEntry)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2PMaxScheduleType->PMaxScheduleEntry.arrayLen < iso2PMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE) { + errn = decode_iso2PMaxScheduleEntryType(stream, &iso2PMaxScheduleType->PMaxScheduleEntry.array[iso2PMaxScheduleType->PMaxScheduleEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 576; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 576: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2PMaxScheduleType->PMaxScheduleEntry.arrayLen < iso2PMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE) { + errn = decode_iso2PMaxScheduleEntryType(stream, &iso2PMaxScheduleType->PMaxScheduleEntry.array[iso2PMaxScheduleType->PMaxScheduleEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 576; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertiesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignatureProperty{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso2SignaturePropertiesType(bitstream_t* stream, struct iso2SignaturePropertiesType* iso2SignaturePropertiesType) { + int grammarID = 577; + int done = 0; + + init_iso2SignaturePropertiesType(iso2SignaturePropertiesType); + + while(!done) { + switch(grammarID) { + case 577: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2SignaturePropertiesType->Id.charactersLen); + if (errn == 0) { + if (iso2SignaturePropertiesType->Id.charactersLen >= 2) { + iso2SignaturePropertiesType->Id.charactersLen = (uint16_t)(iso2SignaturePropertiesType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2SignaturePropertiesType->Id.charactersLen, iso2SignaturePropertiesType->Id.characters, iso2SignaturePropertiesType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2SignaturePropertiesType->Id_isUsed = 1u; + grammarID = 578; + break; + case 1: + if (iso2SignaturePropertiesType->SignatureProperty.arrayLen < iso2SignaturePropertiesType_SignatureProperty_ARRAY_SIZE) { + errn = decode_iso2SignaturePropertyType(stream, &iso2SignaturePropertiesType->SignatureProperty.array[iso2SignaturePropertiesType->SignatureProperty.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 579; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 578: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SignaturePropertiesType->SignatureProperty.arrayLen < iso2SignaturePropertiesType_SignatureProperty_ARRAY_SIZE) { + errn = decode_iso2SignaturePropertyType(stream, &iso2SignaturePropertiesType->SignatureProperty.array[iso2SignaturePropertiesType->SignatureProperty.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 579; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 579: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SignaturePropertiesType->SignatureProperty.arrayLen < iso2SignaturePropertiesType_SignatureProperty_ARRAY_SIZE) { + errn = decode_iso2SignaturePropertyType(stream, &iso2SignaturePropertiesType->SignatureProperty.array[iso2SignaturePropertiesType->SignatureProperty.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 579; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":RelativeTimeInterval),("urn:iso:15118:2:2016:MsgDataTypes":PMax{1-3}))', derivedBy='EXTENSION'. */ +static int decode_iso2PMaxScheduleEntryType(bitstream_t* stream, struct iso2PMaxScheduleEntryType* iso2PMaxScheduleEntryType) { + int grammarID = 580; + int done = 0; + + init_iso2PMaxScheduleEntryType(iso2PMaxScheduleEntryType); + + while(!done) { + switch(grammarID) { + case 580: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RelativeTimeInterval)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2RelativeTimeIntervalType(stream, &iso2PMaxScheduleEntryType->RelativeTimeInterval); + grammarID = 581; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 581: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMax)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2PMaxScheduleEntryType->PMax.arrayLen < iso2PMaxScheduleEntryType_PMax_ARRAY_SIZE) { + errn = decode_iso2PhysicalValueType(stream, &iso2PMaxScheduleEntryType->PMax.array[iso2PMaxScheduleEntryType->PMax.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 582; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 582: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMax), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2PMaxScheduleEntryType->PMax.arrayLen < iso2PMaxScheduleEntryType_PMax_ARRAY_SIZE) { + errn = decode_iso2PhysicalValueType(stream, &iso2PMaxScheduleEntryType->PMax.array[iso2PMaxScheduleEntryType->PMax.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 583; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 583: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMax), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2PMaxScheduleEntryType->PMax.arrayLen < iso2PMaxScheduleEntryType_PMax_ARRAY_SIZE) { + errn = decode_iso2PhysicalValueType(stream, &iso2PMaxScheduleEntryType->PMax.array[iso2PMaxScheduleEntryType->PMax.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso2SignatureType(bitstream_t* stream, struct iso2SignatureType* iso2SignatureType) { + int grammarID = 584; + int done = 0; + + init_iso2SignatureType(iso2SignatureType); + + while(!done) { + switch(grammarID) { + case 584: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2SignatureType->Id.charactersLen); + if (errn == 0) { + if (iso2SignatureType->Id.charactersLen >= 2) { + iso2SignatureType->Id.charactersLen = (uint16_t)(iso2SignatureType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2SignatureType->Id.charactersLen, iso2SignatureType->Id.characters, iso2SignatureType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2SignatureType->Id_isUsed = 1u; + grammarID = 585; + break; + case 1: + errn = decode_iso2SignedInfoType(stream, &iso2SignatureType->SignedInfo); + grammarID = 586; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 585: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2SignedInfoType(stream, &iso2SignatureType->SignedInfo); + grammarID = 586; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 586: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2SignatureValueType(stream, &iso2SignatureType->SignatureValue); + grammarID = 587; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 587: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2KeyInfoType(stream, &iso2SignatureType->KeyInfo); + iso2SignatureType->KeyInfo_isUsed = 1u; + grammarID = 588; + break; + case 1: + if (iso2SignatureType->Object.arrayLen < iso2SignatureType_Object_ARRAY_SIZE) { + errn = decode_iso2ObjectType(stream, &iso2SignatureType->Object.array[iso2SignatureType->Object.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 588; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 588: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SignatureType->Object.arrayLen < iso2SignatureType_Object_ARRAY_SIZE) { + errn = decode_iso2ObjectType(stream, &iso2SignatureType->Object.array[iso2SignatureType->Object.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 588; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,VehicleCheckInReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVCheckInStatus,"urn:iso:15118:2:2016:MsgBody":ParkingMethod{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso2VehicleCheckInReqType(bitstream_t* stream, struct iso2VehicleCheckInReqType* iso2VehicleCheckInReqType) { + int grammarID = 589; + int done = 0; + + init_iso2VehicleCheckInReqType(iso2VehicleCheckInReqType); + + while(!done) { + switch(grammarID) { + case 589: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCheckInStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2VehicleCheckInReqType->EVCheckInStatus = (iso2EVCheckInStatusType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCheckInStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 590; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 590: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ParkingMethod), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2VehicleCheckInReqType->ParkingMethod = (iso2parkingMethodType) uint32; + iso2VehicleCheckInReqType->ParkingMethod_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ParkingMethod) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ConnectChargingDeviceResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":EVSEElectricalChargingDeviceStatus,"urn:iso:15118:2:2016:MsgBody":EVSEMechanicalChargingDeviceStatus))', derivedBy='EXTENSION'. */ +static int decode_iso2ConnectChargingDeviceResType(bitstream_t* stream, struct iso2ConnectChargingDeviceResType* iso2ConnectChargingDeviceResType) { + int grammarID = 591; + int done = 0; + + init_iso2ConnectChargingDeviceResType(iso2ConnectChargingDeviceResType); + + while(!done) { + switch(grammarID) { + case 591: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2ConnectChargingDeviceResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 592; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 592: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2ConnectChargingDeviceResType->EVSEStatus); + iso2ConnectChargingDeviceResType->EVSEStatus_isUsed = 1u; + grammarID = 593; + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2ConnectChargingDeviceResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 594; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 593: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2ConnectChargingDeviceResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 594; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 594: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEElectricalChargingDeviceStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso2ConnectChargingDeviceResType->EVSEElectricalChargingDeviceStatus = (iso2electricalChargingDeviceStatusType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEElectricalChargingDeviceStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 595; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 595: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMechanicalChargingDeviceStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2ConnectChargingDeviceResType->EVSEMechanicalChargingDeviceStatus = (iso2mechanicalChargingDeviceStatusType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMechanicalChargingDeviceStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,WeldingDetectionResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage))', derivedBy='EXTENSION'. */ +static int decode_iso2WeldingDetectionResType(bitstream_t* stream, struct iso2WeldingDetectionResType* iso2WeldingDetectionResType) { + int grammarID = 596; + int done = 0; + + init_iso2WeldingDetectionResType(iso2WeldingDetectionResType); + + while(!done) { + switch(grammarID) { + case 596: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2WeldingDetectionResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 597; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 597: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2WeldingDetectionResType->EVSEStatus); + iso2WeldingDetectionResType->EVSEStatus_isUsed = 1u; + grammarID = 598; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2WeldingDetectionResType->EVSEPresentVoltage); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 598: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2WeldingDetectionResType->EVSEPresentVoltage); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,SessionStopResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso2SessionStopResType(bitstream_t* stream, struct iso2SessionStopResType* iso2SessionStopResType) { + int grammarID = 599; + int done = 0; + + init_iso2SessionStopResType(iso2SessionStopResType); + + while(!done) { + switch(grammarID) { + case 599: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2SessionStopResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 600; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 600: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2SessionStopResType->EVSEStatus); + iso2SessionStopResType->EVSEStatus_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,VehicleCheckInResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":VehicleSpace,"urn:iso:15118:2:2016:MsgBody":TargetOffset{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2VehicleCheckInResType(bitstream_t* stream, struct iso2VehicleCheckInResType* iso2VehicleCheckInResType) { + int grammarID = 601; + int done = 0; + + init_iso2VehicleCheckInResType(iso2VehicleCheckInResType); + + while(!done) { + switch(grammarID) { + case 601: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2VehicleCheckInResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 602; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 602: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleSpace)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2VehicleCheckInResType->EVSEStatus); + iso2VehicleCheckInResType->EVSEStatus_isUsed = 1u; + grammarID = 603; + break; + case 1: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2VehicleCheckInResType->VehicleSpace); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleSpace) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 604; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 603: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleSpace)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2VehicleCheckInResType->VehicleSpace); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleSpace) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 604; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 604: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}TargetOffset), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2TargetPositionType(stream, &iso2VehicleCheckInResType->TargetOffset); + iso2VehicleCheckInResType->TargetOffset_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Service{1-8})', derivedBy='RESTRICTION'. */ +static int decode_iso2ServiceListType(bitstream_t* stream, struct iso2ServiceListType* iso2ServiceListType) { + int grammarID = 605; + int done = 0; + + init_iso2ServiceListType(iso2ServiceListType); + + while(!done) { + switch(grammarID) { + case 605: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceListType->Service.arrayLen < iso2ServiceListType_Service_ARRAY_SIZE) { + errn = decode_iso2ServiceType(stream, &iso2ServiceListType->Service.array[iso2ServiceListType->Service.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 606; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 606: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceListType->Service.arrayLen < iso2ServiceListType_Service_ARRAY_SIZE) { + errn = decode_iso2ServiceType(stream, &iso2ServiceListType->Service.array[iso2ServiceListType->Service.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 607; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 607: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceListType->Service.arrayLen < iso2ServiceListType_Service_ARRAY_SIZE) { + errn = decode_iso2ServiceType(stream, &iso2ServiceListType->Service.array[iso2ServiceListType->Service.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 608; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 608: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceListType->Service.arrayLen < iso2ServiceListType_Service_ARRAY_SIZE) { + errn = decode_iso2ServiceType(stream, &iso2ServiceListType->Service.array[iso2ServiceListType->Service.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 609; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 609: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceListType->Service.arrayLen < iso2ServiceListType_Service_ARRAY_SIZE) { + errn = decode_iso2ServiceType(stream, &iso2ServiceListType->Service.array[iso2ServiceListType->Service.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 610; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 610: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceListType->Service.arrayLen < iso2ServiceListType_Service_ARRAY_SIZE) { + errn = decode_iso2ServiceType(stream, &iso2ServiceListType->Service.array[iso2ServiceListType->Service.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 611; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 611: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceListType->Service.arrayLen < iso2ServiceListType_Service_ARRAY_SIZE) { + errn = decode_iso2ServiceType(stream, &iso2ServiceListType->Service.array[iso2ServiceListType->Service.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 612; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 612: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceListType->Service.arrayLen < iso2ServiceListType_Service_ARRAY_SIZE) { + errn = decode_iso2ServiceType(stream, &iso2ServiceListType->Service.array[iso2ServiceListType->Service.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CertificateUpdateResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2016:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2016:MsgBody":DHpublickey,"urn:iso:15118:2:2016:MsgBody":eMAID,"urn:iso:15118:2:2016:MsgBody":RetryCounter{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2CertificateUpdateResType(bitstream_t* stream, struct iso2CertificateUpdateResType* iso2CertificateUpdateResType) { + int grammarID = 613; + int done = 0; + + init_iso2CertificateUpdateResType(iso2CertificateUpdateResType); + + while(!done) { + switch(grammarID) { + case 613: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2CertificateUpdateResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 614; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 614: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAProvisioningCertificateChain)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2CertificateUpdateResType->EVSEStatus); + iso2CertificateUpdateResType->EVSEStatus_isUsed = 1u; + grammarID = 615; + break; + case 1: + errn = decode_iso2CertificateChainType(stream, &iso2CertificateUpdateResType->SAProvisioningCertificateChain); + grammarID = 616; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 615: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAProvisioningCertificateChain)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2CertificateChainType(stream, &iso2CertificateUpdateResType->SAProvisioningCertificateChain); + grammarID = 616; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 616: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureCertChain)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2CertificateChainType(stream, &iso2CertificateUpdateResType->ContractSignatureCertChain); + grammarID = 617; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 617: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureEncryptedPrivateKey)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2ContractSignatureEncryptedPrivateKeyType(stream, &iso2CertificateUpdateResType->ContractSignatureEncryptedPrivateKey); + grammarID = 618; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 618: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DHpublickey)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2DiffieHellmanPublickeyType(stream, &iso2CertificateUpdateResType->DHpublickey); + grammarID = 619; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 619: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}eMAID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EMAIDType(stream, &iso2CertificateUpdateResType->eMAID); + grammarID = 620; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 620: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}RetryCounter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &iso2CertificateUpdateResType->RetryCounter); + iso2CertificateUpdateResType->RetryCounter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}RetryCounter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,FinePositioningSetupResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgDataTypes":EVSEFinePositioningSetupParameters{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2FinePositioningSetupResType(bitstream_t* stream, struct iso2FinePositioningSetupResType* iso2FinePositioningSetupResType) { + int grammarID = 621; + int done = 0; + + init_iso2FinePositioningSetupResType(iso2FinePositioningSetupResType); + + while(!done) { + switch(grammarID) { + case 621: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2FinePositioningSetupResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 622; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 622: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningSetupParameters), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2FinePositioningSetupResType->EVSEStatus); + iso2FinePositioningSetupResType->EVSEStatus_isUsed = 1u; + grammarID = 623; + break; + case 1: + errn = decode_iso2EVSEFinePositioningSetupParametersType(stream, &iso2FinePositioningSetupResType->EVSEFinePositioningSetupParameters); + iso2FinePositioningSetupResType->EVSEFinePositioningSetupParameters_isUsed = 1u; + grammarID = 3; + break; + case 2: + errn = decode_iso2LFA_EVSEFinePositioningSetupParametersType(stream, &iso2FinePositioningSetupResType->LFA_EVSEFinePositioningSetupParameters); + iso2FinePositioningSetupResType->LFA_EVSEFinePositioningSetupParameters_isUsed = 1u; + grammarID = 3; + break; + case 3: + errn = decode_iso2MV_EVSEFinePositioningSetupParametersType(stream, &iso2FinePositioningSetupResType->MV_EVSEFinePositioningSetupParameters); + iso2FinePositioningSetupResType->MV_EVSEFinePositioningSetupParameters_isUsed = 1u; + grammarID = 3; + break; + case 4: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 623: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningSetupParameters), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEFinePositioningSetupParametersType(stream, &iso2FinePositioningSetupResType->EVSEFinePositioningSetupParameters); + iso2FinePositioningSetupResType->EVSEFinePositioningSetupParameters_isUsed = 1u; + grammarID = 3; + break; + case 1: + errn = decode_iso2LFA_EVSEFinePositioningSetupParametersType(stream, &iso2FinePositioningSetupResType->LFA_EVSEFinePositioningSetupParameters); + iso2FinePositioningSetupResType->LFA_EVSEFinePositioningSetupParameters_isUsed = 1u; + grammarID = 3; + break; + case 2: + errn = decode_iso2MV_EVSEFinePositioningSetupParametersType(stream, &iso2FinePositioningSetupResType->MV_EVSEFinePositioningSetupParameters); + iso2FinePositioningSetupResType->MV_EVSEFinePositioningSetupParameters_isUsed = 1u; + grammarID = 3; + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,AC_EVBidirectionalParameterType', base type name='AC_EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage)),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumDischargeCurrent))', derivedBy='EXTENSION'. */ +static int decode_iso2AC_EVBidirectionalParameterType(bitstream_t* stream, struct iso2AC_EVBidirectionalParameterType* iso2AC_EVBidirectionalParameterType) { + int grammarID = 624; + int done = 0; + + init_iso2AC_EVBidirectionalParameterType(iso2AC_EVBidirectionalParameterType); + + while(!done) { + switch(grammarID) { + case 624: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &iso2AC_EVBidirectionalParameterType->DepartureTime); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 625; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 625: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargePower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumChargePower); + grammarID = 626; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 626: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumChargeCurrent); + grammarID = 627; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 627: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMinimumChargeCurrent); + grammarID = 628; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 628: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVTargetEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVTargetEnergyRequest); + iso2AC_EVBidirectionalParameterType->EVTargetEnergyRequest_isUsed = 1u; + grammarID = 629; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumEnergyRequest); + iso2AC_EVBidirectionalParameterType->EVMaximumEnergyRequest_isUsed = 1u; + grammarID = 630; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMinimumEnergyRequest); + iso2AC_EVBidirectionalParameterType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 631; + break; + case 3: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumVoltage); + grammarID = 632; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 629: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumEnergyRequest); + iso2AC_EVBidirectionalParameterType->EVMaximumEnergyRequest_isUsed = 1u; + grammarID = 630; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMinimumEnergyRequest); + iso2AC_EVBidirectionalParameterType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 631; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumVoltage); + grammarID = 632; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 630: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMinimumEnergyRequest); + iso2AC_EVBidirectionalParameterType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 631; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumVoltage); + grammarID = 632; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 631: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumVoltage); + grammarID = 632; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 632: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumDischargePower); + grammarID = 633; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 633: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumDischargeCurrent); + grammarID = 634; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 634: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMinimumDischargeCurrent); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,DC_BidirectionalControlReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2016:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2016:MsgBody":EVMaximumVoltage,"urn:iso:15118:2:2016:MsgBody":EVMinimumVoltage,"urn:iso:15118:2:2016:MsgBody":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgBody":EVMaximumDischargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumDischargePower{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2DC_BidirectionalControlReqType(bitstream_t* stream, struct iso2DC_BidirectionalControlReqType* iso2DC_BidirectionalControlReqType) { + int grammarID = 635; + int done = 0; + + init_iso2DC_BidirectionalControlReqType(iso2DC_BidirectionalControlReqType); + + while(!done) { + switch(grammarID) { + case 635: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetEnergyRequest)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVTargetEnergyRequest); + grammarID = 636; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 636: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMaximumEnergyRequest); + iso2DC_BidirectionalControlReqType->EVMaximumEnergyRequest_isUsed = 1u; + grammarID = 637; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMinimumEnergyRequest); + iso2DC_BidirectionalControlReqType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 638; + break; + case 2: + errn = decode_iso2DisplayParametersType(stream, &iso2DC_BidirectionalControlReqType->DisplayParameters); + iso2DC_BidirectionalControlReqType->DisplayParameters_isUsed = 1u; + grammarID = 639; + break; + case 3: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVTargetCurrent); + grammarID = 640; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 637: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMinimumEnergyRequest); + iso2DC_BidirectionalControlReqType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 638; + break; + case 1: + errn = decode_iso2DisplayParametersType(stream, &iso2DC_BidirectionalControlReqType->DisplayParameters); + iso2DC_BidirectionalControlReqType->DisplayParameters_isUsed = 1u; + grammarID = 639; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVTargetCurrent); + grammarID = 640; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 638: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2DisplayParametersType(stream, &iso2DC_BidirectionalControlReqType->DisplayParameters); + iso2DC_BidirectionalControlReqType->DisplayParameters_isUsed = 1u; + grammarID = 639; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVTargetCurrent); + grammarID = 640; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 639: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVTargetCurrent); + grammarID = 640; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 640: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVTargetVoltage); + grammarID = 641; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 641: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMaximumVoltage); + grammarID = 642; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 642: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMinimumVoltage); + grammarID = 643; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 643: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMaximumChargeCurrent); + grammarID = 644; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 644: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargePower), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMaximumDischargeCurrent); + iso2DC_BidirectionalControlReqType->EVMaximumDischargeCurrent_isUsed = 1u; + grammarID = 645; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMaximumChargePower); + iso2DC_BidirectionalControlReqType->EVMaximumChargePower_isUsed = 1u; + grammarID = 646; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMaximumDischargePower); + iso2DC_BidirectionalControlReqType->EVMaximumDischargePower_isUsed = 1u; + grammarID = 3; + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 645: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargePower), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMaximumChargePower); + iso2DC_BidirectionalControlReqType->EVMaximumChargePower_isUsed = 1u; + grammarID = 646; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMaximumDischargePower); + iso2DC_BidirectionalControlReqType->EVMaximumDischargePower_isUsed = 1u; + grammarID = 3; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 646: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargePower), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMaximumDischargePower); + iso2DC_BidirectionalControlReqType->EVMaximumDischargePower_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CertificateUpdateReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2016:MsgBody":eMAID,"urn:iso:15118:2:2016:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */ +static int decode_iso2CertificateUpdateReqType(bitstream_t* stream, struct iso2CertificateUpdateReqType* iso2CertificateUpdateReqType) { + int grammarID = 647; + int done = 0; + + init_iso2CertificateUpdateReqType(iso2CertificateUpdateReqType); + + while(!done) { + switch(grammarID) { + case 647: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgBody}Id)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2CertificateUpdateReqType->Id.charactersLen); + if (errn == 0) { + if (iso2CertificateUpdateReqType->Id.charactersLen >= 2) { + iso2CertificateUpdateReqType->Id.charactersLen = (uint16_t)(iso2CertificateUpdateReqType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2CertificateUpdateReqType->Id.charactersLen, iso2CertificateUpdateReqType->Id.characters, iso2CertificateUpdateReqType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 648; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 648: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureCertChain)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2CertificateChainType(stream, &iso2CertificateUpdateReqType->ContractSignatureCertChain); + grammarID = 649; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 649: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}eMAID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2CertificateUpdateReqType->eMAID.charactersLen); + if (errn == 0) { + if (iso2CertificateUpdateReqType->eMAID.charactersLen >= 2) { + iso2CertificateUpdateReqType->eMAID.charactersLen = (uint16_t)(iso2CertificateUpdateReqType->eMAID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2CertificateUpdateReqType->eMAID.charactersLen, iso2CertificateUpdateReqType->eMAID.characters, iso2CertificateUpdateReqType_eMAID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}eMAID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 650; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 650: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ListOfRootCertificateIDs)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2ListOfRootCertificateIDsType(stream, &iso2CertificateUpdateReqType->ListOfRootCertificateIDs); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ConsumptionCostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":startValue,"urn:iso:15118:2:2016:MsgDataTypes":Cost{1-3})', derivedBy='RESTRICTION'. */ +static int decode_iso2ConsumptionCostType(bitstream_t* stream, struct iso2ConsumptionCostType* iso2ConsumptionCostType) { + int grammarID = 651; + int done = 0; + + init_iso2ConsumptionCostType(iso2ConsumptionCostType); + + while(!done) { + switch(grammarID) { + case 651: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}startValue)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2ConsumptionCostType->startValue); + grammarID = 652; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 652: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Cost)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ConsumptionCostType->Cost.arrayLen < iso2ConsumptionCostType_Cost_ARRAY_SIZE) { + errn = decode_iso2CostType(stream, &iso2ConsumptionCostType->Cost.array[iso2ConsumptionCostType->Cost.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 653; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 653: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Cost), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ConsumptionCostType->Cost.arrayLen < iso2ConsumptionCostType_Cost_ARRAY_SIZE) { + errn = decode_iso2CostType(stream, &iso2ConsumptionCostType->Cost.array[iso2ConsumptionCostType->Cost.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 654; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 654: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Cost), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ConsumptionCostType->Cost.arrayLen < iso2ConsumptionCostType_Cost_ARRAY_SIZE) { + errn = decode_iso2CostType(stream, &iso2ConsumptionCostType->Cost.array[iso2ConsumptionCostType->Cost.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SAScheduleListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SAScheduleTuple{1-3})', derivedBy='RESTRICTION'. */ +static int decode_iso2SAScheduleListType(bitstream_t* stream, struct iso2SAScheduleListType* iso2SAScheduleListType) { + int grammarID = 655; + int done = 0; + + init_iso2SAScheduleListType(iso2SAScheduleListType); + + while(!done) { + switch(grammarID) { + case 655: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleTuple)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SAScheduleListType->SAScheduleTuple.arrayLen < iso2SAScheduleListType_SAScheduleTuple_ARRAY_SIZE) { + errn = decode_iso2SAScheduleTupleType(stream, &iso2SAScheduleListType->SAScheduleTuple.array[iso2SAScheduleListType->SAScheduleTuple.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 656; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 656: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SAScheduleListType->SAScheduleTuple.arrayLen < iso2SAScheduleListType_SAScheduleTuple_ARRAY_SIZE) { + errn = decode_iso2SAScheduleTupleType(stream, &iso2SAScheduleListType->SAScheduleTuple.array[iso2SAScheduleListType->SAScheduleTuple.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 657; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 657: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SAScheduleListType->SAScheduleTuple.arrayLen < iso2SAScheduleListType_SAScheduleTuple_ARRAY_SIZE) { + errn = decode_iso2SAScheduleTupleType(stream, &iso2SAScheduleListType->SAScheduleTuple.array[iso2SAScheduleListType->SAScheduleTuple.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MagneticVectorSetupType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":GAID,"urn:iso:15118:2:2016:MsgDataTypes":FrequencyChannel)', derivedBy='RESTRICTION'. */ +static int decode_iso2MagneticVectorSetupType(bitstream_t* stream, struct iso2MagneticVectorSetupType* iso2MagneticVectorSetupType) { + int grammarID = 658; + int done = 0; + + init_iso2MagneticVectorSetupType(iso2MagneticVectorSetupType); + + while(!done) { + switch(grammarID) { + case 658: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}GAID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MagneticVectorSetupType->GAID.charactersLen); + if (errn == 0) { + if (iso2MagneticVectorSetupType->GAID.charactersLen >= 2) { + iso2MagneticVectorSetupType->GAID.charactersLen = (uint16_t)(iso2MagneticVectorSetupType->GAID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2MagneticVectorSetupType->GAID.charactersLen, iso2MagneticVectorSetupType->GAID.characters, iso2MagneticVectorSetupType_GAID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}GAID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 659; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 659: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FrequencyChannel)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &iso2MagneticVectorSetupType->FrequencyChannel); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FrequencyChannel) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,LFA_EVSEFinePositioningSetupParametersType', base type name='EVSEFinePositioningSetupParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NumberOfSensors,"urn:iso:15118:2:2016:MsgDataTypes":SensorList,"urn:iso:15118:2:2016:MsgDataTypes":SensorOrder,"urn:iso:15118:2:2016:MsgDataTypes":SignalPulseDuration,"urn:iso:15118:2:2016:MsgDataTypes":SignalSeparationTime,"urn:iso:15118:2:2016:MsgDataTypes":PackageSeparationTime,"urn:iso:15118:2:2016:MsgDataTypes":AlignmentOffset,"urn:iso:15118:2:2016:MsgDataTypes":SignalFrequency)', derivedBy='EXTENSION'. */ +static int decode_iso2LFA_EVSEFinePositioningSetupParametersType(bitstream_t* stream, struct iso2LFA_EVSEFinePositioningSetupParametersType* iso2LFA_EVSEFinePositioningSetupParametersType) { + int grammarID = 660; + int done = 0; + + init_iso2LFA_EVSEFinePositioningSetupParametersType(iso2LFA_EVSEFinePositioningSetupParametersType); + + while(!done) { + switch(grammarID) { + case 660: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSensors)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2LFA_EVSEFinePositioningSetupParametersType->NumberOfSensors = (uint8_t)(uint32 + 0); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSensors) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 661; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 661: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorList)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2SensorListType(stream, &iso2LFA_EVSEFinePositioningSetupParametersType->SensorList); + grammarID = 662; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 662: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorOrder)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2SensorOrderListType(stream, &iso2LFA_EVSEFinePositioningSetupParametersType->SensorOrder); + grammarID = 663; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 663: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalPulseDuration)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2LFA_EVSEFinePositioningSetupParametersType->SignalPulseDuration = (uint8_t)(uint32 + 0); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalPulseDuration) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 664; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 664: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalSeparationTime)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2LFA_EVSEFinePositioningSetupParametersType->SignalSeparationTime = (uint8_t)(uint32 + 0); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalSeparationTime) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 665; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 665: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PackageSeparationTime)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2LFA_EVSEFinePositioningSetupParametersType->PackageSeparationTime = (uint8_t)(uint32 + 0); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PackageSeparationTime) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 666; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 666: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AlignmentOffset)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2LFA_EVSEFinePositioningSetupParametersType->AlignmentOffset); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AlignmentOffset) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 667; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 667: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalFrequency)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2LFA_EVSEFinePositioningSetupParametersType->SignalFrequency); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalFrequency) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PaymentOptionListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":PaymentOption{1-2})', derivedBy='RESTRICTION'. */ +static int decode_iso2PaymentOptionListType(bitstream_t* stream, struct iso2PaymentOptionListType* iso2PaymentOptionListType) { + int grammarID = 668; + int done = 0; + + init_iso2PaymentOptionListType(iso2PaymentOptionListType); + + while(!done) { + switch(grammarID) { + case 668: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PaymentOption)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2PaymentOptionListType->PaymentOption.arrayLen < iso2PaymentOptionListType_PaymentOption_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso2PaymentOptionListType->PaymentOption.array[iso2PaymentOptionListType->PaymentOption.arrayLen] = (iso2paymentOptionType) uint32; + iso2PaymentOptionListType->PaymentOption.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PaymentOption) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 669; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 669: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PaymentOption), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2PaymentOptionListType->PaymentOption.arrayLen < iso2PaymentOptionListType_PaymentOption_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso2PaymentOptionListType->PaymentOption.array[iso2PaymentOptionListType->PaymentOption.arrayLen] = (iso2paymentOptionType) uint32; + iso2PaymentOptionListType->PaymentOption.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PaymentOption) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,LFA_EVSEFinePositioningParametersType', base type name='EVSEFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NumberOfSignalPackages,"urn:iso:15118:2:2016:MsgDataTypes":SensorPackageList)', derivedBy='EXTENSION'. */ +static int decode_iso2LFA_EVSEFinePositioningParametersType(bitstream_t* stream, struct iso2LFA_EVSEFinePositioningParametersType* iso2LFA_EVSEFinePositioningParametersType) { + int grammarID = 670; + int done = 0; + + init_iso2LFA_EVSEFinePositioningParametersType(iso2LFA_EVSEFinePositioningParametersType); + + while(!done) { + switch(grammarID) { + case 670: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSignalPackages)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2LFA_EVSEFinePositioningParametersType->NumberOfSignalPackages = (uint8_t)(uint32 + 0); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSignalPackages) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 671; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 671: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackageList)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2SensorPackageListType(stream, &iso2LFA_EVSEFinePositioningParametersType->SensorPackageList); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,RelativeTimeIntervalType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":start,"urn:iso:15118:2:2016:MsgDataTypes":duration{0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso2RelativeTimeIntervalType(bitstream_t* stream, struct iso2RelativeTimeIntervalType* iso2RelativeTimeIntervalType) { + int grammarID = 672; + int done = 0; + + init_iso2RelativeTimeIntervalType(iso2RelativeTimeIntervalType); + + while(!done) { + switch(grammarID) { + case 672: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}start)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &iso2RelativeTimeIntervalType->start); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}start) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 673; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 673: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}duration), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &iso2RelativeTimeIntervalType->duration); + iso2RelativeTimeIntervalType->duration_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}duration) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVFinePositioningParametersType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_iso2EVFinePositioningParametersType(bitstream_t* stream, struct iso2EVFinePositioningParametersType* iso2EVFinePositioningParametersType) { + int grammarID = 674; + int done = 0; + + init_iso2EVFinePositioningParametersType(iso2EVFinePositioningParametersType); + + while(!done) { + switch(grammarID) { + case 674: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,AlignmentCheckReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVProcessing,"urn:iso:15118:2:2016:MsgBody":AlignmentCheckParameters{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso2AlignmentCheckReqType(bitstream_t* stream, struct iso2AlignmentCheckReqType* iso2AlignmentCheckReqType) { + int grammarID = 675; + int done = 0; + + init_iso2AlignmentCheckReqType(iso2AlignmentCheckReqType); + + while(!done) { + switch(grammarID) { + case 675: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2AlignmentCheckReqType->EVProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 676; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 676: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckParameters), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2ParameterSetType(stream, &iso2AlignmentCheckReqType->AlignmentCheckParameters); + iso2AlignmentCheckReqType->AlignmentCheckParameters_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CertificateInstallationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":OEMProvisioningCert,"urn:iso:15118:2:2016:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */ +static int decode_iso2CertificateInstallationReqType(bitstream_t* stream, struct iso2CertificateInstallationReqType* iso2CertificateInstallationReqType) { + int grammarID = 677; + int done = 0; + + init_iso2CertificateInstallationReqType(iso2CertificateInstallationReqType); + + while(!done) { + switch(grammarID) { + case 677: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgBody}Id)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2CertificateInstallationReqType->Id.charactersLen); + if (errn == 0) { + if (iso2CertificateInstallationReqType->Id.charactersLen >= 2) { + iso2CertificateInstallationReqType->Id.charactersLen = (uint16_t)(iso2CertificateInstallationReqType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2CertificateInstallationReqType->Id.charactersLen, iso2CertificateInstallationReqType->Id.characters, iso2CertificateInstallationReqType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 678; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 678: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OEMProvisioningCert)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2CertificateInstallationReqType->OEMProvisioningCert.bytesLen); + if (errn == 0) { + errn = (iso2CertificateInstallationReqType->OEMProvisioningCert.bytesLen) <= iso2CertificateInstallationReqType_OEMProvisioningCert_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2CertificateInstallationReqType->OEMProvisioningCert.bytesLen, iso2CertificateInstallationReqType->OEMProvisioningCert.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OEMProvisioningCert) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 650; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 650: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ListOfRootCertificateIDs)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2ListOfRootCertificateIDsType(stream, &iso2CertificateInstallationReqType->ListOfRootCertificateIDs); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso2TransformsType(bitstream_t* stream, struct iso2TransformsType* iso2TransformsType) { + int grammarID = 679; + int done = 0; + + init_iso2TransformsType(iso2TransformsType); + + while(!done) { + switch(grammarID) { + case 679: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2TransformsType->Transform.arrayLen < iso2TransformsType_Transform_ARRAY_SIZE) { + errn = decode_iso2TransformType(stream, &iso2TransformsType->Transform.array[iso2TransformsType->Transform.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 680; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 680: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2TransformsType->Transform.arrayLen < iso2TransformsType_Transform_ARRAY_SIZE) { + errn = decode_iso2TransformType(stream, &iso2TransformsType->Transform.array[iso2TransformsType->Transform.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 680; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_iso2ObjectType(bitstream_t* stream, struct iso2ObjectType* iso2ObjectType) { + int grammarID = 681; + int done = 0; + + init_iso2ObjectType(iso2ObjectType); + + while(!done) { + switch(grammarID) { + case 681: + /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2ObjectType->Encoding.charactersLen); + if (errn == 0) { + if (iso2ObjectType->Encoding.charactersLen >= 2) { + iso2ObjectType->Encoding.charactersLen = (uint16_t)(iso2ObjectType->Encoding.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ObjectType->Encoding.charactersLen, iso2ObjectType->Encoding.characters, iso2ObjectType_Encoding_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ObjectType->Encoding_isUsed = 1u; + grammarID = 682; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso2ObjectType->Id.charactersLen); + if (errn == 0) { + if (iso2ObjectType->Id.charactersLen >= 2) { + iso2ObjectType->Id.charactersLen = (uint16_t)(iso2ObjectType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ObjectType->Id.charactersLen, iso2ObjectType->Id.characters, iso2ObjectType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ObjectType->Id_isUsed = 1u; + grammarID = 683; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso2ObjectType->MimeType.charactersLen); + if (errn == 0) { + if (iso2ObjectType->MimeType.charactersLen >= 2) { + iso2ObjectType->MimeType.charactersLen = (uint16_t)(iso2ObjectType->MimeType.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ObjectType->MimeType.charactersLen, iso2ObjectType->MimeType.characters, iso2ObjectType_MimeType_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ObjectType->MimeType_isUsed = 1u; + grammarID = 684; + break; + case 3: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 685; + break; + case 4: + done = 1; + grammarID = 4; + break; + case 5: + errn = decodeUnsignedInteger16(stream, &iso2ObjectType->ANY.charactersLen); + if (errn == 0) { + if (iso2ObjectType->ANY.charactersLen >= 2) { + iso2ObjectType->ANY.charactersLen = (uint16_t)(iso2ObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ObjectType->ANY.charactersLen, iso2ObjectType->ANY.characters, iso2ObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ObjectType->ANY_isUsed = 1u; + grammarID = 685; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 682: + /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2ObjectType->Id.charactersLen); + if (errn == 0) { + if (iso2ObjectType->Id.charactersLen >= 2) { + iso2ObjectType->Id.charactersLen = (uint16_t)(iso2ObjectType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ObjectType->Id.charactersLen, iso2ObjectType->Id.characters, iso2ObjectType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ObjectType->Id_isUsed = 1u; + grammarID = 683; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso2ObjectType->MimeType.charactersLen); + if (errn == 0) { + if (iso2ObjectType->MimeType.charactersLen >= 2) { + iso2ObjectType->MimeType.charactersLen = (uint16_t)(iso2ObjectType->MimeType.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ObjectType->MimeType.charactersLen, iso2ObjectType->MimeType.characters, iso2ObjectType_MimeType_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ObjectType->MimeType_isUsed = 1u; + grammarID = 684; + break; + case 2: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 685; + break; + case 3: + done = 1; + grammarID = 4; + break; + case 4: + errn = decodeUnsignedInteger16(stream, &iso2ObjectType->ANY.charactersLen); + if (errn == 0) { + if (iso2ObjectType->ANY.charactersLen >= 2) { + iso2ObjectType->ANY.charactersLen = (uint16_t)(iso2ObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ObjectType->ANY.charactersLen, iso2ObjectType->ANY.characters, iso2ObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ObjectType->ANY_isUsed = 1u; + grammarID = 685; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 683: + /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2ObjectType->MimeType.charactersLen); + if (errn == 0) { + if (iso2ObjectType->MimeType.charactersLen >= 2) { + iso2ObjectType->MimeType.charactersLen = (uint16_t)(iso2ObjectType->MimeType.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ObjectType->MimeType.charactersLen, iso2ObjectType->MimeType.characters, iso2ObjectType_MimeType_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ObjectType->MimeType_isUsed = 1u; + grammarID = 684; + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 685; + break; + case 2: + done = 1; + grammarID = 4; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &iso2ObjectType->ANY.charactersLen); + if (errn == 0) { + if (iso2ObjectType->ANY.charactersLen >= 2) { + iso2ObjectType->ANY.charactersLen = (uint16_t)(iso2ObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ObjectType->ANY.charactersLen, iso2ObjectType->ANY.characters, iso2ObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ObjectType->ANY_isUsed = 1u; + grammarID = 685; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 684: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 685; + break; + case 1: + done = 1; + grammarID = 4; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso2ObjectType->ANY.charactersLen); + if (errn == 0) { + if (iso2ObjectType->ANY.charactersLen >= 2) { + iso2ObjectType->ANY.charactersLen = (uint16_t)(iso2ObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ObjectType->ANY.charactersLen, iso2ObjectType->ANY.characters, iso2ObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ObjectType->ANY_isUsed = 1u; + grammarID = 685; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 685: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 685; + break; + case 1: + done = 1; + grammarID = 4; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso2ObjectType->ANY.charactersLen); + if (errn == 0) { + if (iso2ObjectType->ANY.charactersLen >= 2) { + iso2ObjectType->ANY.charactersLen = (uint16_t)(iso2ObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ObjectType->ANY.charactersLen, iso2ObjectType->ANY.characters, iso2ObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ObjectType->ANY_isUsed = 1u; + grammarID = 685; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorOrderListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SensorPosition{1-255})', derivedBy='RESTRICTION'. */ +static int decode_iso2SensorOrderListType(bitstream_t* stream, struct iso2SensorOrderListType* iso2SensorOrderListType) { + int grammarID = 686; + int done = 0; + + init_iso2SensorOrderListType(iso2SensorOrderListType); + + while(!done) { + switch(grammarID) { + case 686: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 687; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 687: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 688; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 688: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 689; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 689: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 690; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 690: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 691; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 691: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 692; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 692: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 693; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 693: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 694; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 694: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 695; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 695: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 696; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 696: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 697; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 697: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 698; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 698: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 699; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 699: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 700; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 700: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 701; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 701: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 702; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 702: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 703; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 703: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 704; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 704: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 705; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 705: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 706; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 706: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 707; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 707: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 708; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 708: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 709; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 709: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 710; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 710: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 711; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 711: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 712; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 712: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 713; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 713: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 714; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 714: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 715; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 715: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 716; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 716: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 717; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 717: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 718; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 718: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 719; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 719: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 720; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 720: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 721; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 721: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 722; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 722: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 723; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 723: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 724; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 724: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 725; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 725: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 726; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 726: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 727; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 727: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 728; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 728: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 729; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 729: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 730; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 730: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 731; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 731: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 732; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 732: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 733; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 733: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 734; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 734: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 735; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 735: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 736; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 736: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 737; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 737: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 738; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 738: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 739; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 739: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 740; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 740: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 741; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 741: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 742; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 742: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 743; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 743: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 744; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 744: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 745; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 745: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 746; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 746: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 747; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 747: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 748; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 748: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 749; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 749: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 750; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 750: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 751; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 751: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 752; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 752: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 753; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 753: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 754; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 754: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 755; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 755: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 756; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 756: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 757; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 757: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 758; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 758: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 759; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 759: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 760; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 760: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 761; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 761: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 762; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 762: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 763; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 763: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 764; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 764: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 765; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 765: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 766; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 766: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 767; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 767: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 768; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 768: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 769; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 769: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 770; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 770: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 771; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 771: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 772; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 772: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 773; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 773: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 774; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 774: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 775; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 775: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 776; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 776: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 777; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 777: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 778; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 778: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 779; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 779: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 780; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 780: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 781; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 781: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 782; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 782: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 783; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 783: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 784; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 784: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 785; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 785: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 786; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 786: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 787; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 787: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 788; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 788: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 789; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 789: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 790; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 790: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 791; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 791: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 792; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 792: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 793; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 793: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 794; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 794: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 795; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 795: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 796; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 796: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 797; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 797: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 798; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 798: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 799; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 799: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 800; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 800: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 801; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 801: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 802; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 802: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 803; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 803: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 804; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 804: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 805; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 805: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 806; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 806: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 807; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 807: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 808; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 808: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 809; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 809: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 810; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 810: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 811; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 811: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 812; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 812: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 813; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 813: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 814; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 814: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 815; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 815: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 816; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 816: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 817; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 817: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 818; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 818: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 819; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 819: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 820; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 820: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 821; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 821: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 822; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 822: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 823; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 823: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 824; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 824: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 825; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 825: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 826; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 826: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 827; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 827: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 828; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 828: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 829; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 829: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 830; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 830: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 831; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 831: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 832; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 832: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 833; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 833: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 834; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 834: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 835; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 835: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 836; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 836: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 837; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 837: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 838; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 838: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 839; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 839: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 840; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 840: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 841; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 841: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 842; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 842: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 843; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 843: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 844; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 844: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 845; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 845: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 846; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 846: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 847; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 847: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 848; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 848: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 849; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 849: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 850; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 850: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 851; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 851: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 852; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 852: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 853; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 853: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 854; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 854: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 855; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 855: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 856; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 856: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 857; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 857: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 858; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 858: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 859; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 859: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 860; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 860: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 861; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 861: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 862; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 862: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 863; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 863: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 864; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 864: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 865; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 865: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 866; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 866: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 867; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 867: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 868; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 868: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 869; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 869: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 870; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 870: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 871; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 871: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 872; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 872: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 873; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 873: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 874; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 874: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 875; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 875: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 876; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 876: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 877; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 877: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 878; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 878: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 879; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 879: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 880; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 880: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 881; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 881: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 882; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 882: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 883; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 883: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 884; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 884: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 885; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 885: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 886; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 886: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 887; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 887: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 888; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 888: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 889; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 889: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 890; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 890: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 891; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 891: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 892; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 892: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 893; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 893: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 894; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 894: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 895; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 895: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 896; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 896: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 897; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 897: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 898; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 898: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 899; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 899: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 900; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 900: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 901; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 901: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 902; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 902: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 903; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 903: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 904; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 904: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 905; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 905: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 906; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 906: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 907; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 907: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 908; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 908: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 909; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 909: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 910; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 910: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 911; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 911: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 912; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 912: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 913; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 913: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 914; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 914: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 915; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 915: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 916; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 916: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 917; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 917: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 918; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 918: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 919; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 919: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 920; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 920: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 921; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 921: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 922; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 922: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 923; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 923: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 924; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 924: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 925; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 925: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 926; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 926: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 927; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 927: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 928; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 928: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 929; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 929: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 930; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 930: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 931; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 931: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 932; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 932: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 933; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 933: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 934; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 934: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 935; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 935: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 936; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 936: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 937; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 937: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 938; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 938: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 939; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 939: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 940; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 940: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorOrderListType->SensorPosition.arrayLen < iso2SensorOrderListType_SensorPosition_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType->SensorPosition.arrayLen] = (uint8_t)(uint32 + 0); + iso2SensorOrderListType->SensorPosition.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ChargeParameterDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":MaxSupportingPoints{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVEnergyTransferParameter,"urn:iso:15118:2:2016:MsgBody":MinimumPMaxRequest{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso2ChargeParameterDiscoveryReqType(bitstream_t* stream, struct iso2ChargeParameterDiscoveryReqType* iso2ChargeParameterDiscoveryReqType) { + int grammarID = 941; + int done = 0; + + init_iso2ChargeParameterDiscoveryReqType(iso2ChargeParameterDiscoveryReqType); + + while(!done) { + switch(grammarID) { + case 941: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MaxSupportingPoints), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVEnergyTransferParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVChargeParameter)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 10, &(uint32)); + iso2ChargeParameterDiscoveryReqType->MaxSupportingPoints = (uint16_t)(uint32 + 12); + iso2ChargeParameterDiscoveryReqType->MaxSupportingPoints_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MaxSupportingPoints) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 942; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_iso2AC_EVBidirectionalParameterType(stream, &iso2ChargeParameterDiscoveryReqType->AC_EVBidirectionalParameter); + iso2ChargeParameterDiscoveryReqType->AC_EVBidirectionalParameter_isUsed = 1u; + grammarID = 943; + break; + case 2: + errn = decode_iso2AC_EVChargeParameterType(stream, &iso2ChargeParameterDiscoveryReqType->AC_EVChargeParameter); + iso2ChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed = 1u; + grammarID = 943; + break; + case 3: + errn = decode_iso2DC_EVBidirectionalParameterType(stream, &iso2ChargeParameterDiscoveryReqType->DC_EVBidirectionalParameter); + iso2ChargeParameterDiscoveryReqType->DC_EVBidirectionalParameter_isUsed = 1u; + grammarID = 943; + break; + case 4: + errn = decode_iso2DC_EVChargeParameterType(stream, &iso2ChargeParameterDiscoveryReqType->DC_EVChargeParameter); + iso2ChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed = 1u; + grammarID = 943; + break; + case 5: + errn = decode_iso2EVEnergyTransferParameterType(stream, &iso2ChargeParameterDiscoveryReqType->EVEnergyTransferParameter); + iso2ChargeParameterDiscoveryReqType->EVEnergyTransferParameter_isUsed = 1u; + grammarID = 943; + break; + case 6: + errn = decode_iso2WPT_EVChargeParameterType(stream, &iso2ChargeParameterDiscoveryReqType->WPT_EVChargeParameter); + iso2ChargeParameterDiscoveryReqType->WPT_EVChargeParameter_isUsed = 1u; + grammarID = 943; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 942: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVEnergyTransferParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVChargeParameter)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2AC_EVBidirectionalParameterType(stream, &iso2ChargeParameterDiscoveryReqType->AC_EVBidirectionalParameter); + iso2ChargeParameterDiscoveryReqType->AC_EVBidirectionalParameter_isUsed = 1u; + grammarID = 943; + break; + case 1: + errn = decode_iso2AC_EVChargeParameterType(stream, &iso2ChargeParameterDiscoveryReqType->AC_EVChargeParameter); + iso2ChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed = 1u; + grammarID = 943; + break; + case 2: + errn = decode_iso2DC_EVBidirectionalParameterType(stream, &iso2ChargeParameterDiscoveryReqType->DC_EVBidirectionalParameter); + iso2ChargeParameterDiscoveryReqType->DC_EVBidirectionalParameter_isUsed = 1u; + grammarID = 943; + break; + case 3: + errn = decode_iso2DC_EVChargeParameterType(stream, &iso2ChargeParameterDiscoveryReqType->DC_EVChargeParameter); + iso2ChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed = 1u; + grammarID = 943; + break; + case 4: + errn = decode_iso2EVEnergyTransferParameterType(stream, &iso2ChargeParameterDiscoveryReqType->EVEnergyTransferParameter); + iso2ChargeParameterDiscoveryReqType->EVEnergyTransferParameter_isUsed = 1u; + grammarID = 943; + break; + case 5: + errn = decode_iso2WPT_EVChargeParameterType(stream, &iso2ChargeParameterDiscoveryReqType->WPT_EVChargeParameter); + iso2ChargeParameterDiscoveryReqType->WPT_EVChargeParameter_isUsed = 1u; + grammarID = 943; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 943: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MinimumPMaxRequest), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2MinimumPMaxRequestType(stream, &iso2ChargeParameterDiscoveryReqType->MinimumPMaxRequest); + iso2ChargeParameterDiscoveryReqType->MinimumPMaxRequest_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ParameterType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":boolValue|"urn:iso:15118:2:2016:MsgDataTypes":byteValue|"urn:iso:15118:2:2016:MsgDataTypes":shortValue|"urn:iso:15118:2:2016:MsgDataTypes":intValue|"urn:iso:15118:2:2016:MsgDataTypes":physicalValue|"urn:iso:15118:2:2016:MsgDataTypes":stringValue)', derivedBy='RESTRICTION'. */ +static int decode_iso2ParameterType(bitstream_t* stream, struct iso2ParameterType* iso2ParameterType) { + int grammarID = 944; + int done = 0; + + init_iso2ParameterType(iso2ParameterType); + + while(!done) { + switch(grammarID) { + case 944: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgDataTypes}Name)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2ParameterType->Name.charactersLen); + if (errn == 0) { + if (iso2ParameterType->Name.charactersLen >= 2) { + iso2ParameterType->Name.charactersLen = (uint16_t)(iso2ParameterType->Name.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ParameterType->Name.charactersLen, iso2ParameterType->Name.characters, iso2ParameterType_Name_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 945; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 945: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}stringValue)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2ParameterType->boolValue); + iso2ParameterType->boolValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}boolValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2ParameterType->byteValue = (int8_t)(uint32 -128); + iso2ParameterType->byteValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}byteValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &iso2ParameterType->shortValue); + iso2ParameterType->shortValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}shortValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger32(stream, &iso2ParameterType->intValue); + iso2ParameterType->intValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}intValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + errn = decode_iso2PhysicalValueType(stream, &iso2ParameterType->physicalValue); + iso2ParameterType->physicalValue_isUsed = 1u; + grammarID = 3; + break; + case 5: + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ParameterType->stringValue.charactersLen); + if (errn == 0) { + if (iso2ParameterType->stringValue.charactersLen >= 2) { + iso2ParameterType->stringValue.charactersLen = (uint16_t)(iso2ParameterType->stringValue.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ParameterType->stringValue.charactersLen, iso2ParameterType->stringValue.characters, iso2ParameterType_stringValue_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ParameterType->stringValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}stringValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,SessionStopReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ChargingSession)', derivedBy='EXTENSION'. */ +static int decode_iso2SessionStopReqType(bitstream_t* stream, struct iso2SessionStopReqType* iso2SessionStopReqType) { + int grammarID = 946; + int done = 0; + + init_iso2SessionStopReqType(iso2SessionStopReqType); + + while(!done) { + switch(grammarID) { + case 946: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingSession)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso2SessionStopReqType->ChargingSession = (iso2chargingSessionType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingSession) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorMeasurementsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SensorID,"urn:iso:15118:2:2016:MsgDataTypes":EffectiveRadiatedPower,"urn:iso:15118:2:2016:MsgDataTypes":MeasurementDataList)', derivedBy='RESTRICTION'. */ +static int decode_iso2SensorMeasurementsType(bitstream_t* stream, struct iso2SensorMeasurementsType* iso2SensorMeasurementsType) { + int grammarID = 947; + int done = 0; + + init_iso2SensorMeasurementsType(iso2SensorMeasurementsType); + + while(!done) { + switch(grammarID) { + case 947: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorMeasurementsType->SensorID = (uint8_t)(uint32 + 0); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 948; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 948: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EffectiveRadiatedPower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorMeasurementsType->EffectiveRadiatedPower = (int8_t)(uint32 -128); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EffectiveRadiatedPower) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 949; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 949: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementDataList)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2MeasurementDataListType(stream, &iso2SensorMeasurementsType->MeasurementDataList); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DC_EVSEChargeParameterType', base type name='EVSEEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2016:MsgDataTypes":EVSEEnergyToBeDelivered{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso2DC_EVSEChargeParameterType(bitstream_t* stream, struct iso2DC_EVSEChargeParameterType* iso2DC_EVSEChargeParameterType) { + int grammarID = 950; + int done = 0; + + init_iso2DC_EVSEChargeParameterType(iso2DC_EVSEChargeParameterType); + + while(!done) { + switch(grammarID) { + case 950: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargePower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEChargeParameterType->EVSEMaximumChargePower); + grammarID = 951; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 951: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEChargeParameterType->EVSEMaximumChargeCurrent); + grammarID = 952; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 952: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEChargeParameterType->EVSEMinimumChargeCurrent); + grammarID = 953; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 953: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEChargeParameterType->EVSEMaximumVoltage); + grammarID = 954; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 954: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEChargeParameterType->EVSEMinimumVoltage); + grammarID = 955; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 955: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEPeakCurrentRipple)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEChargeParameterType->EVSECurrentRegulationTolerance); + iso2DC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed = 1u; + grammarID = 956; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEChargeParameterType->EVSEPeakCurrentRipple); + grammarID = 957; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 956: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEPeakCurrentRipple)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEChargeParameterType->EVSEPeakCurrentRipple); + grammarID = 957; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 957: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEChargeParameterType->EVSEEnergyToBeDelivered); + iso2DC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorPackageListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SensorPackage{1-255})', derivedBy='RESTRICTION'. */ +static int decode_iso2SensorPackageListType(bitstream_t* stream, struct iso2SensorPackageListType* iso2SensorPackageListType) { + int grammarID = 958; + int done = 0; + + init_iso2SensorPackageListType(iso2SensorPackageListType); + + while(!done) { + switch(grammarID) { + case 958: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 959; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 959: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 960; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 960: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 961; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 961: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 962; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 962: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 963; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 963: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 964; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 964: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 965; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 965: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 966; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 966: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 967; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 967: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 968; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 968: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 969; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 969: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 970; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 970: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 971; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 971: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 972; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 972: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 973; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 973: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 974; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 974: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 975; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 975: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 976; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 976: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 977; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 977: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 978; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 978: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 979; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 979: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 980; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 980: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 981; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 981: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 982; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 982: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 983; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 983: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 984; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 984: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 985; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 985: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 986; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 986: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 987; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 987: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 988; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 988: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 989; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 989: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 990; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 990: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 991; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 991: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 992; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 992: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 993; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 993: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 994; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 994: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 995; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 995: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 996; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 996: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 997; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 997: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 998; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 998: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 999; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 999: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1000; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1000: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1001; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1001: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1002; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1002: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1003; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1003: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1004; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1004: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1005; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1005: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1006; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1006: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1007; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1007: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1008; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1008: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1009; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1009: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1010; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1010: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1011; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1011: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1012; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1012: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1013; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1013: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1014; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1014: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1015; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1015: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1016; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1016: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1017; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1017: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1018; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1018: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1019; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1019: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1020; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1020: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1021; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1021: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1022; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1022: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1023; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1023: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1024; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1024: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1025; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1025: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1026; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1026: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1027; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1027: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1028; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1028: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1029; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1029: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1030; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1030: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1031; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1031: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1032; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1032: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1033; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1033: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1034; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1034: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1035; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1035: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1036; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1036: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1037; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1037: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1038; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1038: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1039; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1039: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1040; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1040: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1041; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1041: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1042; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1042: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1043; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1043: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1044; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1044: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1045; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1045: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1046; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1046: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1047; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1047: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1048; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1048: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1049; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1049: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1050; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1050: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1051; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1051: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1052; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1052: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1053; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1053: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1054; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1054: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1055; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1055: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1056; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1056: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1057; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1057: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1058; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1058: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1059; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1059: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1060; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1060: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1061; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1061: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1062; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1062: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1063; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1063: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1064; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1064: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1065; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1065: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1066; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1066: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1067; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1067: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1068; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1068: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1069; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1069: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1070; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1070: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1071; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1071: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1072; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1072: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1073; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1073: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1074; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1074: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1075; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1075: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1076; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1076: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1077; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1077: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1078; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1078: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1079; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1079: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1080; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1080: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1081; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1081: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1082; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1082: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1083; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1083: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1084; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1084: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1085; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1085: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1086; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1086: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1087; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1087: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1088; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1088: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1089; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1089: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1090; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1090: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1091; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1091: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1092; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1092: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1093; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1093: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1094; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1094: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1095; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1095: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1096; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1096: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1097; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1097: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1098; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1098: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1099; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1099: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1100; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1100: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1101; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1101: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1102; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1102: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1103; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1103: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1104; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1104: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1105; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1105: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1106; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1106: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1107; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1107: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1108; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1108: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1109; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1109: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1110; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1110: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1111; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1111: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1112; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1112: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1113; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1113: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1114; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1114: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1115; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1115: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1116; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1116: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1117; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1117: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1118; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1118: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1119; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1119: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1120; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1120: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1121; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1121: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1122; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1122: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1123; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1123: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1124; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1124: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1125; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1125: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1126; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1126: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1127; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1127: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1128; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1128: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1129; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1129: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1130; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1130: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1131; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1131: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1132; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1132: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1133; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1133: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1134; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1134: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1135; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1135: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1136; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1136: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1137; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1137: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1138; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1138: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1139; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1139: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1140; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1140: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1141; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1141: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1142; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1142: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1143; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1143: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1144; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1144: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1145; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1145: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1146; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1146: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1147; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1147: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1148; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1148: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1149; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1149: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1150; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1150: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1151; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1151: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1152; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1152: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1153; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1153: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1154; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1154: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1155; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1155: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1156; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1156: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1157; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1157: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1158; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1158: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1159; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1159: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1160; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1160: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1161; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1161: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1162; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1162: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1163; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1163: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1164; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1164: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1165; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1165: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1166; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1166: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1167; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1167: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1168; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1168: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1169; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1169: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1170; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1170: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1171; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1171: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1172; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1172: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1173; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1173: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1174; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1174: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1175; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1175: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1176; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1176: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1177; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1177: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1178; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1178: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1179; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1179: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1180; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1180: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1181; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1181: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1182; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1182: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1183; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1183: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1184; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1184: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1185; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1185: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1186; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1186: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1187; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1187: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1188; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1188: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1189; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1189: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1190; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1190: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1191; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1191: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1192; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1192: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1193; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1193: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1194; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1194: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1195; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1195: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1196; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1196: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1197; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1197: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1198; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1198: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1199; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1199: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1200; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1200: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1201; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1201: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1202; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1202: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1203; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1203: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1204; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1204: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1205; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1205: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1206; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1206: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1207; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1207: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1208; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1208: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1209; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1209: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1210; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1210: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1211; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1211: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1212; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1212: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageListType->SensorPackage.arrayLen < iso2SensorPackageListType_SensorPackage_ARRAY_SIZE) { + errn = decode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array[iso2SensorPackageListType->SensorPackage.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MeasurementDataListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MeasurementData{1-255})', derivedBy='RESTRICTION'. */ +static int decode_iso2MeasurementDataListType(bitstream_t* stream, struct iso2MeasurementDataListType* iso2MeasurementDataListType) { + int grammarID = 1213; + int done = 0; + + init_iso2MeasurementDataListType(iso2MeasurementDataListType); + + while(!done) { + switch(grammarID) { + case 1213: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1214; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1214: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1215; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1215: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1216; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1216: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1217; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1217: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1218; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1218: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1219; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1219: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1220; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1220: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1221; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1221: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1222; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1222: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1223; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1223: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1224; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1224: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1225; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1225: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1226; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1226: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1227; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1227: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1228; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1228: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1229; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1229: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1230; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1230: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1231; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1231: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1232; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1232: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1233; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1233: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1234; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1234: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1235; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1235: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1236; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1236: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1237; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1237: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1238; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1238: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1239; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1239: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1240; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1240: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1241; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1241: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1242; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1242: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1243; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1243: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1244; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1244: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1245; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1245: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1246; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1246: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1247; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1247: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1248; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1248: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1249; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1249: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1250; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1250: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1251; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1251: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1252; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1252: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1253; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1253: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1254; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1254: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1255; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1255: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1256; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1256: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1257; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1257: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1258; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1258: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1259; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1259: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1260; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1260: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1261; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1261: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1262; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1262: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1263; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1263: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1264; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1264: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1265; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1265: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1266; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1266: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1267; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1267: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1268; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1268: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1269; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1269: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1270; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1270: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1271; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1271: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1272; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1272: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1273; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1273: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1274; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1274: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1275; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1275: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1276; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1276: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1277; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1277: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1278; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1278: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1279; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1279: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1280; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1280: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1281; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1281: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1282; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1282: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1283; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1283: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1284; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1284: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1285; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1285: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1286; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1286: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1287; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1287: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1288; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1288: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1289; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1289: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1290; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1290: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1291; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1291: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1292; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1292: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1293; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1293: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1294; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1294: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1295; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1295: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1296; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1296: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1297; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1297: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1298; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1298: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1299; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1299: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1300; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1300: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1301; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1301: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1302; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1302: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1303; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1303: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1304; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1304: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1305; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1305: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1306; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1306: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1307; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1307: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1308; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1308: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1309; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1309: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1310; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1310: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1311; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1311: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1312; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1312: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1313; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1313: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1314; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1314: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1315; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1315: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1316; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1316: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1317; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1317: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1318; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1318: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1319; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1319: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1320; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1320: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1321; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1321: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1322; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1322: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1323; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1323: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1324; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1324: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1325; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1325: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1326; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1326: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1327; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1327: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1328; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1328: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1329; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1329: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1330; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1330: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1331; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1331: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1332; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1332: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1333; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1333: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1334; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1334: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1335; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1335: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1336; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1336: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1337; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1337: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1338; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1338: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1339; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1339: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1340; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1340: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1341; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1341: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1342; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1342: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1343; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1343: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1344; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1344: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1345; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1345: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1346; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1346: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1347; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1347: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1348; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1348: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1349; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1349: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1350; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1350: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1351; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1351: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1352; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1352: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1353; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1353: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1354; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1354: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1355; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1355: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1356; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1356: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1357; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1357: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1358; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1358: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1359; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1359: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1360; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1360: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1361; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1361: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1362; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1362: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1363; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1363: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1364; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1364: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1365; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1365: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1366; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1366: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1367; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1367: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1368; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1368: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1369; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1369: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1370; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1370: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1371; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1371: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1372; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1372: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1373; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1373: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1374; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1374: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1375; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1375: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1376; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1376: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1377; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1377: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1378; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1378: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1379; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1379: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1380; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1380: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1381; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1381: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1382; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1382: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1383; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1383: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1384; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1384: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1385; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1385: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1386; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1386: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1387; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1387: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1388; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1388: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1389; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1389: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1390; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1390: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1391; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1391: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1392; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1392: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1393; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1393: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1394; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1394: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1395; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1395: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1396; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1396: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1397; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1397: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1398; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1398: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1399; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1399: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1400; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1400: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1401; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1401: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1402; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1402: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1403; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1403: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1404; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1404: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1405; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1405: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1406; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1406: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1407; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1407: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1408; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1408: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1409; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1409: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1410; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1410: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1411; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1411: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1412; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1412: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1413; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1413: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1414; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1414: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1415; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1415: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1416; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1416: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1417; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1417: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1418; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1418: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1419; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1419: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1420; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1420: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1421; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1421: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1422; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1422: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1423; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1423: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1424; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1424: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1425; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1425: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1426; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1426: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1427; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1427: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1428; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1428: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1429; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1429: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1430; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1430: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1431; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1431: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1432; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1432: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1433; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1433: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1434; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1434: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1435; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1435: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1436; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1436: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1437; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1437: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1438; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1438: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1439; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1439: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1440; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1440: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1441; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1441: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1442; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1442: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1443; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1443: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1444; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1444: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1445; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1445: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1446; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1446: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1447; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1447: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1448; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1448: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1449; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1449: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1450; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1450: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1451; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1451: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1452; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1452: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1453; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1453: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1454; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1454: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1455; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1455: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1456; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1456: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1457; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1457: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1458; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1458: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1459; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1459: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1460; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1460: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1461; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1461: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1462; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1462: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1463; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1463: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1464; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1464: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1465; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1465: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1466; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1466: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1467; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1467: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MeasurementDataListType->MeasurementData.arrayLen < iso2MeasurementDataListType_MeasurementData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType->MeasurementData.arrayLen]); + iso2MeasurementDataListType->MeasurementData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Certificate,"urn:iso:15118:2:2016:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso2CertificateChainType(bitstream_t* stream, struct iso2CertificateChainType* iso2CertificateChainType) { + int grammarID = 1468; + int done = 0; + + init_iso2CertificateChainType(iso2CertificateChainType); + + while(!done) { + switch(grammarID) { + case 1468: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2CertificateChainType->Id.charactersLen); + if (errn == 0) { + if (iso2CertificateChainType->Id.charactersLen >= 2) { + iso2CertificateChainType->Id.charactersLen = (uint16_t)(iso2CertificateChainType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2CertificateChainType->Id.charactersLen, iso2CertificateChainType->Id.characters, iso2CertificateChainType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2CertificateChainType->Id_isUsed = 1u; + grammarID = 1469; + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2CertificateChainType->Certificate.bytesLen); + if (errn == 0) { + errn = (iso2CertificateChainType->Certificate.bytesLen) <= iso2CertificateChainType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2CertificateChainType->Certificate.bytesLen, iso2CertificateChainType->Certificate.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1470; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1469: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2CertificateChainType->Certificate.bytesLen); + if (errn == 0) { + errn = (iso2CertificateChainType->Certificate.bytesLen) <= iso2CertificateChainType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2CertificateChainType->Certificate.bytesLen, iso2CertificateChainType->Certificate.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1470; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1470: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SubCertificates), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2SubCertificatesType(stream, &iso2CertificateChainType->SubCertificates); + iso2CertificateChainType->SubCertificates_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_iso2SignaturePropertyType(bitstream_t* stream, struct iso2SignaturePropertyType* iso2SignaturePropertyType) { + int grammarID = 1471; + int done = 0; + + init_iso2SignaturePropertyType(iso2SignaturePropertyType); + + while(!done) { + switch(grammarID) { + case 1471: + /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2SignaturePropertyType->Id.charactersLen); + if (errn == 0) { + if (iso2SignaturePropertyType->Id.charactersLen >= 2) { + iso2SignaturePropertyType->Id.charactersLen = (uint16_t)(iso2SignaturePropertyType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2SignaturePropertyType->Id.charactersLen, iso2SignaturePropertyType->Id.characters, iso2SignaturePropertyType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2SignaturePropertyType->Id_isUsed = 1u; + grammarID = 1472; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso2SignaturePropertyType->Target.charactersLen); + if (errn == 0) { + if (iso2SignaturePropertyType->Target.charactersLen >= 2) { + iso2SignaturePropertyType->Target.charactersLen = (uint16_t)(iso2SignaturePropertyType->Target.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2SignaturePropertyType->Target.charactersLen, iso2SignaturePropertyType->Target.characters, iso2SignaturePropertyType_Target_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 1473; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1472: + /* StartTag[ATTRIBUTE[STRING](Target)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2SignaturePropertyType->Target.charactersLen); + if (errn == 0) { + if (iso2SignaturePropertyType->Target.charactersLen >= 2) { + iso2SignaturePropertyType->Target.charactersLen = (uint16_t)(iso2SignaturePropertyType->Target.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2SignaturePropertyType->Target.charactersLen, iso2SignaturePropertyType->Target.characters, iso2SignaturePropertyType_Target_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 1473; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1473: + /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 685; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso2SignaturePropertyType->ANY.charactersLen); + if (errn == 0) { + if (iso2SignaturePropertyType->ANY.charactersLen >= 2) { + iso2SignaturePropertyType->ANY.charactersLen = (uint16_t)(iso2SignaturePropertyType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2SignaturePropertyType->ANY.charactersLen, iso2SignaturePropertyType->ANY.characters, iso2SignaturePropertyType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2SignaturePropertyType->ANY_isUsed = 1u; + grammarID = 1474; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 685: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 685; + break; + case 1: + done = 1; + grammarID = 4; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso2SignaturePropertyType->ANY.charactersLen); + if (errn == 0) { + if (iso2SignaturePropertyType->ANY.charactersLen >= 2) { + iso2SignaturePropertyType->ANY.charactersLen = (uint16_t)(iso2SignaturePropertyType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2SignaturePropertyType->ANY.charactersLen, iso2SignaturePropertyType->ANY.characters, iso2SignaturePropertyType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2SignaturePropertyType->ANY_isUsed = 1u; + grammarID = 685; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1474: + /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 685; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso2SignaturePropertyType->ANY.charactersLen); + if (errn == 0) { + if (iso2SignaturePropertyType->ANY.charactersLen >= 2) { + iso2SignaturePropertyType->ANY.charactersLen = (uint16_t)(iso2SignaturePropertyType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2SignaturePropertyType->ANY.charactersLen, iso2SignaturePropertyType->ANY.characters, iso2SignaturePropertyType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2SignaturePropertyType->ANY_isUsed = 1u; + grammarID = 1474; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_iso2TransformType(bitstream_t* stream, struct iso2TransformType* iso2TransformType) { + int grammarID = 1475; + int done = 0; + + init_iso2TransformType(iso2TransformType); + + while(!done) { + switch(grammarID) { + case 1475: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2TransformType->Algorithm.charactersLen); + if (errn == 0) { + if (iso2TransformType->Algorithm.charactersLen >= 2) { + iso2TransformType->Algorithm.charactersLen = (uint16_t)(iso2TransformType->Algorithm.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2TransformType->Algorithm.charactersLen, iso2TransformType->Algorithm.characters, iso2TransformType_Algorithm_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 1476; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1476: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2TransformType->XPath.arrayLen < iso2TransformType_XPath_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2TransformType->XPath.array[iso2TransformType->XPath.arrayLen].charactersLen); + if (errn == 0) { + if (iso2TransformType->XPath.array[iso2TransformType->XPath.arrayLen].charactersLen >= 2) { + iso2TransformType->XPath.array[iso2TransformType->XPath.arrayLen].charactersLen = (uint16_t)(iso2TransformType->XPath.array[iso2TransformType->XPath.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2TransformType->XPath.array[iso2TransformType->XPath.arrayLen].charactersLen, iso2TransformType->XPath.array[iso2TransformType->XPath.arrayLen].characters, iso2TransformType_XPath_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2TransformType->XPath.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1477; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 1477; + break; + case 2: + done = 1; + grammarID = 4; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &iso2TransformType->ANY.charactersLen); + if (errn == 0) { + if (iso2TransformType->ANY.charactersLen >= 2) { + iso2TransformType->ANY.charactersLen = (uint16_t)(iso2TransformType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2TransformType->ANY.charactersLen, iso2TransformType->ANY.characters, iso2TransformType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2TransformType->ANY_isUsed = 1u; + grammarID = 1477; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1477: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2TransformType->XPath.arrayLen < iso2TransformType_XPath_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2TransformType->XPath.array[iso2TransformType->XPath.arrayLen].charactersLen); + if (errn == 0) { + if (iso2TransformType->XPath.array[iso2TransformType->XPath.arrayLen].charactersLen >= 2) { + iso2TransformType->XPath.array[iso2TransformType->XPath.arrayLen].charactersLen = (uint16_t)(iso2TransformType->XPath.array[iso2TransformType->XPath.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2TransformType->XPath.array[iso2TransformType->XPath.arrayLen].charactersLen, iso2TransformType->XPath.array[iso2TransformType->XPath.arrayLen].characters, iso2TransformType_XPath_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2TransformType->XPath.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1477; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 1477; + break; + case 2: + done = 1; + grammarID = 4; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &iso2TransformType->ANY.charactersLen); + if (errn == 0) { + if (iso2TransformType->ANY.charactersLen >= 2) { + iso2TransformType->ANY.charactersLen = (uint16_t)(iso2TransformType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2TransformType->ANY.charactersLen, iso2TransformType->ANY.characters, iso2TransformType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2TransformType->ANY_isUsed = 1u; + grammarID = 1477; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EMAIDType', base type name='eMAIDType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int decode_iso2EMAIDType(bitstream_t* stream, struct iso2EMAIDType* iso2EMAIDType) { + int grammarID = 1478; + int done = 0; + + init_iso2EMAIDType(iso2EMAIDType); + + while(!done) { + switch(grammarID) { + case 1478: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgDataTypes}Id)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2EMAIDType->Id.charactersLen); + if (errn == 0) { + if (iso2EMAIDType->Id.charactersLen >= 2) { + iso2EMAIDType->Id.charactersLen = (uint16_t)(iso2EMAIDType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2EMAIDType->Id.charactersLen, iso2EMAIDType->Id.characters, iso2EMAIDType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 1479; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1479: + /* StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2EMAIDType->CONTENT.charactersLen); + if (errn == 0) { + if (iso2EMAIDType->CONTENT.charactersLen >= 2) { + iso2EMAIDType->CONTENT.charactersLen = (uint16_t)(iso2EMAIDType->CONTENT.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2EMAIDType->CONTENT.charactersLen, iso2EMAIDType->CONTENT.characters, iso2EMAIDType_CONTENT_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso2DSAKeyValueType(bitstream_t* stream, struct iso2DSAKeyValueType* iso2DSAKeyValueType) { + int grammarID = 1480; + int done = 0; + + init_iso2DSAKeyValueType(iso2DSAKeyValueType); + + while(!done) { + switch(grammarID) { + case 1480: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DSAKeyValueType->P.bytesLen); + if (errn == 0) { + errn = (iso2DSAKeyValueType->P.bytesLen) <= iso2DSAKeyValueType_P_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2DSAKeyValueType->P.bytesLen, iso2DSAKeyValueType->P.bytes); + } + iso2DSAKeyValueType->P_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1481; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DSAKeyValueType->G.bytesLen); + if (errn == 0) { + errn = (iso2DSAKeyValueType->G.bytesLen) <= iso2DSAKeyValueType_G_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2DSAKeyValueType->G.bytesLen, iso2DSAKeyValueType->G.bytes); + } + iso2DSAKeyValueType->G_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1482; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DSAKeyValueType->Y.bytesLen); + if (errn == 0) { + errn = (iso2DSAKeyValueType->Y.bytesLen) <= iso2DSAKeyValueType_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2DSAKeyValueType->Y.bytesLen, iso2DSAKeyValueType->Y.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1483; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1481: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DSAKeyValueType->Q.bytesLen); + if (errn == 0) { + errn = (iso2DSAKeyValueType->Q.bytesLen) <= iso2DSAKeyValueType_Q_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2DSAKeyValueType->Q.bytesLen, iso2DSAKeyValueType->Q.bytes); + } + iso2DSAKeyValueType->Q_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1484; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1484: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DSAKeyValueType->G.bytesLen); + if (errn == 0) { + errn = (iso2DSAKeyValueType->G.bytesLen) <= iso2DSAKeyValueType_G_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2DSAKeyValueType->G.bytesLen, iso2DSAKeyValueType->G.bytes); + } + iso2DSAKeyValueType->G_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1482; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DSAKeyValueType->Y.bytesLen); + if (errn == 0) { + errn = (iso2DSAKeyValueType->Y.bytesLen) <= iso2DSAKeyValueType_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2DSAKeyValueType->Y.bytesLen, iso2DSAKeyValueType->Y.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1483; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1482: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DSAKeyValueType->Y.bytesLen); + if (errn == 0) { + errn = (iso2DSAKeyValueType->Y.bytesLen) <= iso2DSAKeyValueType_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2DSAKeyValueType->Y.bytesLen, iso2DSAKeyValueType->Y.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1483; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1483: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DSAKeyValueType->J.bytesLen); + if (errn == 0) { + errn = (iso2DSAKeyValueType->J.bytesLen) <= iso2DSAKeyValueType_J_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2DSAKeyValueType->J.bytesLen, iso2DSAKeyValueType->J.bytes); + } + iso2DSAKeyValueType->J_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1485; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DSAKeyValueType->Seed.bytesLen); + if (errn == 0) { + errn = (iso2DSAKeyValueType->Seed.bytesLen) <= iso2DSAKeyValueType_Seed_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2DSAKeyValueType->Seed.bytesLen, iso2DSAKeyValueType->Seed.bytes); + } + iso2DSAKeyValueType->Seed_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1486; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1485: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DSAKeyValueType->Seed.bytesLen); + if (errn == 0) { + errn = (iso2DSAKeyValueType->Seed.bytesLen) <= iso2DSAKeyValueType_Seed_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2DSAKeyValueType->Seed.bytesLen, iso2DSAKeyValueType->Seed.bytes); + } + iso2DSAKeyValueType->Seed_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1486; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1486: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DSAKeyValueType->PgenCounter.bytesLen); + if (errn == 0) { + errn = (iso2DSAKeyValueType->PgenCounter.bytesLen) <= iso2DSAKeyValueType_PgenCounter_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2DSAKeyValueType->PgenCounter.bytesLen, iso2DSAKeyValueType->PgenCounter.bytes); + } + iso2DSAKeyValueType->PgenCounter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EntryType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":RelativeTimeInterval)', derivedBy='RESTRICTION'. */ +static int decode_iso2EntryType(bitstream_t* stream, struct iso2EntryType* iso2EntryType) { + int grammarID = 1487; + int done = 0; + + init_iso2EntryType(iso2EntryType); + + while(!done) { + switch(grammarID) { + case 1487: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RelativeTimeInterval)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2RelativeTimeIntervalType(stream, &iso2EntryType->RelativeTimeInterval); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgHeader,MessageHeaderType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgHeader":SessionID,"http://www.w3.org/2000/09/xmldsig#":Signature{0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso2MessageHeaderType(bitstream_t* stream, struct iso2MessageHeaderType* iso2MessageHeaderType) { + int grammarID = 1488; + int done = 0; + + init_iso2MessageHeaderType(iso2MessageHeaderType); + + while(!done) { + switch(grammarID) { + case 1488: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgHeader}SessionID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MessageHeaderType->SessionID.bytesLen); + if (errn == 0) { + errn = (iso2MessageHeaderType->SessionID.bytesLen) <= iso2MessageHeaderType_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2MessageHeaderType->SessionID.bytesLen, iso2MessageHeaderType->SessionID.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgHeader}SessionID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1489; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1489: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2SignatureType(stream, &iso2MessageHeaderType->Signature); + iso2MessageHeaderType->Signature_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,WPT_EVChargeParameterType', base type name='EVEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumPower,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumPower,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2WPT_EVChargeParameterType(bitstream_t* stream, struct iso2WPT_EVChargeParameterType* iso2WPT_EVChargeParameterType) { + int grammarID = 1490; + int done = 0; + + init_iso2WPT_EVChargeParameterType(iso2WPT_EVChargeParameterType); + + while(!done) { + switch(grammarID) { + case 1490: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &iso2WPT_EVChargeParameterType->DepartureTime); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1491; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1491: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumPower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2WPT_EVChargeParameterType->EVMaximumPower); + grammarID = 1492; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1492: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumPower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2WPT_EVChargeParameterType->EVMinimumPower); + grammarID = 1493; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1493: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVTargetEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2WPT_EVChargeParameterType->EVTargetEnergyRequest); + iso2WPT_EVChargeParameterType->EVTargetEnergyRequest_isUsed = 1u; + grammarID = 1494; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2WPT_EVChargeParameterType->EVMaximumEnergyRequest); + iso2WPT_EVChargeParameterType->EVMaximumEnergyRequest_isUsed = 1u; + grammarID = 1495; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2WPT_EVChargeParameterType->EVMinimumEnergyRequest); + iso2WPT_EVChargeParameterType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 3; + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1494: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2WPT_EVChargeParameterType->EVMaximumEnergyRequest); + iso2WPT_EVChargeParameterType->EVMaximumEnergyRequest_isUsed = 1u; + grammarID = 1495; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2WPT_EVChargeParameterType->EVMinimumEnergyRequest); + iso2WPT_EVChargeParameterType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 3; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1495: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2WPT_EVChargeParameterType->EVMinimumEnergyRequest); + iso2WPT_EVChargeParameterType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,DisconnectChargingDeviceReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVElectricalChargingDeviceStatus,"urn:iso:15118:2:2016:MsgBody":EVMechanicalChargingDeviceStatus)', derivedBy='EXTENSION'. */ +static int decode_iso2DisconnectChargingDeviceReqType(bitstream_t* stream, struct iso2DisconnectChargingDeviceReqType* iso2DisconnectChargingDeviceReqType) { + int grammarID = 1496; + int done = 0; + + init_iso2DisconnectChargingDeviceReqType(iso2DisconnectChargingDeviceReqType); + + while(!done) { + switch(grammarID) { + case 1496: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVElectricalChargingDeviceStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso2DisconnectChargingDeviceReqType->EVElectricalChargingDeviceStatus = (iso2electricalChargingDeviceStatusType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVElectricalChargingDeviceStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1497; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1497: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMechanicalChargingDeviceStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2DisconnectChargingDeviceReqType->EVMechanicalChargingDeviceStatus = (iso2mechanicalChargingDeviceStatusType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMechanicalChargingDeviceStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ChargeLoopReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso2ChargeLoopReqType(bitstream_t* stream, struct iso2ChargeLoopReqType* iso2ChargeLoopReqType) { + int grammarID = 1498; + int done = 0; + + init_iso2ChargeLoopReqType(iso2ChargeLoopReqType); + + while(!done) { + switch(grammarID) { + case 1498: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetEnergyRequest)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargeLoopReqType->EVTargetEnergyRequest); + grammarID = 1499; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1499: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargeLoopReqType->EVMaximumEnergyRequest); + iso2ChargeLoopReqType->EVMaximumEnergyRequest_isUsed = 1u; + grammarID = 1500; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargeLoopReqType->EVMinimumEnergyRequest); + iso2ChargeLoopReqType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 1501; + break; + case 2: + errn = decode_iso2DisplayParametersType(stream, &iso2ChargeLoopReqType->DisplayParameters); + iso2ChargeLoopReqType->DisplayParameters_isUsed = 1u; + grammarID = 3; + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1500: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargeLoopReqType->EVMinimumEnergyRequest); + iso2ChargeLoopReqType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 1501; + break; + case 1: + errn = decode_iso2DisplayParametersType(stream, &iso2ChargeLoopReqType->DisplayParameters); + iso2ChargeLoopReqType->DisplayParameters_isUsed = 1u; + grammarID = 3; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1501: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2DisplayParametersType(stream, &iso2ChargeLoopReqType->DisplayParameters); + iso2ChargeLoopReqType->DisplayParameters_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,V2GRequestType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_iso2V2GRequestType(bitstream_t* stream, struct iso2V2GRequestType* iso2V2GRequestType) { + int grammarID = 674; + int done = 0; + + init_iso2V2GRequestType(iso2V2GRequestType); + + while(!done) { + switch(grammarID) { + case 674: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,MeteringReceiptResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso2MeteringReceiptResType(bitstream_t* stream, struct iso2MeteringReceiptResType* iso2MeteringReceiptResType) { + int grammarID = 599; + int done = 0; + + init_iso2MeteringReceiptResType(iso2MeteringReceiptResType); + + while(!done) { + switch(grammarID) { + case 599: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2MeteringReceiptResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 600; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 600: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2MeteringReceiptResType->EVSEStatus); + iso2MeteringReceiptResType->EVSEStatus_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,SessionSetupResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":EVSETimeStamp{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2SessionSetupResType(bitstream_t* stream, struct iso2SessionSetupResType* iso2SessionSetupResType) { + int grammarID = 1502; + int done = 0; + + init_iso2SessionSetupResType(iso2SessionSetupResType); + + while(!done) { + switch(grammarID) { + case 1502: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2SessionSetupResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1503; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1503: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2SessionSetupResType->EVSEStatus); + iso2SessionSetupResType->EVSEStatus_isUsed = 1u; + grammarID = 1504; + break; + case 1: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2SessionSetupResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso2SessionSetupResType->EVSEID.charactersLen >= 2) { + iso2SessionSetupResType->EVSEID.charactersLen = (uint16_t)(iso2SessionSetupResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2SessionSetupResType->EVSEID.charactersLen, iso2SessionSetupResType->EVSEID.characters, iso2SessionSetupResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1505; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1504: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2SessionSetupResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso2SessionSetupResType->EVSEID.charactersLen >= 2) { + iso2SessionSetupResType->EVSEID.charactersLen = (uint16_t)(iso2SessionSetupResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2SessionSetupResType->EVSEID.charactersLen, iso2SessionSetupResType->EVSEID.characters, iso2SessionSetupResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1505; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1505: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETimeStamp), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &iso2SessionSetupResType->EVSETimeStamp); + iso2SessionSetupResType->EVSETimeStamp_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETimeStamp) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,AC_BidirectionalControlReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVOperation{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumChargePower,"urn:iso:15118:2:2016:MsgBody":EVMaximumDischargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgBody":EVMaximumDischargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgBody":EVMinimumDischargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVPresentActivePower,"urn:iso:15118:2:2016:MsgBody":EVPresentReactivePower))', derivedBy='EXTENSION'. */ +static int decode_iso2AC_BidirectionalControlReqType(bitstream_t* stream, struct iso2AC_BidirectionalControlReqType* iso2AC_BidirectionalControlReqType) { + int grammarID = 1506; + int done = 0; + + init_iso2AC_BidirectionalControlReqType(iso2AC_BidirectionalControlReqType); + + while(!done) { + switch(grammarID) { + case 1506: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetEnergyRequest)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVTargetEnergyRequest); + grammarID = 1507; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1507: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumEnergyRequest); + iso2AC_BidirectionalControlReqType->EVMaximumEnergyRequest_isUsed = 1u; + grammarID = 1508; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMinimumEnergyRequest); + iso2AC_BidirectionalControlReqType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 1509; + break; + case 2: + errn = decode_iso2DisplayParametersType(stream, &iso2AC_BidirectionalControlReqType->DisplayParameters); + iso2AC_BidirectionalControlReqType->DisplayParameters_isUsed = 1u; + grammarID = 1510; + break; + case 3: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso2AC_BidirectionalControlReqType->EVOperation = (iso2EVOperationType) uint32; + iso2AC_BidirectionalControlReqType->EVOperation_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1511; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumChargePower); + grammarID = 1512; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1508: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMinimumEnergyRequest); + iso2AC_BidirectionalControlReqType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 1509; + break; + case 1: + errn = decode_iso2DisplayParametersType(stream, &iso2AC_BidirectionalControlReqType->DisplayParameters); + iso2AC_BidirectionalControlReqType->DisplayParameters_isUsed = 1u; + grammarID = 1510; + break; + case 2: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso2AC_BidirectionalControlReqType->EVOperation = (iso2EVOperationType) uint32; + iso2AC_BidirectionalControlReqType->EVOperation_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1511; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumChargePower); + grammarID = 1512; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1509: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2DisplayParametersType(stream, &iso2AC_BidirectionalControlReqType->DisplayParameters); + iso2AC_BidirectionalControlReqType->DisplayParameters_isUsed = 1u; + grammarID = 1510; + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso2AC_BidirectionalControlReqType->EVOperation = (iso2EVOperationType) uint32; + iso2AC_BidirectionalControlReqType->EVOperation_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1511; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumChargePower); + grammarID = 1512; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1510: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso2AC_BidirectionalControlReqType->EVOperation = (iso2EVOperationType) uint32; + iso2AC_BidirectionalControlReqType->EVOperation_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1511; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumChargePower); + grammarID = 1512; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1511: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumChargePower); + grammarID = 1512; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1512: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumDischargePower); + iso2AC_BidirectionalControlReqType->EVMaximumDischargePower_isUsed = 1u; + grammarID = 1513; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumChargeCurrent); + grammarID = 1514; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1513: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumChargeCurrent); + grammarID = 1514; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1514: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumDischargeCurrent); + iso2AC_BidirectionalControlReqType->EVMaximumDischargeCurrent_isUsed = 1u; + grammarID = 1515; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMinimumChargeCurrent); + grammarID = 1516; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1515: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMinimumChargeCurrent); + grammarID = 1516; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1516: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVPresentActivePower)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMinimumDischargeCurrent); + iso2AC_BidirectionalControlReqType->EVMinimumDischargeCurrent_isUsed = 1u; + grammarID = 1517; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVPresentActivePower); + grammarID = 1518; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1517: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVPresentActivePower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVPresentActivePower); + grammarID = 1518; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1518: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVPresentReactivePower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVPresentReactivePower); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MV_EVSEFinePositioningParametersType', base type name='EVSEFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MagneticVectorList)', derivedBy='EXTENSION'. */ +static int decode_iso2MV_EVSEFinePositioningParametersType(bitstream_t* stream, struct iso2MV_EVSEFinePositioningParametersType* iso2MV_EVSEFinePositioningParametersType) { + int grammarID = 1519; + int done = 0; + + init_iso2MV_EVSEFinePositioningParametersType(iso2MV_EVSEFinePositioningParametersType); + + while(!done) { + switch(grammarID) { + case 1519: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorList)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2MagneticVectorListType(stream, &iso2MV_EVSEFinePositioningParametersType->MagneticVectorList); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ +static int decode_iso2ReferenceType(bitstream_t* stream, struct iso2ReferenceType* iso2ReferenceType) { + int grammarID = 1520; + int done = 0; + + init_iso2ReferenceType(iso2ReferenceType); + + while(!done) { + switch(grammarID) { + case 1520: + /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2ReferenceType->Id.charactersLen); + if (errn == 0) { + if (iso2ReferenceType->Id.charactersLen >= 2) { + iso2ReferenceType->Id.charactersLen = (uint16_t)(iso2ReferenceType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ReferenceType->Id.charactersLen, iso2ReferenceType->Id.characters, iso2ReferenceType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ReferenceType->Id_isUsed = 1u; + grammarID = 1521; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso2ReferenceType->Type.charactersLen); + if (errn == 0) { + if (iso2ReferenceType->Type.charactersLen >= 2) { + iso2ReferenceType->Type.charactersLen = (uint16_t)(iso2ReferenceType->Type.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ReferenceType->Type.charactersLen, iso2ReferenceType->Type.characters, iso2ReferenceType_Type_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ReferenceType->Type_isUsed = 1u; + grammarID = 1522; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso2ReferenceType->URI.charactersLen); + if (errn == 0) { + if (iso2ReferenceType->URI.charactersLen >= 2) { + iso2ReferenceType->URI.charactersLen = (uint16_t)(iso2ReferenceType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ReferenceType->URI.charactersLen, iso2ReferenceType->URI.characters, iso2ReferenceType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ReferenceType->URI_isUsed = 1u; + grammarID = 1523; + break; + case 3: + errn = decode_iso2TransformsType(stream, &iso2ReferenceType->Transforms); + iso2ReferenceType->Transforms_isUsed = 1u; + grammarID = 1524; + break; + case 4: + errn = decode_iso2DigestMethodType(stream, &iso2ReferenceType->DigestMethod); + grammarID = 1525; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1521: + /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2ReferenceType->Type.charactersLen); + if (errn == 0) { + if (iso2ReferenceType->Type.charactersLen >= 2) { + iso2ReferenceType->Type.charactersLen = (uint16_t)(iso2ReferenceType->Type.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ReferenceType->Type.charactersLen, iso2ReferenceType->Type.characters, iso2ReferenceType_Type_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ReferenceType->Type_isUsed = 1u; + grammarID = 1522; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso2ReferenceType->URI.charactersLen); + if (errn == 0) { + if (iso2ReferenceType->URI.charactersLen >= 2) { + iso2ReferenceType->URI.charactersLen = (uint16_t)(iso2ReferenceType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ReferenceType->URI.charactersLen, iso2ReferenceType->URI.characters, iso2ReferenceType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ReferenceType->URI_isUsed = 1u; + grammarID = 1523; + break; + case 2: + errn = decode_iso2TransformsType(stream, &iso2ReferenceType->Transforms); + iso2ReferenceType->Transforms_isUsed = 1u; + grammarID = 1524; + break; + case 3: + errn = decode_iso2DigestMethodType(stream, &iso2ReferenceType->DigestMethod); + grammarID = 1525; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1522: + /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2ReferenceType->URI.charactersLen); + if (errn == 0) { + if (iso2ReferenceType->URI.charactersLen >= 2) { + iso2ReferenceType->URI.charactersLen = (uint16_t)(iso2ReferenceType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ReferenceType->URI.charactersLen, iso2ReferenceType->URI.characters, iso2ReferenceType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ReferenceType->URI_isUsed = 1u; + grammarID = 1523; + break; + case 1: + errn = decode_iso2TransformsType(stream, &iso2ReferenceType->Transforms); + iso2ReferenceType->Transforms_isUsed = 1u; + grammarID = 1524; + break; + case 2: + errn = decode_iso2DigestMethodType(stream, &iso2ReferenceType->DigestMethod); + grammarID = 1525; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1523: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2TransformsType(stream, &iso2ReferenceType->Transforms); + iso2ReferenceType->Transforms_isUsed = 1u; + grammarID = 1524; + break; + case 1: + errn = decode_iso2DigestMethodType(stream, &iso2ReferenceType->DigestMethod); + grammarID = 1525; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1524: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2DigestMethodType(stream, &iso2ReferenceType->DigestMethod); + grammarID = 1525; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1525: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ReferenceType->DigestValue.bytesLen); + if (errn == 0) { + errn = (iso2ReferenceType->DigestValue.bytesLen) <= iso2ReferenceType_DigestValue_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2ReferenceType->DigestValue.bytesLen, iso2ReferenceType->DigestValue.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEEnergyTransferParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_iso2EVSEEnergyTransferParameterType(bitstream_t* stream, struct iso2EVSEEnergyTransferParameterType* iso2EVSEEnergyTransferParameterType) { + int grammarID = 674; + int done = 0; + + init_iso2EVSEEnergyTransferParameterType(iso2EVSEEnergyTransferParameterType); + + while(!done) { + switch(grammarID) { + case 674: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,MeteringReceiptReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":SessionID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo)', derivedBy='EXTENSION'. */ +static int decode_iso2MeteringReceiptReqType(bitstream_t* stream, struct iso2MeteringReceiptReqType* iso2MeteringReceiptReqType) { + int grammarID = 1526; + int done = 0; + + init_iso2MeteringReceiptReqType(iso2MeteringReceiptReqType); + + while(!done) { + switch(grammarID) { + case 1526: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgBody}Id)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2MeteringReceiptReqType->Id.charactersLen); + if (errn == 0) { + if (iso2MeteringReceiptReqType->Id.charactersLen >= 2) { + iso2MeteringReceiptReqType->Id.charactersLen = (uint16_t)(iso2MeteringReceiptReqType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2MeteringReceiptReqType->Id.charactersLen, iso2MeteringReceiptReqType->Id.characters, iso2MeteringReceiptReqType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 1527; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1527: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MeteringReceiptReqType->SessionID.bytesLen); + if (errn == 0) { + errn = (iso2MeteringReceiptReqType->SessionID.bytesLen) <= iso2MeteringReceiptReqType_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2MeteringReceiptReqType->SessionID.bytesLen, iso2MeteringReceiptReqType->SessionID.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1528; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1528: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2MeteringReceiptReqType->SAScheduleTupleID = (uint8_t)(uint32 + 1); + iso2MeteringReceiptReqType->SAScheduleTupleID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1529; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_iso2MeterInfoType(stream, &iso2MeteringReceiptReqType->MeterInfo); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1529: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2MeterInfoType(stream, &iso2MeteringReceiptReqType->MeterInfo); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */ +static int decode_iso2KeyValueType(bitstream_t* stream, struct iso2KeyValueType* iso2KeyValueType) { + int grammarID = 1530; + int done = 0; + + init_iso2KeyValueType(iso2KeyValueType); + + while(!done) { + switch(grammarID) { + case 1530: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2DSAKeyValueType(stream, &iso2KeyValueType->DSAKeyValue); + iso2KeyValueType->DSAKeyValue_isUsed = 1u; + grammarID = 1531; + break; + case 1: + errn = decode_iso2RSAKeyValueType(stream, &iso2KeyValueType->RSAKeyValue); + iso2KeyValueType->RSAKeyValue_isUsed = 1u; + grammarID = 1531; + break; + case 2: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 1531; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &iso2KeyValueType->ANY.charactersLen); + if (errn == 0) { + if (iso2KeyValueType->ANY.charactersLen >= 2) { + iso2KeyValueType->ANY.charactersLen = (uint16_t)(iso2KeyValueType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2KeyValueType->ANY.charactersLen, iso2KeyValueType->ANY.characters, iso2KeyValueType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2KeyValueType->ANY_isUsed = 1u; + grammarID = 1532; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1531: + /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso2KeyValueType->ANY.charactersLen); + if (errn == 0) { + if (iso2KeyValueType->ANY.charactersLen >= 2) { + iso2KeyValueType->ANY.charactersLen = (uint16_t)(iso2KeyValueType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2KeyValueType->ANY.charactersLen, iso2KeyValueType->ANY.characters, iso2KeyValueType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2KeyValueType->ANY_isUsed = 1u; + grammarID = 1531; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1532: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2DSAKeyValueType(stream, &iso2KeyValueType->DSAKeyValue); + iso2KeyValueType->DSAKeyValue_isUsed = 1u; + grammarID = 1531; + break; + case 1: + errn = decode_iso2RSAKeyValueType(stream, &iso2KeyValueType->RSAKeyValue); + iso2KeyValueType->RSAKeyValue_isUsed = 1u; + grammarID = 1531; + break; + case 2: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 1531; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &iso2KeyValueType->ANY.charactersLen); + if (errn == 0) { + if (iso2KeyValueType->ANY.charactersLen >= 2) { + iso2KeyValueType->ANY.charactersLen = (uint16_t)(iso2KeyValueType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2KeyValueType->ANY.charactersLen, iso2KeyValueType->ANY.characters, iso2KeyValueType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2KeyValueType->ANY_isUsed = 1u; + grammarID = 1532; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Sensor{1-255})', derivedBy='RESTRICTION'. */ +static int decode_iso2SensorListType(bitstream_t* stream, struct iso2SensorListType* iso2SensorListType) { + int grammarID = 1533; + int done = 0; + + init_iso2SensorListType(iso2SensorListType); + + while(!done) { + switch(grammarID) { + case 1533: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1534; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1534: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1535; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1535: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1536; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1536: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1537; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1537: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1538; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1538: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1539; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1539: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1540; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1540: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1541; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1541: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1542; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1542: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1543; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1543: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1544; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1544: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1545; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1545: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1546; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1546: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1547; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1547: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1548; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1548: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1549; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1549: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1550; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1550: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1551; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1551: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1552; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1552: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1553; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1553: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1554; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1554: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1555; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1555: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1556; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1556: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1557; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1557: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1558; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1558: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1559; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1559: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1560; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1560: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1561; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1561: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1562; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1562: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1563; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1563: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1564; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1564: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1565; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1565: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1566; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1566: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1567; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1567: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1568; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1568: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1569; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1569: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1570; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1570: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1571; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1571: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1572; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1572: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1573; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1573: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1574; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1574: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1575; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1575: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1576; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1576: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1577; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1577: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1578; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1578: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1579; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1579: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1580; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1580: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1581; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1581: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1582; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1582: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1583; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1583: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1584; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1584: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1585; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1585: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1586; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1586: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1587; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1587: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1588; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1588: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1589; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1589: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1590; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1590: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1591; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1591: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1592; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1592: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1593; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1593: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1594; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1594: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1595; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1595: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1596; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1596: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1597; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1597: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1598; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1598: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1599; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1599: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1600; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1600: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1601; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1601: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1602; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1602: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1603; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1603: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1604; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1604: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1605; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1605: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1606; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1606: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1607; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1607: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1608; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1608: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1609; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1609: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1610; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1610: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1611; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1611: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1612; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1612: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1613; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1613: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1614; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1614: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1615; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1615: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1616; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1616: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1617; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1617: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1618; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1618: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1619; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1619: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1620; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1620: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1621; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1621: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1622; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1622: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1623; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1623: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1624; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1624: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1625; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1625: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1626; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1626: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1627; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1627: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1628; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1628: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1629; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1629: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1630; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1630: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1631; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1631: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1632; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1632: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1633; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1633: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1634; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1634: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1635; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1635: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1636; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1636: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1637; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1637: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1638; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1638: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1639; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1639: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1640; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1640: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1641; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1641: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1642; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1642: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1643; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1643: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1644; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1644: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1645; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1645: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1646; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1646: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1647; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1647: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1648; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1648: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1649; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1649: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1650; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1650: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1651; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1651: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1652; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1652: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1653; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1653: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1654; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1654: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1655; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1655: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1656; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1656: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1657; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1657: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1658; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1658: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1659; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1659: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1660; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1660: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1661; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1661: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1662; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1662: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1663; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1663: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1664; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1664: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1665; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1665: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1666; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1666: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1667; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1667: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1668; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1668: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1669; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1669: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1670; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1670: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1671; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1671: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1672; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1672: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1673; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1673: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1674; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1674: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1675; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1675: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1676; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1676: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1677; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1677: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1678; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1678: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1679; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1679: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1680; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1680: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1681; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1681: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1682; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1682: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1683; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1683: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1684; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1684: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1685; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1685: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1686; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1686: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1687; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1687: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1688; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1688: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1689; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1689: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1690; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1690: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1691; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1691: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1692; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1692: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1693; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1693: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1694; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1694: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1695; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1695: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1696; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1696: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1697; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1697: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1698; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1698: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1699; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1699: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1700; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1700: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1701; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1701: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1702; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1702: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1703; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1703: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1704; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1704: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1705; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1705: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1706; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1706: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1707; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1707: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1708; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1708: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1709; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1709: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1710; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1710: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1711; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1711: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1712; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1712: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1713; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1713: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1714; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1714: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1715; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1715: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1716; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1716: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1717; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1717: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1718; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1718: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1719; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1719: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1720; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1720: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1721; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1721: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1722; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1722: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1723; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1723: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1724; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1724: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1725; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1725: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1726; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1726: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1727; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1727: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1728; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1728: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1729; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1729: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1730; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1730: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1731; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1731: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1732; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1732: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1733; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1733: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1734; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1734: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1735; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1735: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1736; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1736: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1737; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1737: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1738; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1738: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1739; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1739: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1740; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1740: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1741; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1741: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1742; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1742: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1743; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1743: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1744; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1744: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1745; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1745: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1746; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1746: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1747; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1747: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1748; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1748: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1749; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1749: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1750; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1750: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1751; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1751: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1752; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1752: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1753; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1753: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1754; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1754: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1755; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1755: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1756; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1756: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1757; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1757: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1758; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1758: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1759; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1759: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1760; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1760: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1761; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1761: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1762; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1762: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1763; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1763: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1764; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1764: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1765; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1765: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1766; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1766: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1767; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1767: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1768; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1768: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1769; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1769: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1770; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1770: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1771; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1771: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1772; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1772: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1773; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1773: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1774; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1774: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1775; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1775: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1776; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1776: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1777; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1777: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1778; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1778: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1779; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1779: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1780; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1780: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1781; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1781: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1782; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1782: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1783; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1783: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1784; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1784: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1785; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1785: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1786; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1786: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1787; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1787: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorListType->Sensor.arrayLen < iso2SensorListType_Sensor_ARRAY_SIZE) { + errn = decode_iso2SensorType(stream, &iso2SensorListType->Sensor.array[iso2SensorListType->Sensor.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CurrentDemandReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2016:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2016:MsgBody":EVMaximumCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumPower{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumVoltage{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2CurrentDemandReqType(bitstream_t* stream, struct iso2CurrentDemandReqType* iso2CurrentDemandReqType) { + int grammarID = 1788; + int done = 0; + + init_iso2CurrentDemandReqType(iso2CurrentDemandReqType); + + while(!done) { + switch(grammarID) { + case 1788: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetEnergyRequest)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVTargetEnergyRequest); + grammarID = 1789; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1789: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVMaximumEnergyRequest); + iso2CurrentDemandReqType->EVMaximumEnergyRequest_isUsed = 1u; + grammarID = 1790; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVMinimumEnergyRequest); + iso2CurrentDemandReqType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 1791; + break; + case 2: + errn = decode_iso2DisplayParametersType(stream, &iso2CurrentDemandReqType->DisplayParameters); + iso2CurrentDemandReqType->DisplayParameters_isUsed = 1u; + grammarID = 1792; + break; + case 3: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVTargetCurrent); + grammarID = 1793; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1790: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVMinimumEnergyRequest); + iso2CurrentDemandReqType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 1791; + break; + case 1: + errn = decode_iso2DisplayParametersType(stream, &iso2CurrentDemandReqType->DisplayParameters); + iso2CurrentDemandReqType->DisplayParameters_isUsed = 1u; + grammarID = 1792; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVTargetCurrent); + grammarID = 1793; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1791: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2DisplayParametersType(stream, &iso2CurrentDemandReqType->DisplayParameters); + iso2CurrentDemandReqType->DisplayParameters_isUsed = 1u; + grammarID = 1792; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVTargetCurrent); + grammarID = 1793; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1792: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVTargetCurrent); + grammarID = 1793; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1793: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVTargetVoltage); + grammarID = 1794; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1794: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumVoltage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVMaximumCurrent); + iso2CurrentDemandReqType->EVMaximumCurrent_isUsed = 1u; + grammarID = 1795; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVMaximumPower); + iso2CurrentDemandReqType->EVMaximumPower_isUsed = 1u; + grammarID = 1796; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVMaximumVoltage); + iso2CurrentDemandReqType->EVMaximumVoltage_isUsed = 1u; + grammarID = 3; + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1795: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumVoltage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVMaximumPower); + iso2CurrentDemandReqType->EVMaximumPower_isUsed = 1u; + grammarID = 1796; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVMaximumVoltage); + iso2CurrentDemandReqType->EVMaximumVoltage_isUsed = 1u; + grammarID = 3; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1796: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumVoltage), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVMaximumVoltage); + iso2CurrentDemandReqType->EVMaximumVoltage_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,FinePositioningSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":EVFinePositioningSetupParameters{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso2FinePositioningSetupReqType(bitstream_t* stream, struct iso2FinePositioningSetupReqType* iso2FinePositioningSetupReqType) { + int grammarID = 1797; + int done = 0; + + init_iso2FinePositioningSetupReqType(iso2FinePositioningSetupReqType); + + while(!done) { + switch(grammarID) { + case 1797: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningSetupParameters), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVFinePositioningSetupParametersType(stream, &iso2FinePositioningSetupReqType->EVFinePositioningSetupParameters); + iso2FinePositioningSetupReqType->EVFinePositioningSetupParameters_isUsed = 1u; + grammarID = 3; + break; + case 1: + errn = decode_iso2LFA_EVFinePositioningSetupParametersType(stream, &iso2FinePositioningSetupReqType->LFA_EVFinePositioningSetupParameters); + iso2FinePositioningSetupReqType->LFA_EVFinePositioningSetupParameters_isUsed = 1u; + grammarID = 3; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,LFA_EVFinePositioningSetupParametersType', base type name='EVFinePositioningSetupParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NumberOfSensors,"urn:iso:15118:2:2016:MsgDataTypes":SensorList,"urn:iso:15118:2:2016:MsgDataTypes":SensorOrder,"urn:iso:15118:2:2016:MsgDataTypes":SignalPulseDuration,"urn:iso:15118:2:2016:MsgDataTypes":SignalSeparationTime,"urn:iso:15118:2:2016:MsgDataTypes":PackageSeparationTime,"urn:iso:15118:2:2016:MsgDataTypes":AlignmentOffset)', derivedBy='EXTENSION'. */ +static int decode_iso2LFA_EVFinePositioningSetupParametersType(bitstream_t* stream, struct iso2LFA_EVFinePositioningSetupParametersType* iso2LFA_EVFinePositioningSetupParametersType) { + int grammarID = 1798; + int done = 0; + + init_iso2LFA_EVFinePositioningSetupParametersType(iso2LFA_EVFinePositioningSetupParametersType); + + while(!done) { + switch(grammarID) { + case 1798: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSensors)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2LFA_EVFinePositioningSetupParametersType->NumberOfSensors = (uint8_t)(uint32 + 0); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSensors) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1799; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1799: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorList)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2SensorListType(stream, &iso2LFA_EVFinePositioningSetupParametersType->SensorList); + grammarID = 1800; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1800: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorOrder)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2SensorOrderListType(stream, &iso2LFA_EVFinePositioningSetupParametersType->SensorOrder); + grammarID = 1801; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1801: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalPulseDuration)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2LFA_EVFinePositioningSetupParametersType->SignalPulseDuration = (uint8_t)(uint32 + 0); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalPulseDuration) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1802; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1802: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalSeparationTime)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2LFA_EVFinePositioningSetupParametersType->SignalSeparationTime = (uint8_t)(uint32 + 0); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalSeparationTime) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1803; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1803: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PackageSeparationTime)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2LFA_EVFinePositioningSetupParametersType->PackageSeparationTime = (uint8_t)(uint32 + 0); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PackageSeparationTime) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1804; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1804: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AlignmentOffset)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2LFA_EVFinePositioningSetupParametersType->AlignmentOffset); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AlignmentOffset) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SAScheduleTupleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2016:MsgDataTypes":PMaxSchedule,"urn:iso:15118:2:2016:MsgDataTypes":PMaxDischargeSchedule{0-1},"urn:iso:15118:2:2016:MsgDataTypes":SalesTariff{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BuyBackTariff{0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso2SAScheduleTupleType(bitstream_t* stream, struct iso2SAScheduleTupleType* iso2SAScheduleTupleType) { + int grammarID = 1805; + int done = 0; + + init_iso2SAScheduleTupleType(iso2SAScheduleTupleType); + + while(!done) { + switch(grammarID) { + case 1805: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleTupleID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SAScheduleTupleType->SAScheduleTupleID = (uint8_t)(uint32 + 1); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleTupleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1806; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1806: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxSchedule)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PMaxScheduleType(stream, &iso2SAScheduleTupleType->PMaxSchedule); + grammarID = 1807; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1807: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxDischargeSchedule), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BuyBackTariff), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PMaxScheduleType(stream, &iso2SAScheduleTupleType->PMaxDischargeSchedule); + iso2SAScheduleTupleType->PMaxDischargeSchedule_isUsed = 1u; + grammarID = 1808; + break; + case 1: + errn = decode_iso2SalesTariffType(stream, &iso2SAScheduleTupleType->SalesTariff); + iso2SAScheduleTupleType->SalesTariff_isUsed = 1u; + grammarID = 1809; + break; + case 2: + errn = decode_iso2SalesTariffType(stream, &iso2SAScheduleTupleType->BuyBackTariff); + iso2SAScheduleTupleType->BuyBackTariff_isUsed = 1u; + grammarID = 3; + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1808: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BuyBackTariff), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2SalesTariffType(stream, &iso2SAScheduleTupleType->SalesTariff); + iso2SAScheduleTupleType->SalesTariff_isUsed = 1u; + grammarID = 1809; + break; + case 1: + errn = decode_iso2SalesTariffType(stream, &iso2SAScheduleTupleType->BuyBackTariff); + iso2SAScheduleTupleType->BuyBackTariff_isUsed = 1u; + grammarID = 3; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1809: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BuyBackTariff), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2SalesTariffType(stream, &iso2SAScheduleTupleType->BuyBackTariff); + iso2SAScheduleTupleType->BuyBackTariff_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,WPT_EVSEChargeParameterType', base type name='EVSEEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumPower,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumPower)', derivedBy='EXTENSION'. */ +static int decode_iso2WPT_EVSEChargeParameterType(bitstream_t* stream, struct iso2WPT_EVSEChargeParameterType* iso2WPT_EVSEChargeParameterType) { + int grammarID = 1810; + int done = 0; + + init_iso2WPT_EVSEChargeParameterType(iso2WPT_EVSEChargeParameterType); + + while(!done) { + switch(grammarID) { + case 1810: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumPower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2WPT_EVSEChargeParameterType->EVSEMaximumPower); + grammarID = 1811; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1811: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumPower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2WPT_EVSEChargeParameterType->EVSEMinimumPower); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,FinePositioningResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgDataTypes":EVSEFinePositioningParameters{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2FinePositioningResType(bitstream_t* stream, struct iso2FinePositioningResType* iso2FinePositioningResType) { + int grammarID = 1812; + int done = 0; + + init_iso2FinePositioningResType(iso2FinePositioningResType); + + while(!done) { + switch(grammarID) { + case 1812: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2FinePositioningResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1813; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1813: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2FinePositioningResType->EVSEStatus); + iso2FinePositioningResType->EVSEStatus_isUsed = 1u; + grammarID = 1814; + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2FinePositioningResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1815; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1814: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2FinePositioningResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1815; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1815: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVSEFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningParameters), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEFinePositioningParametersType(stream, &iso2FinePositioningResType->EVSEFinePositioningParameters); + iso2FinePositioningResType->EVSEFinePositioningParameters_isUsed = 1u; + grammarID = 3; + break; + case 1: + errn = decode_iso2Generic_EVSEFinePositioningParametersType(stream, &iso2FinePositioningResType->Generic_EVSEFinePositioningParameters); + iso2FinePositioningResType->Generic_EVSEFinePositioningParameters_isUsed = 1u; + grammarID = 3; + break; + case 2: + errn = decode_iso2LFA_EVSEFinePositioningParametersType(stream, &iso2FinePositioningResType->LFA_EVSEFinePositioningParameters); + iso2FinePositioningResType->LFA_EVSEFinePositioningParameters_isUsed = 1u; + grammarID = 3; + break; + case 3: + errn = decode_iso2MV_EVSEFinePositioningParametersType(stream, &iso2FinePositioningResType->MV_EVSEFinePositioningParameters); + iso2FinePositioningResType->MV_EVSEFinePositioningParameters_isUsed = 1u; + grammarID = 3; + break; + case 4: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,BodyBaseType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_iso2BodyBaseType(bitstream_t* stream, struct iso2BodyBaseType* iso2BodyBaseType) { + int grammarID = 674; + int done = 0; + + init_iso2BodyBaseType(iso2BodyBaseType); + + while(!done) { + switch(grammarID) { + case 674: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ServiceDetailResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":ServiceID,"urn:iso:15118:2:2016:MsgBody":ServiceParameterList{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2ServiceDetailResType(bitstream_t* stream, struct iso2ServiceDetailResType* iso2ServiceDetailResType) { + int grammarID = 1816; + int done = 0; + + init_iso2ServiceDetailResType(iso2ServiceDetailResType); + + while(!done) { + switch(grammarID) { + case 1816: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2ServiceDetailResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1817; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1817: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceID)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2ServiceDetailResType->EVSEStatus); + iso2ServiceDetailResType->EVSEStatus_isUsed = 1u; + grammarID = 1818; + break; + case 1: + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ServiceDetailResType->ServiceID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1819; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1818: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ServiceDetailResType->ServiceID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1819; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1819: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceParameterList), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2ServiceParameterListType(stream, &iso2ServiceDetailResType->ServiceParameterList); + iso2ServiceDetailResType->ServiceParameterList_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PowerDeliveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ChargeProgress,"urn:iso:15118:2:2016:MsgBody":EVOperation{0-1},"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":ChargingProfile{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso2PowerDeliveryReqType(bitstream_t* stream, struct iso2PowerDeliveryReqType* iso2PowerDeliveryReqType) { + int grammarID = 1820; + int done = 0; + + init_iso2PowerDeliveryReqType(iso2PowerDeliveryReqType); + + while(!done) { + switch(grammarID) { + case 1820: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeProgress)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2PowerDeliveryReqType->ChargeProgress = (iso2chargeProgressType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeProgress) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1821; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1821: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingProfile), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso2PowerDeliveryReqType->EVOperation = (iso2EVOperationType) uint32; + iso2PowerDeliveryReqType->EVOperation_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1822; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2PowerDeliveryReqType->SAScheduleTupleID = (uint8_t)(uint32 + 1); + iso2PowerDeliveryReqType->SAScheduleTupleID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1823; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + errn = decode_iso2ChargingProfileType(stream, &iso2PowerDeliveryReqType->ChargingProfile); + iso2PowerDeliveryReqType->ChargingProfile_isUsed = 1u; + grammarID = 3; + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1822: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingProfile), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2PowerDeliveryReqType->SAScheduleTupleID = (uint8_t)(uint32 + 1); + iso2PowerDeliveryReqType->SAScheduleTupleID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1823; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_iso2ChargingProfileType(stream, &iso2PowerDeliveryReqType->ChargingProfile); + iso2PowerDeliveryReqType->ChargingProfile_isUsed = 1u; + grammarID = 3; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1823: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingProfile), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2ChargingProfileType(stream, &iso2PowerDeliveryReqType->ChargingProfile); + iso2PowerDeliveryReqType->ChargingProfile_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PairingResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":PairingParameters{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2PairingResType(bitstream_t* stream, struct iso2PairingResType* iso2PairingResType) { + int grammarID = 1824; + int done = 0; + + init_iso2PairingResType(iso2PairingResType); + + while(!done) { + switch(grammarID) { + case 1824: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2PairingResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1825; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1825: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2PairingResType->EVSEStatus); + iso2PairingResType->EVSEStatus_isUsed = 1u; + grammarID = 1826; + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2PairingResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1827; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1826: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2PairingResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1827; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1827: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingParameters), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2ParameterSetType(stream, &iso2PairingResType->PairingParameters); + iso2PairingResType->PairingParameters_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,AuthorizationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":GenChallenge{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso2AuthorizationReqType(bitstream_t* stream, struct iso2AuthorizationReqType* iso2AuthorizationReqType) { + int grammarID = 1828; + int done = 0; + + init_iso2AuthorizationReqType(iso2AuthorizationReqType); + + while(!done) { + switch(grammarID) { + case 1828: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}GenChallenge), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2AuthorizationReqType->Id.charactersLen); + if (errn == 0) { + if (iso2AuthorizationReqType->Id.charactersLen >= 2) { + iso2AuthorizationReqType->Id.charactersLen = (uint16_t)(iso2AuthorizationReqType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2AuthorizationReqType->Id.charactersLen, iso2AuthorizationReqType->Id.characters, iso2AuthorizationReqType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2AuthorizationReqType->Id_isUsed = 1u; + grammarID = 1829; + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2AuthorizationReqType->GenChallenge.bytesLen); + if (errn == 0) { + errn = (iso2AuthorizationReqType->GenChallenge.bytesLen) <= iso2AuthorizationReqType_GenChallenge_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2AuthorizationReqType->GenChallenge.bytesLen, iso2AuthorizationReqType->GenChallenge.bytes); + } + iso2AuthorizationReqType->GenChallenge_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}GenChallenge) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1829: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}GenChallenge), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2AuthorizationReqType->GenChallenge.bytesLen); + if (errn == 0) { + errn = (iso2AuthorizationReqType->GenChallenge.bytesLen) <= iso2AuthorizationReqType_GenChallenge_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2AuthorizationReqType->GenChallenge.bytesLen, iso2AuthorizationReqType->GenChallenge.bytes); + } + iso2AuthorizationReqType->GenChallenge_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}GenChallenge) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2016:MsgDataTypes":Parameter{1-16})', derivedBy='RESTRICTION'. */ +static int decode_iso2ParameterSetType(bitstream_t* stream, struct iso2ParameterSetType* iso2ParameterSetType) { + int grammarID = 1830; + int done = 0; + + init_iso2ParameterSetType(iso2ParameterSetType); + + while(!done) { + switch(grammarID) { + case 1830: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSetID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ParameterSetType->ParameterSetID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSetID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1831; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1831: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ParameterSetType->Parameter.arrayLen < iso2ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array[iso2ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1832; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1832: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ParameterSetType->Parameter.arrayLen < iso2ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array[iso2ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1833; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1833: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ParameterSetType->Parameter.arrayLen < iso2ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array[iso2ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1834; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1834: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ParameterSetType->Parameter.arrayLen < iso2ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array[iso2ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1835; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1835: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ParameterSetType->Parameter.arrayLen < iso2ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array[iso2ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1836; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1836: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ParameterSetType->Parameter.arrayLen < iso2ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array[iso2ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1837; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1837: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ParameterSetType->Parameter.arrayLen < iso2ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array[iso2ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1838; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1838: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ParameterSetType->Parameter.arrayLen < iso2ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array[iso2ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1839; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1839: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ParameterSetType->Parameter.arrayLen < iso2ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array[iso2ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1840; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1840: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ParameterSetType->Parameter.arrayLen < iso2ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array[iso2ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1841; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1841: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ParameterSetType->Parameter.arrayLen < iso2ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array[iso2ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1842; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1842: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ParameterSetType->Parameter.arrayLen < iso2ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array[iso2ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1843; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1843: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ParameterSetType->Parameter.arrayLen < iso2ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array[iso2ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1844; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1844: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ParameterSetType->Parameter.arrayLen < iso2ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array[iso2ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1845; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1845: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ParameterSetType->Parameter.arrayLen < iso2ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array[iso2ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1846; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1846: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ParameterSetType->Parameter.arrayLen < iso2ParameterSetType_Parameter_ARRAY_SIZE) { + errn = decode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array[iso2ParameterSetType->Parameter.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_iso2SPKIDataType(bitstream_t* stream, struct iso2SPKIDataType* iso2SPKIDataType) { + int grammarID = 1847; + int done = 0; + + init_iso2SPKIDataType(iso2SPKIDataType); + + while(!done) { + switch(grammarID) { + case 1847: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SPKIDataType->SPKISexp.arrayLen < iso2SPKIDataType_SPKISexp_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType->SPKISexp.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType->SPKISexp.arrayLen].bytesLen) <= iso2SPKIDataType_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType->SPKISexp.arrayLen].bytesLen, iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType->SPKISexp.arrayLen].bytes); + } + iso2SPKIDataType->SPKISexp.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1848; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1848: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SPKIDataType->SPKISexp.arrayLen < iso2SPKIDataType_SPKISexp_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType->SPKISexp.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType->SPKISexp.arrayLen].bytesLen) <= iso2SPKIDataType_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType->SPKISexp.arrayLen].bytesLen, iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType->SPKISexp.arrayLen].bytes); + } + iso2SPKIDataType->SPKISexp.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1848; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 1849; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1849: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SPKIDataType->SPKISexp.arrayLen < iso2SPKIDataType_SPKISexp_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType->SPKISexp.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType->SPKISexp.arrayLen].bytesLen) <= iso2SPKIDataType_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType->SPKISexp.arrayLen].bytesLen, iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType->SPKISexp.arrayLen].bytes); + } + iso2SPKIDataType->SPKISexp.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1848; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PaymentDetailsResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":GenChallenge,"urn:iso:15118:2:2016:MsgBody":EVSETimeStamp))', derivedBy='EXTENSION'. */ +static int decode_iso2PaymentDetailsResType(bitstream_t* stream, struct iso2PaymentDetailsResType* iso2PaymentDetailsResType) { + int grammarID = 1850; + int done = 0; + + init_iso2PaymentDetailsResType(iso2PaymentDetailsResType); + + while(!done) { + switch(grammarID) { + case 1850: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2PaymentDetailsResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1851; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1851: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}GenChallenge)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2PaymentDetailsResType->EVSEStatus); + iso2PaymentDetailsResType->EVSEStatus_isUsed = 1u; + grammarID = 1852; + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2PaymentDetailsResType->GenChallenge.bytesLen); + if (errn == 0) { + errn = (iso2PaymentDetailsResType->GenChallenge.bytesLen) <= iso2PaymentDetailsResType_GenChallenge_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2PaymentDetailsResType->GenChallenge.bytesLen, iso2PaymentDetailsResType->GenChallenge.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}GenChallenge) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1853; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1852: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}GenChallenge)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2PaymentDetailsResType->GenChallenge.bytesLen); + if (errn == 0) { + errn = (iso2PaymentDetailsResType->GenChallenge.bytesLen) <= iso2PaymentDetailsResType_GenChallenge_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2PaymentDetailsResType->GenChallenge.bytesLen, iso2PaymentDetailsResType->GenChallenge.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}GenChallenge) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1853; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1853: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETimeStamp)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &iso2PaymentDetailsResType->EVSETimeStamp); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETimeStamp) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso2SignatureMethodType(bitstream_t* stream, struct iso2SignatureMethodType* iso2SignatureMethodType) { + int grammarID = 1854; + int done = 0; + + init_iso2SignatureMethodType(iso2SignatureMethodType); + + while(!done) { + switch(grammarID) { + case 1854: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2SignatureMethodType->Algorithm.charactersLen); + if (errn == 0) { + if (iso2SignatureMethodType->Algorithm.charactersLen >= 2) { + iso2SignatureMethodType->Algorithm.charactersLen = (uint16_t)(iso2SignatureMethodType->Algorithm.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2SignatureMethodType->Algorithm.charactersLen, iso2SignatureMethodType->Algorithm.characters, iso2SignatureMethodType_Algorithm_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 1855; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1855: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &iso2SignatureMethodType->HMACOutputLength); + iso2SignatureMethodType->HMACOutputLength_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 685; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 685; + break; + case 2: + done = 1; + grammarID = 4; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &iso2SignatureMethodType->ANY.charactersLen); + if (errn == 0) { + if (iso2SignatureMethodType->ANY.charactersLen >= 2) { + iso2SignatureMethodType->ANY.charactersLen = (uint16_t)(iso2SignatureMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2SignatureMethodType->ANY.charactersLen, iso2SignatureMethodType->ANY.characters, iso2SignatureMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2SignatureMethodType->ANY_isUsed = 1u; + grammarID = 1856; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 685: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 685; + break; + case 1: + done = 1; + grammarID = 4; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso2SignatureMethodType->ANY.charactersLen); + if (errn == 0) { + if (iso2SignatureMethodType->ANY.charactersLen >= 2) { + iso2SignatureMethodType->ANY.charactersLen = (uint16_t)(iso2SignatureMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2SignatureMethodType->ANY.charactersLen, iso2SignatureMethodType->ANY.characters, iso2SignatureMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2SignatureMethodType->ANY_isUsed = 1u; + grammarID = 685; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1856: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &iso2SignatureMethodType->HMACOutputLength); + iso2SignatureMethodType->HMACOutputLength_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 685; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 685; + break; + case 2: + done = 1; + grammarID = 4; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &iso2SignatureMethodType->ANY.charactersLen); + if (errn == 0) { + if (iso2SignatureMethodType->ANY.charactersLen >= 2) { + iso2SignatureMethodType->ANY.charactersLen = (uint16_t)(iso2SignatureMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2SignatureMethodType->ANY.charactersLen, iso2SignatureMethodType->ANY.characters, iso2SignatureMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2SignatureMethodType->ANY_isUsed = 1u; + grammarID = 1856; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,AC_BidirectionalControlResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":EVSETargetPower,"urn:iso:15118:2:2016:MsgBody":EVSETargetReactivePower,"urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2AC_BidirectionalControlResType(bitstream_t* stream, struct iso2AC_BidirectionalControlResType* iso2AC_BidirectionalControlResType) { + int grammarID = 1857; + int done = 0; + + init_iso2AC_BidirectionalControlResType(iso2AC_BidirectionalControlResType); + + while(!done) { + switch(grammarID) { + case 1857: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2AC_BidirectionalControlResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1858; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1858: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2AC_BidirectionalControlResType->EVSEStatus); + iso2AC_BidirectionalControlResType->EVSEStatus_isUsed = 1u; + grammarID = 1859; + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2AC_BidirectionalControlResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1860; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1859: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2AC_BidirectionalControlResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1860; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1860: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetPower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlResType->EVSETargetPower); + grammarID = 1861; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1861: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetReactivePower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlResType->EVSETargetReactivePower); + grammarID = 27; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 27: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2AC_BidirectionalControlResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso2AC_BidirectionalControlResType->EVSEID.charactersLen >= 2) { + iso2AC_BidirectionalControlResType->EVSEID.charactersLen = (uint16_t)(iso2AC_BidirectionalControlResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2AC_BidirectionalControlResType->EVSEID.charactersLen, iso2AC_BidirectionalControlResType->EVSEID.characters, iso2AC_BidirectionalControlResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 28; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 28: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2AC_BidirectionalControlResType->SAScheduleTupleID = (uint8_t)(uint32 + 1); + iso2AC_BidirectionalControlResType->SAScheduleTupleID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 29; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_iso2MeterInfoType(stream, &iso2AC_BidirectionalControlResType->MeterInfo); + iso2AC_BidirectionalControlResType->MeterInfo_isUsed = 1u; + grammarID = 30; + break; + case 2: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2AC_BidirectionalControlResType->ReceiptRequired); + iso2AC_BidirectionalControlResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 29: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2MeterInfoType(stream, &iso2AC_BidirectionalControlResType->MeterInfo); + iso2AC_BidirectionalControlResType->MeterInfo_isUsed = 1u; + grammarID = 30; + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2AC_BidirectionalControlResType->ReceiptRequired); + iso2AC_BidirectionalControlResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 30: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2AC_BidirectionalControlResType->ReceiptRequired); + iso2AC_BidirectionalControlResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,VehicleCheckOutReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVCheckOutStatus,"urn:iso:15118:2:2016:MsgBody":CheckOutTime)', derivedBy='EXTENSION'. */ +static int decode_iso2VehicleCheckOutReqType(bitstream_t* stream, struct iso2VehicleCheckOutReqType* iso2VehicleCheckOutReqType) { + int grammarID = 1862; + int done = 0; + + init_iso2VehicleCheckOutReqType(iso2VehicleCheckOutReqType); + + while(!done) { + switch(grammarID) { + case 1862: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCheckOutStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2VehicleCheckOutReqType->EVCheckOutStatus = (iso2EVCheckOutStatusType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCheckOutStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1863; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1863: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CheckOutTime)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger64(stream, &iso2VehicleCheckOutReqType->CheckOutTime); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CheckOutTime) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,WeldingDetectionReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int decode_iso2WeldingDetectionReqType(bitstream_t* stream, struct iso2WeldingDetectionReqType* iso2WeldingDetectionReqType) { + int grammarID = 674; + int done = 0; + + init_iso2WeldingDetectionReqType(iso2WeldingDetectionReqType); + + while(!done) { + switch(grammarID) { + case 674: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,AlignmentCheckResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":AlignmentCheckParameters{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2AlignmentCheckResType(bitstream_t* stream, struct iso2AlignmentCheckResType* iso2AlignmentCheckResType) { + int grammarID = 1864; + int done = 0; + + init_iso2AlignmentCheckResType(iso2AlignmentCheckResType); + + while(!done) { + switch(grammarID) { + case 1864: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2AlignmentCheckResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1865; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1865: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2AlignmentCheckResType->EVSEStatus); + iso2AlignmentCheckResType->EVSEStatus_isUsed = 1u; + grammarID = 1866; + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2AlignmentCheckResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 676; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1866: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2AlignmentCheckResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 676; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 676: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckParameters), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2ParameterSetType(stream, &iso2AlignmentCheckResType->AlignmentCheckParameters); + iso2AlignmentCheckResType->AlignmentCheckParameters_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PowerDemandReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVTargetPower,"urn:iso:15118:2:2016:MsgBody":EVInputPower,"urn:iso:15118:2:2016:MsgBody":PowerDemandParameters{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2PowerDemandReqType(bitstream_t* stream, struct iso2PowerDemandReqType* iso2PowerDemandReqType) { + int grammarID = 1867; + int done = 0; + + init_iso2PowerDemandReqType(iso2PowerDemandReqType); + + while(!done) { + switch(grammarID) { + case 1867: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetEnergyRequest)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2PowerDemandReqType->EVTargetEnergyRequest); + grammarID = 1868; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1868: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetPower)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2PowerDemandReqType->EVMaximumEnergyRequest); + iso2PowerDemandReqType->EVMaximumEnergyRequest_isUsed = 1u; + grammarID = 1869; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2PowerDemandReqType->EVMinimumEnergyRequest); + iso2PowerDemandReqType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 1870; + break; + case 2: + errn = decode_iso2DisplayParametersType(stream, &iso2PowerDemandReqType->DisplayParameters); + iso2PowerDemandReqType->DisplayParameters_isUsed = 1u; + grammarID = 1871; + break; + case 3: + errn = decode_iso2PhysicalValueType(stream, &iso2PowerDemandReqType->EVTargetPower); + grammarID = 1872; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1869: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetPower)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2PowerDemandReqType->EVMinimumEnergyRequest); + iso2PowerDemandReqType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 1870; + break; + case 1: + errn = decode_iso2DisplayParametersType(stream, &iso2PowerDemandReqType->DisplayParameters); + iso2PowerDemandReqType->DisplayParameters_isUsed = 1u; + grammarID = 1871; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2PowerDemandReqType->EVTargetPower); + grammarID = 1872; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1870: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetPower)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2DisplayParametersType(stream, &iso2PowerDemandReqType->DisplayParameters); + iso2PowerDemandReqType->DisplayParameters_isUsed = 1u; + grammarID = 1871; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2PowerDemandReqType->EVTargetPower); + grammarID = 1872; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1871: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetPower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2PowerDemandReqType->EVTargetPower); + grammarID = 1872; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1872: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVInputPower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2PowerDemandReqType->EVInputPower); + grammarID = 1873; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1873: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandParameters), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2ParameterSetType(stream, &iso2PowerDemandReqType->PowerDemandParameters); + iso2PowerDemandReqType->PowerDemandParameters_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MinimumPMaxRequestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MinimumPMaxScheduleEntry{1-3})', derivedBy='RESTRICTION'. */ +static int decode_iso2MinimumPMaxRequestType(bitstream_t* stream, struct iso2MinimumPMaxRequestType* iso2MinimumPMaxRequestType) { + int grammarID = 1874; + int done = 0; + + init_iso2MinimumPMaxRequestType(iso2MinimumPMaxRequestType); + + while(!done) { + switch(grammarID) { + case 1874: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumPMaxScheduleEntry)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MinimumPMaxRequestType->MinimumPMaxScheduleEntry.arrayLen < iso2MinimumPMaxRequestType_MinimumPMaxScheduleEntry_ARRAY_SIZE) { + errn = decode_iso2PMaxScheduleEntryType(stream, &iso2MinimumPMaxRequestType->MinimumPMaxScheduleEntry.array[iso2MinimumPMaxRequestType->MinimumPMaxScheduleEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1875; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1875: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumPMaxScheduleEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MinimumPMaxRequestType->MinimumPMaxScheduleEntry.arrayLen < iso2MinimumPMaxRequestType_MinimumPMaxScheduleEntry_ARRAY_SIZE) { + errn = decode_iso2PMaxScheduleEntryType(stream, &iso2MinimumPMaxRequestType->MinimumPMaxScheduleEntry.array[iso2MinimumPMaxRequestType->MinimumPMaxScheduleEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1876; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1876: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumPMaxScheduleEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MinimumPMaxRequestType->MinimumPMaxScheduleEntry.arrayLen < iso2MinimumPMaxRequestType_MinimumPMaxScheduleEntry_ARRAY_SIZE) { + errn = decode_iso2PMaxScheduleEntryType(stream, &iso2MinimumPMaxRequestType->MinimumPMaxScheduleEntry.array[iso2MinimumPMaxRequestType->MinimumPMaxScheduleEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,DisconnectChargingDeviceResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":EVSEElectricalChargingDeviceStatus,"urn:iso:15118:2:2016:MsgBody":EVSEMechanicalChargingDeviceStatus))', derivedBy='EXTENSION'. */ +static int decode_iso2DisconnectChargingDeviceResType(bitstream_t* stream, struct iso2DisconnectChargingDeviceResType* iso2DisconnectChargingDeviceResType) { + int grammarID = 591; + int done = 0; + + init_iso2DisconnectChargingDeviceResType(iso2DisconnectChargingDeviceResType); + + while(!done) { + switch(grammarID) { + case 591: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2DisconnectChargingDeviceResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 592; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 592: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2DisconnectChargingDeviceResType->EVSEStatus); + iso2DisconnectChargingDeviceResType->EVSEStatus_isUsed = 1u; + grammarID = 593; + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2DisconnectChargingDeviceResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 594; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 593: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2DisconnectChargingDeviceResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 594; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 594: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEElectricalChargingDeviceStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso2DisconnectChargingDeviceResType->EVSEElectricalChargingDeviceStatus = (iso2electricalChargingDeviceStatusType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEElectricalChargingDeviceStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 595; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 595: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMechanicalChargingDeviceStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2DisconnectChargingDeviceResType->EVSEMechanicalChargingDeviceStatus = (iso2mechanicalChargingDeviceStatusType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMechanicalChargingDeviceStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,SessionSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVCCID)', derivedBy='EXTENSION'. */ +static int decode_iso2SessionSetupReqType(bitstream_t* stream, struct iso2SessionSetupReqType* iso2SessionSetupReqType) { + int grammarID = 1877; + int done = 0; + + init_iso2SessionSetupReqType(iso2SessionSetupReqType); + + while(!done) { + switch(grammarID) { + case 1877: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCCID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2SessionSetupReqType->EVCCID.bytesLen); + if (errn == 0) { + errn = (iso2SessionSetupReqType->EVCCID.bytesLen) <= iso2SessionSetupReqType_EVCCID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2SessionSetupReqType->EVCCID.bytesLen, iso2SessionSetupReqType->EVCCID.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCCID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PaymentDetailsReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":eMAID,"urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain)', derivedBy='EXTENSION'. */ +static int decode_iso2PaymentDetailsReqType(bitstream_t* stream, struct iso2PaymentDetailsReqType* iso2PaymentDetailsReqType) { + int grammarID = 1878; + int done = 0; + + init_iso2PaymentDetailsReqType(iso2PaymentDetailsReqType); + + while(!done) { + switch(grammarID) { + case 1878: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}eMAID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2PaymentDetailsReqType->eMAID.charactersLen); + if (errn == 0) { + if (iso2PaymentDetailsReqType->eMAID.charactersLen >= 2) { + iso2PaymentDetailsReqType->eMAID.charactersLen = (uint16_t)(iso2PaymentDetailsReqType->eMAID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2PaymentDetailsReqType->eMAID.charactersLen, iso2PaymentDetailsReqType->eMAID.characters, iso2PaymentDetailsReqType_eMAID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}eMAID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1879; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1879: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureCertChain)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2CertificateChainType(stream, &iso2PaymentDetailsReqType->ContractSignatureCertChain); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,Generic_EVFinePositioningParametersType', base type name='EVFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":GenericParameters)', derivedBy='EXTENSION'. */ +static int decode_iso2Generic_EVFinePositioningParametersType(bitstream_t* stream, struct iso2Generic_EVFinePositioningParametersType* iso2Generic_EVFinePositioningParametersType) { + int grammarID = 1880; + int done = 0; + + init_iso2Generic_EVFinePositioningParametersType(iso2Generic_EVFinePositioningParametersType); + + while(!done) { + switch(grammarID) { + case 1880: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}GenericParameters)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2ParameterSetType(stream, &iso2Generic_EVFinePositioningParametersType->GenericParameters); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ConnectChargingDeviceReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVElectricalChargingDeviceStatus,"urn:iso:15118:2:2016:MsgBody":EVMechanicalChargingDeviceStatus)', derivedBy='EXTENSION'. */ +static int decode_iso2ConnectChargingDeviceReqType(bitstream_t* stream, struct iso2ConnectChargingDeviceReqType* iso2ConnectChargingDeviceReqType) { + int grammarID = 1496; + int done = 0; + + init_iso2ConnectChargingDeviceReqType(iso2ConnectChargingDeviceReqType); + + while(!done) { + switch(grammarID) { + case 1496: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVElectricalChargingDeviceStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso2ConnectChargingDeviceReqType->EVElectricalChargingDeviceStatus = (iso2electricalChargingDeviceStatusType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVElectricalChargingDeviceStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1497; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1497: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMechanicalChargingDeviceStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2ConnectChargingDeviceReqType->EVMechanicalChargingDeviceStatus = (iso2mechanicalChargingDeviceStatusType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMechanicalChargingDeviceStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,AC_EVSEChargeParameterType', base type name='EVSEEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalFrequency)', derivedBy='EXTENSION'. */ +static int decode_iso2AC_EVSEChargeParameterType(bitstream_t* stream, struct iso2AC_EVSEChargeParameterType* iso2AC_EVSEChargeParameterType) { + int grammarID = 1881; + int done = 0; + + init_iso2AC_EVSEChargeParameterType(iso2AC_EVSEChargeParameterType); + + while(!done) { + switch(grammarID) { + case 1881: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVSEChargeParameterType->EVSEMaximumChargeCurrent); + grammarID = 1882; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1882: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENominalVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVSEChargeParameterType->EVSENominalVoltage); + grammarID = 58; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 58: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENominalFrequency)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2AC_EVSEChargeParameterType->EVSENominalFrequency); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SalesTariffEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":RelativeTimeInterval),("urn:iso:15118:2:2016:MsgDataTypes":EPriceLevel{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ConsumptionCost{0-3}))', derivedBy='EXTENSION'. */ +static int decode_iso2SalesTariffEntryType(bitstream_t* stream, struct iso2SalesTariffEntryType* iso2SalesTariffEntryType) { + int grammarID = 1883; + int done = 0; + + init_iso2SalesTariffEntryType(iso2SalesTariffEntryType); + + while(!done) { + switch(grammarID) { + case 1883: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RelativeTimeInterval)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2RelativeTimeIntervalType(stream, &iso2SalesTariffEntryType->RelativeTimeInterval); + grammarID = 1884; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1884: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SalesTariffEntryType->EPriceLevel = (uint8_t)(uint32 + 0); + iso2SalesTariffEntryType->EPriceLevel_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EPriceLevel) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1885; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + if (iso2SalesTariffEntryType->ConsumptionCost.arrayLen < iso2SalesTariffEntryType_ConsumptionCost_ARRAY_SIZE) { + errn = decode_iso2ConsumptionCostType(stream, &iso2SalesTariffEntryType->ConsumptionCost.array[iso2SalesTariffEntryType->ConsumptionCost.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1886; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1885: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SalesTariffEntryType->ConsumptionCost.arrayLen < iso2SalesTariffEntryType_ConsumptionCost_ARRAY_SIZE) { + errn = decode_iso2ConsumptionCostType(stream, &iso2SalesTariffEntryType->ConsumptionCost.array[iso2SalesTariffEntryType->ConsumptionCost.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1886; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1886: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SalesTariffEntryType->ConsumptionCost.arrayLen < iso2SalesTariffEntryType_ConsumptionCost_ARRAY_SIZE) { + errn = decode_iso2ConsumptionCostType(stream, &iso2SalesTariffEntryType->ConsumptionCost.array[iso2SalesTariffEntryType->ConsumptionCost.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1887; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1887: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SalesTariffEntryType->ConsumptionCost.arrayLen < iso2SalesTariffEntryType_ConsumptionCost_ARRAY_SIZE) { + errn = decode_iso2ConsumptionCostType(stream, &iso2SalesTariffEntryType->ConsumptionCost.array[iso2SalesTariffEntryType->ConsumptionCost.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DC_EVSEBidirectionalParameterType', base type name='DC_EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2016:MsgDataTypes":EVSEEnergyToBeDelivered{0-1}),("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumDischargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumDischargeCurrent))', derivedBy='EXTENSION'. */ +static int decode_iso2DC_EVSEBidirectionalParameterType(bitstream_t* stream, struct iso2DC_EVSEBidirectionalParameterType* iso2DC_EVSEBidirectionalParameterType) { + int grammarID = 1888; + int done = 0; + + init_iso2DC_EVSEBidirectionalParameterType(iso2DC_EVSEBidirectionalParameterType); + + while(!done) { + switch(grammarID) { + case 1888: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargePower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEMaximumChargePower); + grammarID = 1889; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1889: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEMaximumChargeCurrent); + grammarID = 1890; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1890: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEMinimumChargeCurrent); + grammarID = 1891; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1891: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEMaximumVoltage); + grammarID = 1892; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1892: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEMinimumVoltage); + grammarID = 1893; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1893: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEPeakCurrentRipple)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSECurrentRegulationTolerance); + iso2DC_EVSEBidirectionalParameterType->EVSECurrentRegulationTolerance_isUsed = 1u; + grammarID = 1894; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEPeakCurrentRipple); + grammarID = 1895; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1894: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEPeakCurrentRipple)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEPeakCurrentRipple); + grammarID = 1895; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1895: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumDischargePower)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEEnergyToBeDelivered); + iso2DC_EVSEBidirectionalParameterType->EVSEEnergyToBeDelivered_isUsed = 1u; + grammarID = 1896; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEMaximumDischargePower); + grammarID = 1897; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1896: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumDischargePower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEMaximumDischargePower); + grammarID = 1897; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1897: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumDischargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEMaximumDischargeCurrent); + grammarID = 1898; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1898: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumDischargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEMinimumDischargeCurrent); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso2CanonicalizationMethodType(bitstream_t* stream, struct iso2CanonicalizationMethodType* iso2CanonicalizationMethodType) { + int grammarID = 1899; + int done = 0; + + init_iso2CanonicalizationMethodType(iso2CanonicalizationMethodType); + + while(!done) { + switch(grammarID) { + case 1899: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2CanonicalizationMethodType->Algorithm.charactersLen); + if (errn == 0) { + if (iso2CanonicalizationMethodType->Algorithm.charactersLen >= 2) { + iso2CanonicalizationMethodType->Algorithm.charactersLen = (uint16_t)(iso2CanonicalizationMethodType->Algorithm.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2CanonicalizationMethodType->Algorithm.charactersLen, iso2CanonicalizationMethodType->Algorithm.characters, iso2CanonicalizationMethodType_Algorithm_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 684; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 684: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 685; + break; + case 1: + done = 1; + grammarID = 4; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso2CanonicalizationMethodType->ANY.charactersLen); + if (errn == 0) { + if (iso2CanonicalizationMethodType->ANY.charactersLen >= 2) { + iso2CanonicalizationMethodType->ANY.charactersLen = (uint16_t)(iso2CanonicalizationMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2CanonicalizationMethodType->ANY.charactersLen, iso2CanonicalizationMethodType->ANY.characters, iso2CanonicalizationMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2CanonicalizationMethodType->ANY_isUsed = 1u; + grammarID = 685; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 685: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 685; + break; + case 1: + done = 1; + grammarID = 4; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso2CanonicalizationMethodType->ANY.charactersLen); + if (errn == 0) { + if (iso2CanonicalizationMethodType->ANY.charactersLen >= 2) { + iso2CanonicalizationMethodType->ANY.charactersLen = (uint16_t)(iso2CanonicalizationMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2CanonicalizationMethodType->ANY.charactersLen, iso2CanonicalizationMethodType->ANY.characters, iso2CanonicalizationMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2CanonicalizationMethodType->ANY_isUsed = 1u; + grammarID = 685; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DisplayParametersType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":CurrentRange{0-1},"urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MinimumSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ChargingPerformance{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToTargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToBulkSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToMinimumSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ChargingComplete{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2016:MsgDataTypes":InletHot{0-1})', derivedBy='RESTRICTION'. */ +static int decode_iso2DisplayParametersType(bitstream_t* stream, struct iso2DisplayParametersType* iso2DisplayParametersType) { + int grammarID = 1900; + int done = 0; + + init_iso2DisplayParametersType(iso2DisplayParametersType); + + while(!done) { + switch(grammarID) { + case 1900: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentRange), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingPerformance), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2DisplayParametersType->CurrentRange); + iso2DisplayParametersType->CurrentRange_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentRange) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1901; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->CurrentSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->CurrentSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1902; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->TargetSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->TargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1903; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->BulkSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1904; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->MinimumSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->MinimumSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1905; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + errn = decode_iso2PhysicalValueType(stream, &iso2DisplayParametersType->ChargingPerformance); + iso2DisplayParametersType->ChargingPerformance_isUsed = 1u; + grammarID = 1906; + break; + case 6: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToTargetSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToTargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1907; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 7: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToBulkSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToBulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1908; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 8: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToMinimumSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1909; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 9: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->ChargingComplete); + iso2DisplayParametersType->ChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1910; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 10: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->BulkChargingComplete); + iso2DisplayParametersType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1911; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 11: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->InletHot); + iso2DisplayParametersType->InletHot_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 12: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1901: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingPerformance), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->CurrentSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->CurrentSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1902; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->TargetSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->TargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1903; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->BulkSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1904; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->MinimumSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->MinimumSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1905; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + errn = decode_iso2PhysicalValueType(stream, &iso2DisplayParametersType->ChargingPerformance); + iso2DisplayParametersType->ChargingPerformance_isUsed = 1u; + grammarID = 1906; + break; + case 5: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToTargetSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToTargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1907; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 6: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToBulkSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToBulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1908; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 7: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToMinimumSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1909; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 8: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->ChargingComplete); + iso2DisplayParametersType->ChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1910; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 9: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->BulkChargingComplete); + iso2DisplayParametersType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1911; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 10: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->InletHot); + iso2DisplayParametersType->InletHot_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 11: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1902: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingPerformance), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->TargetSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->TargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1903; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->BulkSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1904; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->MinimumSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->MinimumSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1905; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + errn = decode_iso2PhysicalValueType(stream, &iso2DisplayParametersType->ChargingPerformance); + iso2DisplayParametersType->ChargingPerformance_isUsed = 1u; + grammarID = 1906; + break; + case 4: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToTargetSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToTargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1907; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToBulkSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToBulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1908; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 6: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToMinimumSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1909; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 7: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->ChargingComplete); + iso2DisplayParametersType->ChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1910; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 8: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->BulkChargingComplete); + iso2DisplayParametersType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1911; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 9: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->InletHot); + iso2DisplayParametersType->InletHot_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 10: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1903: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingPerformance), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->BulkSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1904; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->MinimumSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->MinimumSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1905; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2DisplayParametersType->ChargingPerformance); + iso2DisplayParametersType->ChargingPerformance_isUsed = 1u; + grammarID = 1906; + break; + case 3: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToTargetSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToTargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1907; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToBulkSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToBulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1908; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToMinimumSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1909; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 6: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->ChargingComplete); + iso2DisplayParametersType->ChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1910; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 7: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->BulkChargingComplete); + iso2DisplayParametersType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1911; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 8: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->InletHot); + iso2DisplayParametersType->InletHot_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 9: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1904: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingPerformance), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->MinimumSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->MinimumSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1905; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DisplayParametersType->ChargingPerformance); + iso2DisplayParametersType->ChargingPerformance_isUsed = 1u; + grammarID = 1906; + break; + case 2: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToTargetSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToTargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1907; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToBulkSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToBulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1908; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToMinimumSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1909; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->ChargingComplete); + iso2DisplayParametersType->ChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1910; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 6: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->BulkChargingComplete); + iso2DisplayParametersType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1911; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 7: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->InletHot); + iso2DisplayParametersType->InletHot_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 8: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1905: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingPerformance), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DisplayParametersType->ChargingPerformance); + iso2DisplayParametersType->ChargingPerformance_isUsed = 1u; + grammarID = 1906; + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToTargetSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToTargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1907; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToBulkSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToBulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1908; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToMinimumSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1909; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->ChargingComplete); + iso2DisplayParametersType->ChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1910; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->BulkChargingComplete); + iso2DisplayParametersType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1911; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 6: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->InletHot); + iso2DisplayParametersType->InletHot_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 7: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1906: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToTargetSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToTargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1907; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToBulkSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToBulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1908; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToMinimumSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1909; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->ChargingComplete); + iso2DisplayParametersType->ChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1910; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->BulkChargingComplete); + iso2DisplayParametersType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1911; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->InletHot); + iso2DisplayParametersType->InletHot_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 6: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1907: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToBulkSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToBulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1908; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToMinimumSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1909; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->ChargingComplete); + iso2DisplayParametersType->ChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1910; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->BulkChargingComplete); + iso2DisplayParametersType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1911; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->InletHot); + iso2DisplayParametersType->InletHot_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1908: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DisplayParametersType->RemainingTimeToMinimumSOC = (int8_t)(uint32 + 0); + iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1909; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->ChargingComplete); + iso2DisplayParametersType->ChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1910; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->BulkChargingComplete); + iso2DisplayParametersType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1911; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->InletHot); + iso2DisplayParametersType->InletHot_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1909: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->ChargingComplete); + iso2DisplayParametersType->ChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1910; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->BulkChargingComplete); + iso2DisplayParametersType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1911; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->InletHot); + iso2DisplayParametersType->InletHot_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1910: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->BulkChargingComplete); + iso2DisplayParametersType->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1911; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->InletHot); + iso2DisplayParametersType->InletHot_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1911: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2DisplayParametersType->InletHot); + iso2DisplayParametersType->InletHot_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DC_EVBidirectionalParameterType', base type name='DC_EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkSOC{0-1})),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumDischargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":MinimumSOC{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2DC_EVBidirectionalParameterType(bitstream_t* stream, struct iso2DC_EVBidirectionalParameterType* iso2DC_EVBidirectionalParameterType) { + int grammarID = 1912; + int done = 0; + + init_iso2DC_EVBidirectionalParameterType(iso2DC_EVBidirectionalParameterType); + + while(!done) { + switch(grammarID) { + case 1912: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &iso2DC_EVBidirectionalParameterType->DepartureTime); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1913; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1913: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumChargePower); + iso2DC_EVBidirectionalParameterType->EVMaximumChargePower_isUsed = 1u; + grammarID = 1914; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumChargePower); + iso2DC_EVBidirectionalParameterType->EVMinimumChargePower_isUsed = 1u; + grammarID = 1915; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumChargeCurrent); + grammarID = 1916; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1914: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumChargePower); + iso2DC_EVBidirectionalParameterType->EVMinimumChargePower_isUsed = 1u; + grammarID = 1915; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumChargeCurrent); + grammarID = 1916; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1915: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumChargeCurrent); + grammarID = 1916; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1916: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumChargeCurrent); + grammarID = 1917; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1917: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumVoltage); + grammarID = 1918; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1918: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVTargetEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVTargetEnergyRequest); + iso2DC_EVBidirectionalParameterType->EVTargetEnergyRequest_isUsed = 1u; + grammarID = 1919; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumEnergyRequest); + iso2DC_EVBidirectionalParameterType->EVMaximumEnergyRequest_isUsed = 1u; + grammarID = 1920; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumEnergyRequest); + iso2DC_EVBidirectionalParameterType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 1921; + break; + case 3: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVBidirectionalParameterType->CurrentSOC = (int8_t)(uint32 + 0); + iso2DC_EVBidirectionalParameterType->CurrentSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1922; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVBidirectionalParameterType->TargetSOC = (int8_t)(uint32 + 0); + iso2DC_EVBidirectionalParameterType->TargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1923; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVBidirectionalParameterType->BulkSOC = (int8_t)(uint32 + 0); + iso2DC_EVBidirectionalParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1924; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 6: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower); + iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower_isUsed = 1u; + grammarID = 1925; + break; + case 7: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower); + iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower_isUsed = 1u; + grammarID = 1926; + break; + case 8: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargeCurrent); + grammarID = 1927; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1919: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumEnergyRequest); + iso2DC_EVBidirectionalParameterType->EVMaximumEnergyRequest_isUsed = 1u; + grammarID = 1920; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumEnergyRequest); + iso2DC_EVBidirectionalParameterType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 1921; + break; + case 2: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVBidirectionalParameterType->CurrentSOC = (int8_t)(uint32 + 0); + iso2DC_EVBidirectionalParameterType->CurrentSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1922; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVBidirectionalParameterType->TargetSOC = (int8_t)(uint32 + 0); + iso2DC_EVBidirectionalParameterType->TargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1923; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVBidirectionalParameterType->BulkSOC = (int8_t)(uint32 + 0); + iso2DC_EVBidirectionalParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1924; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower); + iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower_isUsed = 1u; + grammarID = 1925; + break; + case 6: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower); + iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower_isUsed = 1u; + grammarID = 1926; + break; + case 7: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargeCurrent); + grammarID = 1927; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1920: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumEnergyRequest); + iso2DC_EVBidirectionalParameterType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 1921; + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVBidirectionalParameterType->CurrentSOC = (int8_t)(uint32 + 0); + iso2DC_EVBidirectionalParameterType->CurrentSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1922; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVBidirectionalParameterType->TargetSOC = (int8_t)(uint32 + 0); + iso2DC_EVBidirectionalParameterType->TargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1923; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVBidirectionalParameterType->BulkSOC = (int8_t)(uint32 + 0); + iso2DC_EVBidirectionalParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1924; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower); + iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower_isUsed = 1u; + grammarID = 1925; + break; + case 5: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower); + iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower_isUsed = 1u; + grammarID = 1926; + break; + case 6: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargeCurrent); + grammarID = 1927; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1921: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVBidirectionalParameterType->CurrentSOC = (int8_t)(uint32 + 0); + iso2DC_EVBidirectionalParameterType->CurrentSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1922; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVBidirectionalParameterType->TargetSOC = (int8_t)(uint32 + 0); + iso2DC_EVBidirectionalParameterType->TargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1923; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVBidirectionalParameterType->BulkSOC = (int8_t)(uint32 + 0); + iso2DC_EVBidirectionalParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1924; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower); + iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower_isUsed = 1u; + grammarID = 1925; + break; + case 4: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower); + iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower_isUsed = 1u; + grammarID = 1926; + break; + case 5: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargeCurrent); + grammarID = 1927; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1922: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVBidirectionalParameterType->TargetSOC = (int8_t)(uint32 + 0); + iso2DC_EVBidirectionalParameterType->TargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1923; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVBidirectionalParameterType->BulkSOC = (int8_t)(uint32 + 0); + iso2DC_EVBidirectionalParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1924; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower); + iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower_isUsed = 1u; + grammarID = 1925; + break; + case 3: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower); + iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower_isUsed = 1u; + grammarID = 1926; + break; + case 4: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargeCurrent); + grammarID = 1927; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1923: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVBidirectionalParameterType->BulkSOC = (int8_t)(uint32 + 0); + iso2DC_EVBidirectionalParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1924; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower); + iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower_isUsed = 1u; + grammarID = 1925; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower); + iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower_isUsed = 1u; + grammarID = 1926; + break; + case 3: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargeCurrent); + grammarID = 1927; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1924: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower); + iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower_isUsed = 1u; + grammarID = 1925; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower); + iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower_isUsed = 1u; + grammarID = 1926; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargeCurrent); + grammarID = 1927; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1925: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower); + iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower_isUsed = 1u; + grammarID = 1926; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargeCurrent); + grammarID = 1927; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1926: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargeCurrent); + grammarID = 1927; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1927: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumDischargeCurrent); + grammarID = 1928; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1928: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumVoltage); + grammarID = 1929; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1929: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVBidirectionalParameterType->MinimumSOC = (int8_t)(uint32 + 0); + iso2DC_EVBidirectionalParameterType->MinimumSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PaymentServiceSelectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":SelectedPaymentOption,"urn:iso:15118:2:2016:MsgBody":SelectedEnergyTransferService,"urn:iso:15118:2:2016:MsgBody":SelectedVASList{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso2PaymentServiceSelectionReqType(bitstream_t* stream, struct iso2PaymentServiceSelectionReqType* iso2PaymentServiceSelectionReqType) { + int grammarID = 1930; + int done = 0; + + init_iso2PaymentServiceSelectionReqType(iso2PaymentServiceSelectionReqType); + + while(!done) { + switch(grammarID) { + case 1930: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedPaymentOption)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso2PaymentServiceSelectionReqType->SelectedPaymentOption = (iso2paymentOptionType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedPaymentOption) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1931; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1931: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedEnergyTransferService)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2SelectedServiceType(stream, &iso2PaymentServiceSelectionReqType->SelectedEnergyTransferService); + grammarID = 1932; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1932: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedVASList), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2SelectedServiceListType(stream, &iso2PaymentServiceSelectionReqType->SelectedVASList); + iso2PaymentServiceSelectionReqType->SelectedVASList_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MagneticVectorType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":GAID,"urn:iso:15118:2:2016:MsgDataTypes":Distance,"urn:iso:15118:2:2016:MsgDataTypes":AngleGAtoVA,"urn:iso:15118:2:2016:MsgDataTypes":RotationVAtoGA,"urn:iso:15118:2:2016:MsgDataTypes":FODStatus)', derivedBy='RESTRICTION'. */ +static int decode_iso2MagneticVectorType(bitstream_t* stream, struct iso2MagneticVectorType* iso2MagneticVectorType) { + int grammarID = 1933; + int done = 0; + + init_iso2MagneticVectorType(iso2MagneticVectorType); + + while(!done) { + switch(grammarID) { + case 1933: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}GAID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MagneticVectorType->GAID.charactersLen); + if (errn == 0) { + if (iso2MagneticVectorType->GAID.charactersLen >= 2) { + iso2MagneticVectorType->GAID.charactersLen = (uint16_t)(iso2MagneticVectorType->GAID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2MagneticVectorType->GAID.charactersLen, iso2MagneticVectorType->GAID.characters, iso2MagneticVectorType_GAID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}GAID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1934; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1934: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Distance)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2MagneticVectorType->Distance); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Distance) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1935; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1935: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AngleGAtoVA)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2MagneticVectorType->AngleGAtoVA); + grammarID = 1936; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1936: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RotationVAtoGA)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2MagneticVectorType->RotationVAtoGA); + grammarID = 1937; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1937: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FODStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2MagneticVectorType->FODStatus = (iso2FODStatusType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FODStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ +static int decode_iso2PhysicalValueType(bitstream_t* stream, struct iso2PhysicalValueType* iso2PhysicalValueType) { + int grammarID = 1938; + int done = 0; + + init_iso2PhysicalValueType(iso2PhysicalValueType); + + while(!done) { + switch(grammarID) { + case 1938: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Exponent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 3, &(uint32)); + iso2PhysicalValueType->Exponent = (int8_t)(uint32 -3); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Exponent) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1939; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1939: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Value)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &iso2PhysicalValueType->Value); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Value) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,SystemStatusReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":OperationMode,"urn:iso:15118:2:2016:MsgBody":EVMechanicalChargingDeviceStatus)', derivedBy='EXTENSION'. */ +static int decode_iso2SystemStatusReqType(bitstream_t* stream, struct iso2SystemStatusReqType* iso2SystemStatusReqType) { + int grammarID = 1940; + int done = 0; + + init_iso2SystemStatusReqType(iso2SystemStatusReqType); + + while(!done) { + switch(grammarID) { + case 1940: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OperationMode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso2SystemStatusReqType->OperationMode = (iso2operationModeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OperationMode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1497; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1497: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMechanicalChargingDeviceStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2SystemStatusReqType->EVMechanicalChargingDeviceStatus = (iso2mechanicalChargingDeviceStatusType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMechanicalChargingDeviceStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,SystemStatusResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":OperationMode,"urn:iso:15118:2:2016:MsgBody":EVSEMechanicalChargingDeviceStatus))', derivedBy='EXTENSION'. */ +static int decode_iso2SystemStatusResType(bitstream_t* stream, struct iso2SystemStatusResType* iso2SystemStatusResType) { + int grammarID = 1941; + int done = 0; + + init_iso2SystemStatusResType(iso2SystemStatusResType); + + while(!done) { + switch(grammarID) { + case 1941: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2SystemStatusResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1942; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1942: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OperationMode)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2SystemStatusResType->EVSEStatus); + iso2SystemStatusResType->EVSEStatus_isUsed = 1u; + grammarID = 1943; + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso2SystemStatusResType->OperationMode = (iso2operationModeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OperationMode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 595; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1943: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OperationMode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso2SystemStatusResType->OperationMode = (iso2operationModeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OperationMode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 595; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 595: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMechanicalChargingDeviceStatus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2SystemStatusResType->EVSEMechanicalChargingDeviceStatus = (iso2mechanicalChargingDeviceStatusType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMechanicalChargingDeviceStatus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEFinePositioningSetupParametersType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_iso2EVSEFinePositioningSetupParametersType(bitstream_t* stream, struct iso2EVSEFinePositioningSetupParametersType* iso2EVSEFinePositioningSetupParametersType) { + int grammarID = 674; + int done = 0; + + init_iso2EVSEFinePositioningSetupParametersType(iso2EVSEFinePositioningSetupParametersType); + + while(!done) { + switch(grammarID) { + case 674: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,V2GResponseType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso2V2GResponseType(bitstream_t* stream, struct iso2V2GResponseType* iso2V2GResponseType) { + int grammarID = 599; + int done = 0; + + init_iso2V2GResponseType(iso2V2GResponseType); + + while(!done) { + switch(grammarID) { + case 599: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2V2GResponseType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 600; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 600: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2V2GResponseType->EVSEStatus); + iso2V2GResponseType->EVSEStatus_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,BodyType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":BodyElement)', derivedBy='RESTRICTION'. */ +static int decode_iso2BodyType(bitstream_t* stream, struct iso2BodyType* iso2BodyType) { + int grammarID = 1944; + int done = 0; + + init_iso2BodyType(iso2BodyType); + + while(!done) { + switch(grammarID) { + case 1944: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GResponse), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionRes)] */ + errn = decodeNBitUnsignedInteger(stream, 6, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2AC_BidirectionalControlReqType(stream, &iso2BodyType->AC_BidirectionalControlReq); + iso2BodyType->AC_BidirectionalControlReq_isUsed = 1u; + grammarID = 3; + break; + case 1: + errn = decode_iso2AC_BidirectionalControlResType(stream, &iso2BodyType->AC_BidirectionalControlRes); + iso2BodyType->AC_BidirectionalControlRes_isUsed = 1u; + grammarID = 3; + break; + case 2: + errn = decode_iso2AlignmentCheckReqType(stream, &iso2BodyType->AlignmentCheckReq); + iso2BodyType->AlignmentCheckReq_isUsed = 1u; + grammarID = 3; + break; + case 3: + errn = decode_iso2AlignmentCheckResType(stream, &iso2BodyType->AlignmentCheckRes); + iso2BodyType->AlignmentCheckRes_isUsed = 1u; + grammarID = 3; + break; + case 4: + errn = decode_iso2AuthorizationReqType(stream, &iso2BodyType->AuthorizationReq); + iso2BodyType->AuthorizationReq_isUsed = 1u; + grammarID = 3; + break; + case 5: + errn = decode_iso2AuthorizationResType(stream, &iso2BodyType->AuthorizationRes); + iso2BodyType->AuthorizationRes_isUsed = 1u; + grammarID = 3; + break; + case 6: + errn = decode_iso2BodyBaseType(stream, &iso2BodyType->BodyElement); + iso2BodyType->BodyElement_isUsed = 1u; + grammarID = 3; + break; + case 7: + errn = decode_iso2CableCheckReqType(stream, &iso2BodyType->CableCheckReq); + iso2BodyType->CableCheckReq_isUsed = 1u; + grammarID = 3; + break; + case 8: + errn = decode_iso2CableCheckResType(stream, &iso2BodyType->CableCheckRes); + iso2BodyType->CableCheckRes_isUsed = 1u; + grammarID = 3; + break; + case 9: + errn = decode_iso2CertificateInstallationReqType(stream, &iso2BodyType->CertificateInstallationReq); + iso2BodyType->CertificateInstallationReq_isUsed = 1u; + grammarID = 3; + break; + case 10: + errn = decode_iso2CertificateInstallationResType(stream, &iso2BodyType->CertificateInstallationRes); + iso2BodyType->CertificateInstallationRes_isUsed = 1u; + grammarID = 3; + break; + case 11: + errn = decode_iso2CertificateUpdateReqType(stream, &iso2BodyType->CertificateUpdateReq); + iso2BodyType->CertificateUpdateReq_isUsed = 1u; + grammarID = 3; + break; + case 12: + errn = decode_iso2CertificateUpdateResType(stream, &iso2BodyType->CertificateUpdateRes); + iso2BodyType->CertificateUpdateRes_isUsed = 1u; + grammarID = 3; + break; + case 13: + errn = decode_iso2ChargeParameterDiscoveryReqType(stream, &iso2BodyType->ChargeParameterDiscoveryReq); + iso2BodyType->ChargeParameterDiscoveryReq_isUsed = 1u; + grammarID = 3; + break; + case 14: + errn = decode_iso2ChargeParameterDiscoveryResType(stream, &iso2BodyType->ChargeParameterDiscoveryRes); + iso2BodyType->ChargeParameterDiscoveryRes_isUsed = 1u; + grammarID = 3; + break; + case 15: + errn = decode_iso2ChargingStatusReqType(stream, &iso2BodyType->ChargingStatusReq); + iso2BodyType->ChargingStatusReq_isUsed = 1u; + grammarID = 3; + break; + case 16: + errn = decode_iso2ChargingStatusResType(stream, &iso2BodyType->ChargingStatusRes); + iso2BodyType->ChargingStatusRes_isUsed = 1u; + grammarID = 3; + break; + case 17: + errn = decode_iso2ConnectChargingDeviceReqType(stream, &iso2BodyType->ConnectChargingDeviceReq); + iso2BodyType->ConnectChargingDeviceReq_isUsed = 1u; + grammarID = 3; + break; + case 18: + errn = decode_iso2ConnectChargingDeviceResType(stream, &iso2BodyType->ConnectChargingDeviceRes); + iso2BodyType->ConnectChargingDeviceRes_isUsed = 1u; + grammarID = 3; + break; + case 19: + errn = decode_iso2CurrentDemandReqType(stream, &iso2BodyType->CurrentDemandReq); + iso2BodyType->CurrentDemandReq_isUsed = 1u; + grammarID = 3; + break; + case 20: + errn = decode_iso2CurrentDemandResType(stream, &iso2BodyType->CurrentDemandRes); + iso2BodyType->CurrentDemandRes_isUsed = 1u; + grammarID = 3; + break; + case 21: + errn = decode_iso2DC_BidirectionalControlReqType(stream, &iso2BodyType->DC_BidirectionalControlReq); + iso2BodyType->DC_BidirectionalControlReq_isUsed = 1u; + grammarID = 3; + break; + case 22: + errn = decode_iso2DC_BidirectionalControlResType(stream, &iso2BodyType->DC_BidirectionalControlRes); + iso2BodyType->DC_BidirectionalControlRes_isUsed = 1u; + grammarID = 3; + break; + case 23: + errn = decode_iso2DisconnectChargingDeviceReqType(stream, &iso2BodyType->DisconnectChargingDeviceReq); + iso2BodyType->DisconnectChargingDeviceReq_isUsed = 1u; + grammarID = 3; + break; + case 24: + errn = decode_iso2DisconnectChargingDeviceResType(stream, &iso2BodyType->DisconnectChargingDeviceRes); + iso2BodyType->DisconnectChargingDeviceRes_isUsed = 1u; + grammarID = 3; + break; + case 25: + errn = decode_iso2FinePositioningReqType(stream, &iso2BodyType->FinePositioningReq); + iso2BodyType->FinePositioningReq_isUsed = 1u; + grammarID = 3; + break; + case 26: + errn = decode_iso2FinePositioningResType(stream, &iso2BodyType->FinePositioningRes); + iso2BodyType->FinePositioningRes_isUsed = 1u; + grammarID = 3; + break; + case 27: + errn = decode_iso2FinePositioningSetupReqType(stream, &iso2BodyType->FinePositioningSetupReq); + iso2BodyType->FinePositioningSetupReq_isUsed = 1u; + grammarID = 3; + break; + case 28: + errn = decode_iso2FinePositioningSetupResType(stream, &iso2BodyType->FinePositioningSetupRes); + iso2BodyType->FinePositioningSetupRes_isUsed = 1u; + grammarID = 3; + break; + case 29: + errn = decode_iso2MeteringReceiptReqType(stream, &iso2BodyType->MeteringReceiptReq); + iso2BodyType->MeteringReceiptReq_isUsed = 1u; + grammarID = 3; + break; + case 30: + errn = decode_iso2MeteringReceiptResType(stream, &iso2BodyType->MeteringReceiptRes); + iso2BodyType->MeteringReceiptRes_isUsed = 1u; + grammarID = 3; + break; + case 31: + errn = decode_iso2PairingReqType(stream, &iso2BodyType->PairingReq); + iso2BodyType->PairingReq_isUsed = 1u; + grammarID = 3; + break; + case 32: + errn = decode_iso2PairingResType(stream, &iso2BodyType->PairingRes); + iso2BodyType->PairingRes_isUsed = 1u; + grammarID = 3; + break; + case 33: + errn = decode_iso2PaymentDetailsReqType(stream, &iso2BodyType->PaymentDetailsReq); + iso2BodyType->PaymentDetailsReq_isUsed = 1u; + grammarID = 3; + break; + case 34: + errn = decode_iso2PaymentDetailsResType(stream, &iso2BodyType->PaymentDetailsRes); + iso2BodyType->PaymentDetailsRes_isUsed = 1u; + grammarID = 3; + break; + case 35: + errn = decode_iso2PaymentServiceSelectionReqType(stream, &iso2BodyType->PaymentServiceSelectionReq); + iso2BodyType->PaymentServiceSelectionReq_isUsed = 1u; + grammarID = 3; + break; + case 36: + errn = decode_iso2PaymentServiceSelectionResType(stream, &iso2BodyType->PaymentServiceSelectionRes); + iso2BodyType->PaymentServiceSelectionRes_isUsed = 1u; + grammarID = 3; + break; + case 37: + errn = decode_iso2PowerDeliveryReqType(stream, &iso2BodyType->PowerDeliveryReq); + iso2BodyType->PowerDeliveryReq_isUsed = 1u; + grammarID = 3; + break; + case 38: + errn = decode_iso2PowerDeliveryResType(stream, &iso2BodyType->PowerDeliveryRes); + iso2BodyType->PowerDeliveryRes_isUsed = 1u; + grammarID = 3; + break; + case 39: + errn = decode_iso2PowerDemandReqType(stream, &iso2BodyType->PowerDemandReq); + iso2BodyType->PowerDemandReq_isUsed = 1u; + grammarID = 3; + break; + case 40: + errn = decode_iso2PowerDemandResType(stream, &iso2BodyType->PowerDemandRes); + iso2BodyType->PowerDemandRes_isUsed = 1u; + grammarID = 3; + break; + case 41: + errn = decode_iso2PreChargeReqType(stream, &iso2BodyType->PreChargeReq); + iso2BodyType->PreChargeReq_isUsed = 1u; + grammarID = 3; + break; + case 42: + errn = decode_iso2PreChargeResType(stream, &iso2BodyType->PreChargeRes); + iso2BodyType->PreChargeRes_isUsed = 1u; + grammarID = 3; + break; + case 43: + errn = decode_iso2ServiceDetailReqType(stream, &iso2BodyType->ServiceDetailReq); + iso2BodyType->ServiceDetailReq_isUsed = 1u; + grammarID = 3; + break; + case 44: + errn = decode_iso2ServiceDetailResType(stream, &iso2BodyType->ServiceDetailRes); + iso2BodyType->ServiceDetailRes_isUsed = 1u; + grammarID = 3; + break; + case 45: + errn = decode_iso2ServiceDiscoveryReqType(stream, &iso2BodyType->ServiceDiscoveryReq); + iso2BodyType->ServiceDiscoveryReq_isUsed = 1u; + grammarID = 3; + break; + case 46: + errn = decode_iso2ServiceDiscoveryResType(stream, &iso2BodyType->ServiceDiscoveryRes); + iso2BodyType->ServiceDiscoveryRes_isUsed = 1u; + grammarID = 3; + break; + case 47: + errn = decode_iso2SessionSetupReqType(stream, &iso2BodyType->SessionSetupReq); + iso2BodyType->SessionSetupReq_isUsed = 1u; + grammarID = 3; + break; + case 48: + errn = decode_iso2SessionSetupResType(stream, &iso2BodyType->SessionSetupRes); + iso2BodyType->SessionSetupRes_isUsed = 1u; + grammarID = 3; + break; + case 49: + errn = decode_iso2SessionStopReqType(stream, &iso2BodyType->SessionStopReq); + iso2BodyType->SessionStopReq_isUsed = 1u; + grammarID = 3; + break; + case 50: + errn = decode_iso2SessionStopResType(stream, &iso2BodyType->SessionStopRes); + iso2BodyType->SessionStopRes_isUsed = 1u; + grammarID = 3; + break; + case 51: + errn = decode_iso2SystemStatusReqType(stream, &iso2BodyType->SystemStatusReq); + iso2BodyType->SystemStatusReq_isUsed = 1u; + grammarID = 3; + break; + case 52: + errn = decode_iso2SystemStatusResType(stream, &iso2BodyType->SystemStatusRes); + iso2BodyType->SystemStatusRes_isUsed = 1u; + grammarID = 3; + break; + case 53: + errn = decode_iso2BodyBaseType(stream, &iso2BodyType->V2GRequest); + iso2BodyType->V2GRequest_isUsed = 1u; + grammarID = 3; + break; + case 54: + errn = decode_iso2V2GResponseType(stream, &iso2BodyType->V2GResponse); + iso2BodyType->V2GResponse_isUsed = 1u; + grammarID = 3; + break; + case 55: + errn = decode_iso2VehicleCheckInReqType(stream, &iso2BodyType->VehicleCheckInReq); + iso2BodyType->VehicleCheckInReq_isUsed = 1u; + grammarID = 3; + break; + case 56: + errn = decode_iso2VehicleCheckInResType(stream, &iso2BodyType->VehicleCheckInRes); + iso2BodyType->VehicleCheckInRes_isUsed = 1u; + grammarID = 3; + break; + case 57: + errn = decode_iso2VehicleCheckOutReqType(stream, &iso2BodyType->VehicleCheckOutReq); + iso2BodyType->VehicleCheckOutReq_isUsed = 1u; + grammarID = 3; + break; + case 58: + errn = decode_iso2VehicleCheckOutResType(stream, &iso2BodyType->VehicleCheckOutRes); + iso2BodyType->VehicleCheckOutRes_isUsed = 1u; + grammarID = 3; + break; + case 59: + errn = decode_iso2WeldingDetectionReqType(stream, &iso2BodyType->WeldingDetectionReq); + iso2BodyType->WeldingDetectionReq_isUsed = 1u; + grammarID = 3; + break; + case 60: + errn = decode_iso2WeldingDetectionResType(stream, &iso2BodyType->WeldingDetectionRes); + iso2BodyType->WeldingDetectionRes_isUsed = 1u; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PreChargeResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage))', derivedBy='EXTENSION'. */ +static int decode_iso2PreChargeResType(bitstream_t* stream, struct iso2PreChargeResType* iso2PreChargeResType) { + int grammarID = 596; + int done = 0; + + init_iso2PreChargeResType(iso2PreChargeResType); + + while(!done) { + switch(grammarID) { + case 596: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2PreChargeResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 597; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 597: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2PreChargeResType->EVSEStatus); + iso2PreChargeResType->EVSEStatus_isUsed = 1u; + grammarID = 598; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2PreChargeResType->EVSEPresentVoltage); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 598: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2PreChargeResType->EVSEPresentVoltage); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEFinePositioningParametersType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_iso2EVSEFinePositioningParametersType(bitstream_t* stream, struct iso2EVSEFinePositioningParametersType* iso2EVSEFinePositioningParametersType) { + int grammarID = 674; + int done = 0; + + init_iso2EVSEFinePositioningParametersType(iso2EVSEFinePositioningParametersType); + + while(!done) { + switch(grammarID) { + case 674: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PaymentServiceSelectionResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso2PaymentServiceSelectionResType(bitstream_t* stream, struct iso2PaymentServiceSelectionResType* iso2PaymentServiceSelectionResType) { + int grammarID = 599; + int done = 0; + + init_iso2PaymentServiceSelectionResType(iso2PaymentServiceSelectionResType); + + while(!done) { + switch(grammarID) { + case 599: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2PaymentServiceSelectionResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 600; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 600: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2PaymentServiceSelectionResType->EVSEStatus); + iso2PaymentServiceSelectionResType->EVSEStatus_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso2DigestMethodType(bitstream_t* stream, struct iso2DigestMethodType* iso2DigestMethodType) { + int grammarID = 1899; + int done = 0; + + init_iso2DigestMethodType(iso2DigestMethodType); + + while(!done) { + switch(grammarID) { + case 1899: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2DigestMethodType->Algorithm.charactersLen); + if (errn == 0) { + if (iso2DigestMethodType->Algorithm.charactersLen >= 2) { + iso2DigestMethodType->Algorithm.charactersLen = (uint16_t)(iso2DigestMethodType->Algorithm.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2DigestMethodType->Algorithm.charactersLen, iso2DigestMethodType->Algorithm.characters, iso2DigestMethodType_Algorithm_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 684; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 684: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 685; + break; + case 1: + done = 1; + grammarID = 4; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso2DigestMethodType->ANY.charactersLen); + if (errn == 0) { + if (iso2DigestMethodType->ANY.charactersLen >= 2) { + iso2DigestMethodType->ANY.charactersLen = (uint16_t)(iso2DigestMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2DigestMethodType->ANY.charactersLen, iso2DigestMethodType->ANY.characters, iso2DigestMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2DigestMethodType->ANY_isUsed = 1u; + grammarID = 685; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 685: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 685; + break; + case 1: + done = 1; + grammarID = 4; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &iso2DigestMethodType->ANY.charactersLen); + if (errn == 0) { + if (iso2DigestMethodType->ANY.charactersLen >= 2) { + iso2DigestMethodType->ANY.charactersLen = (uint16_t)(iso2DigestMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2DigestMethodType->ANY.charactersLen, iso2DigestMethodType->ANY.characters, iso2DigestMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2DigestMethodType->ANY_isUsed = 1u; + grammarID = 685; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,TargetPositionType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":TargetOffsetX,"urn:iso:15118:2:2016:MsgDataTypes":TargetOffsetY)', derivedBy='RESTRICTION'. */ +static int decode_iso2TargetPositionType(bitstream_t* stream, struct iso2TargetPositionType* iso2TargetPositionType) { + int grammarID = 1945; + int done = 0; + + init_iso2TargetPositionType(iso2TargetPositionType); + + while(!done) { + switch(grammarID) { + case 1945: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetOffsetX)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2TargetPositionType->TargetOffsetX); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetOffsetX) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1946; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1946: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetOffsetY)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2TargetPositionType->TargetOffsetY); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetOffsetY) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,LFA_EVFinePositioningParametersType', base type name='EVFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NumberOfSignalPackages,"urn:iso:15118:2:2016:MsgDataTypes":SensorPackageList)', derivedBy='EXTENSION'. */ +static int decode_iso2LFA_EVFinePositioningParametersType(bitstream_t* stream, struct iso2LFA_EVFinePositioningParametersType* iso2LFA_EVFinePositioningParametersType) { + int grammarID = 670; + int done = 0; + + init_iso2LFA_EVFinePositioningParametersType(iso2LFA_EVFinePositioningParametersType); + + while(!done) { + switch(grammarID) { + case 670: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSignalPackages)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2LFA_EVFinePositioningParametersType->NumberOfSignalPackages = (uint8_t)(uint32 + 0); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSignalPackages) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 671; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 671: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackageList)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2SensorPackageListType(stream, &iso2LFA_EVFinePositioningParametersType->SensorPackageList); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DC_EVChargeParameterType', base type name='EVEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkSOC{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2DC_EVChargeParameterType(bitstream_t* stream, struct iso2DC_EVChargeParameterType* iso2DC_EVChargeParameterType) { + int grammarID = 1947; + int done = 0; + + init_iso2DC_EVChargeParameterType(iso2DC_EVChargeParameterType); + + while(!done) { + switch(grammarID) { + case 1947: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &iso2DC_EVChargeParameterType->DepartureTime); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1948; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1948: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMaximumChargePower); + iso2DC_EVChargeParameterType->EVMaximumChargePower_isUsed = 1u; + grammarID = 1949; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMinimumChargePower); + iso2DC_EVChargeParameterType->EVMinimumChargePower_isUsed = 1u; + grammarID = 1950; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMaximumChargeCurrent); + grammarID = 1951; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1949: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMinimumChargePower); + iso2DC_EVChargeParameterType->EVMinimumChargePower_isUsed = 1u; + grammarID = 1950; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMaximumChargeCurrent); + grammarID = 1951; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1950: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMaximumChargeCurrent); + grammarID = 1951; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1951: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargeCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMinimumChargeCurrent); + grammarID = 1952; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1952: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMaximumVoltage); + grammarID = 1953; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1953: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVTargetEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVTargetEnergyRequest); + iso2DC_EVChargeParameterType->EVTargetEnergyRequest_isUsed = 1u; + grammarID = 1954; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMaximumEnergyRequest); + iso2DC_EVChargeParameterType->EVMaximumEnergyRequest_isUsed = 1u; + grammarID = 1955; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMinimumEnergyRequest); + iso2DC_EVChargeParameterType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 1956; + break; + case 3: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVChargeParameterType->CurrentSOC = (int8_t)(uint32 + 0); + iso2DC_EVChargeParameterType->CurrentSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1957; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVChargeParameterType->TargetSOC = (int8_t)(uint32 + 0); + iso2DC_EVChargeParameterType->TargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1958; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVChargeParameterType->BulkSOC = (int8_t)(uint32 + 0); + iso2DC_EVChargeParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 6: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1954: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMaximumEnergyRequest); + iso2DC_EVChargeParameterType->EVMaximumEnergyRequest_isUsed = 1u; + grammarID = 1955; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMinimumEnergyRequest); + iso2DC_EVChargeParameterType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 1956; + break; + case 2: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVChargeParameterType->CurrentSOC = (int8_t)(uint32 + 0); + iso2DC_EVChargeParameterType->CurrentSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1957; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVChargeParameterType->TargetSOC = (int8_t)(uint32 + 0); + iso2DC_EVChargeParameterType->TargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1958; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVChargeParameterType->BulkSOC = (int8_t)(uint32 + 0); + iso2DC_EVChargeParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1955: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMinimumEnergyRequest); + iso2DC_EVChargeParameterType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 1956; + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVChargeParameterType->CurrentSOC = (int8_t)(uint32 + 0); + iso2DC_EVChargeParameterType->CurrentSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1957; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVChargeParameterType->TargetSOC = (int8_t)(uint32 + 0); + iso2DC_EVChargeParameterType->TargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1958; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVChargeParameterType->BulkSOC = (int8_t)(uint32 + 0); + iso2DC_EVChargeParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1956: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVChargeParameterType->CurrentSOC = (int8_t)(uint32 + 0); + iso2DC_EVChargeParameterType->CurrentSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1957; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVChargeParameterType->TargetSOC = (int8_t)(uint32 + 0); + iso2DC_EVChargeParameterType->TargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1958; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVChargeParameterType->BulkSOC = (int8_t)(uint32 + 0); + iso2DC_EVChargeParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1957: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVChargeParameterType->TargetSOC = (int8_t)(uint32 + 0); + iso2DC_EVChargeParameterType->TargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1958; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVChargeParameterType->BulkSOC = (int8_t)(uint32 + 0); + iso2DC_EVChargeParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1958: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + iso2DC_EVChargeParameterType->BulkSOC = (int8_t)(uint32 + 0); + iso2DC_EVChargeParameterType->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ServiceDetailReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ServiceID)', derivedBy='EXTENSION'. */ +static int decode_iso2ServiceDetailReqType(bitstream_t* stream, struct iso2ServiceDetailReqType* iso2ServiceDetailReqType) { + int grammarID = 1959; + int done = 0; + + init_iso2ServiceDetailReqType(iso2ServiceDetailReqType); + + while(!done) { + switch(grammarID) { + case 1959: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ServiceDetailReqType->ServiceID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PreChargeReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2016:MsgBody":EVTargetCurrent)', derivedBy='EXTENSION'. */ +static int decode_iso2PreChargeReqType(bitstream_t* stream, struct iso2PreChargeReqType* iso2PreChargeReqType) { + int grammarID = 1960; + int done = 0; + + init_iso2PreChargeReqType(iso2PreChargeReqType); + + while(!done) { + switch(grammarID) { + case 1960: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2PreChargeReqType->EVTargetVoltage); + grammarID = 1961; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1961: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2PreChargeReqType->EVTargetCurrent); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ManifestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso2ManifestType(bitstream_t* stream, struct iso2ManifestType* iso2ManifestType) { + int grammarID = 1962; + int done = 0; + + init_iso2ManifestType(iso2ManifestType); + + while(!done) { + switch(grammarID) { + case 1962: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2ManifestType->Id.charactersLen); + if (errn == 0) { + if (iso2ManifestType->Id.charactersLen >= 2) { + iso2ManifestType->Id.charactersLen = (uint16_t)(iso2ManifestType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ManifestType->Id.charactersLen, iso2ManifestType->Id.characters, iso2ManifestType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2ManifestType->Id_isUsed = 1u; + grammarID = 1963; + break; + case 1: + if (iso2ManifestType->Reference.arrayLen < iso2ManifestType_Reference_ARRAY_SIZE) { + errn = decode_iso2ReferenceType(stream, &iso2ManifestType->Reference.array[iso2ManifestType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1964; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1963: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ManifestType->Reference.arrayLen < iso2ManifestType_Reference_ARRAY_SIZE) { + errn = decode_iso2ReferenceType(stream, &iso2ManifestType->Reference.array[iso2ManifestType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1964; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1964: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ManifestType->Reference.arrayLen < iso2ManifestType_Reference_ARRAY_SIZE) { + errn = decode_iso2ReferenceType(stream, &iso2ManifestType->Reference.array[iso2ManifestType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1964; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDef,#AnonType_V2G_Message', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDef":Header,"urn:iso:15118:2:2016:MsgDef":Body)', derivedBy='RESTRICTION'. */ +static int decode_iso2AnonType_V2G_Message(bitstream_t* stream, struct iso2AnonType_V2G_Message* iso2AnonType_V2G_Message) { + int grammarID = 1965; + int done = 0; + + init_iso2AnonType_V2G_Message(iso2AnonType_V2G_Message); + + while(!done) { + switch(grammarID) { + case 1965: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDef}Header)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2MessageHeaderType(stream, &iso2AnonType_V2G_Message->Header); + grammarID = 1966; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1966: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDef}Body)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2BodyType(stream, &iso2AnonType_V2G_Message->Body); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SelectedServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SelectedService{1-16})', derivedBy='RESTRICTION'. */ +static int decode_iso2SelectedServiceListType(bitstream_t* stream, struct iso2SelectedServiceListType* iso2SelectedServiceListType) { + int grammarID = 1967; + int done = 0; + + init_iso2SelectedServiceListType(iso2SelectedServiceListType); + + while(!done) { + switch(grammarID) { + case 1967: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SelectedServiceListType->SelectedService.arrayLen < iso2SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array[iso2SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1968; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1968: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SelectedServiceListType->SelectedService.arrayLen < iso2SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array[iso2SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1969; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1969: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SelectedServiceListType->SelectedService.arrayLen < iso2SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array[iso2SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1970; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1970: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SelectedServiceListType->SelectedService.arrayLen < iso2SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array[iso2SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1971; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1971: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SelectedServiceListType->SelectedService.arrayLen < iso2SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array[iso2SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1972; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1972: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SelectedServiceListType->SelectedService.arrayLen < iso2SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array[iso2SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1973; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1973: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SelectedServiceListType->SelectedService.arrayLen < iso2SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array[iso2SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1974; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1974: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SelectedServiceListType->SelectedService.arrayLen < iso2SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array[iso2SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1975; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1975: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SelectedServiceListType->SelectedService.arrayLen < iso2SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array[iso2SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1976; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1976: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SelectedServiceListType->SelectedService.arrayLen < iso2SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array[iso2SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1977; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1977: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SelectedServiceListType->SelectedService.arrayLen < iso2SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array[iso2SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1978; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1978: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SelectedServiceListType->SelectedService.arrayLen < iso2SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array[iso2SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1979; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1979: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SelectedServiceListType->SelectedService.arrayLen < iso2SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array[iso2SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1980; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1980: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SelectedServiceListType->SelectedService.arrayLen < iso2SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array[iso2SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1981; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1981: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SelectedServiceListType->SelectedService.arrayLen < iso2SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array[iso2SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1982; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1982: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SelectedServiceListType->SelectedService.arrayLen < iso2SelectedServiceListType_SelectedService_ARRAY_SIZE) { + errn = decode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array[iso2SelectedServiceListType->SelectedService.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,Generic_EVSEFinePositioningParametersType', base type name='EVSEFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":GenericParameters)', derivedBy='EXTENSION'. */ +static int decode_iso2Generic_EVSEFinePositioningParametersType(bitstream_t* stream, struct iso2Generic_EVSEFinePositioningParametersType* iso2Generic_EVSEFinePositioningParametersType) { + int grammarID = 1880; + int done = 0; + + init_iso2Generic_EVSEFinePositioningParametersType(iso2Generic_EVSEFinePositioningParametersType); + + while(!done) { + switch(grammarID) { + case 1880: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}GenericParameters)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2ParameterSetType(stream, &iso2Generic_EVSEFinePositioningParametersType->GenericParameters); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,CartesianCoordinatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":XCoordinate,"urn:iso:15118:2:2016:MsgDataTypes":YCoordinate,"urn:iso:15118:2:2016:MsgDataTypes":ZCoordinate)', derivedBy='RESTRICTION'. */ +static int decode_iso2CartesianCoordinatesType(bitstream_t* stream, struct iso2CartesianCoordinatesType* iso2CartesianCoordinatesType) { + int grammarID = 1983; + int done = 0; + + init_iso2CartesianCoordinatesType(iso2CartesianCoordinatesType); + + while(!done) { + switch(grammarID) { + case 1983: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}XCoordinate)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &iso2CartesianCoordinatesType->XCoordinate); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}XCoordinate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1984; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1984: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}YCoordinate)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &iso2CartesianCoordinatesType->YCoordinate); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}YCoordinate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1985; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1985: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ZCoordinate)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &iso2CartesianCoordinatesType->ZCoordinate); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ZCoordinate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_iso2KeyInfoType(bitstream_t* stream, struct iso2KeyInfoType* iso2KeyInfoType) { + int grammarID = 1986; + int done = 0; + + init_iso2KeyInfoType(iso2KeyInfoType); + + while(!done) { + switch(grammarID) { + case 1986: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2KeyInfoType->Id.charactersLen); + if (errn == 0) { + if (iso2KeyInfoType->Id.charactersLen >= 2) { + iso2KeyInfoType->Id.charactersLen = (uint16_t)(iso2KeyInfoType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2KeyInfoType->Id.charactersLen, iso2KeyInfoType->Id.characters, iso2KeyInfoType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2KeyInfoType->Id_isUsed = 1u; + grammarID = 1987; + break; + case 1: + if (iso2KeyInfoType->KeyName.arrayLen < iso2KeyInfoType_KeyName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen); + if (errn == 0) { + if (iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen >= 2) { + iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen, iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].characters, iso2KeyInfoType_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2KeyInfoType->KeyName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1988; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + if (iso2KeyInfoType->KeyValue.arrayLen < iso2KeyInfoType_KeyValue_ARRAY_SIZE) { + errn = decode_iso2KeyValueType(stream, &iso2KeyInfoType->KeyValue.array[iso2KeyInfoType->KeyValue.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 3: + if (iso2KeyInfoType->RetrievalMethod.arrayLen < iso2KeyInfoType_RetrievalMethod_ARRAY_SIZE) { + errn = decode_iso2RetrievalMethodType(stream, &iso2KeyInfoType->RetrievalMethod.array[iso2KeyInfoType->RetrievalMethod.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 4: + if (iso2KeyInfoType->X509Data.arrayLen < iso2KeyInfoType_X509Data_ARRAY_SIZE) { + errn = decode_iso2X509DataType(stream, &iso2KeyInfoType->X509Data.array[iso2KeyInfoType->X509Data.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 5: + if (iso2KeyInfoType->PGPData.arrayLen < iso2KeyInfoType_PGPData_ARRAY_SIZE) { + errn = decode_iso2PGPDataType(stream, &iso2KeyInfoType->PGPData.array[iso2KeyInfoType->PGPData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 6: + if (iso2KeyInfoType->SPKIData.arrayLen < iso2KeyInfoType_SPKIData_ARRAY_SIZE) { + errn = decode_iso2SPKIDataType(stream, &iso2KeyInfoType->SPKIData.array[iso2KeyInfoType->SPKIData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 7: + if (iso2KeyInfoType->MgmtData.arrayLen < iso2KeyInfoType_MgmtData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen); + if (errn == 0) { + if (iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen >= 2) { + iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen, iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].characters, iso2KeyInfoType_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2KeyInfoType->MgmtData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1988; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 8: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 1988; + break; + case 9: + errn = decodeUnsignedInteger16(stream, &iso2KeyInfoType->ANY.charactersLen); + if (errn == 0) { + if (iso2KeyInfoType->ANY.charactersLen >= 2) { + iso2KeyInfoType->ANY.charactersLen = (uint16_t)(iso2KeyInfoType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2KeyInfoType->ANY.charactersLen, iso2KeyInfoType->ANY.characters, iso2KeyInfoType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2KeyInfoType->ANY_isUsed = 1u; + grammarID = 1989; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1987: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2KeyInfoType->KeyName.arrayLen < iso2KeyInfoType_KeyName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen); + if (errn == 0) { + if (iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen >= 2) { + iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen, iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].characters, iso2KeyInfoType_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2KeyInfoType->KeyName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1988; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + if (iso2KeyInfoType->KeyValue.arrayLen < iso2KeyInfoType_KeyValue_ARRAY_SIZE) { + errn = decode_iso2KeyValueType(stream, &iso2KeyInfoType->KeyValue.array[iso2KeyInfoType->KeyValue.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 2: + if (iso2KeyInfoType->RetrievalMethod.arrayLen < iso2KeyInfoType_RetrievalMethod_ARRAY_SIZE) { + errn = decode_iso2RetrievalMethodType(stream, &iso2KeyInfoType->RetrievalMethod.array[iso2KeyInfoType->RetrievalMethod.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 3: + if (iso2KeyInfoType->X509Data.arrayLen < iso2KeyInfoType_X509Data_ARRAY_SIZE) { + errn = decode_iso2X509DataType(stream, &iso2KeyInfoType->X509Data.array[iso2KeyInfoType->X509Data.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 4: + if (iso2KeyInfoType->PGPData.arrayLen < iso2KeyInfoType_PGPData_ARRAY_SIZE) { + errn = decode_iso2PGPDataType(stream, &iso2KeyInfoType->PGPData.array[iso2KeyInfoType->PGPData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 5: + if (iso2KeyInfoType->SPKIData.arrayLen < iso2KeyInfoType_SPKIData_ARRAY_SIZE) { + errn = decode_iso2SPKIDataType(stream, &iso2KeyInfoType->SPKIData.array[iso2KeyInfoType->SPKIData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 6: + if (iso2KeyInfoType->MgmtData.arrayLen < iso2KeyInfoType_MgmtData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen); + if (errn == 0) { + if (iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen >= 2) { + iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen, iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].characters, iso2KeyInfoType_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2KeyInfoType->MgmtData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1988; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 7: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 1988; + break; + case 8: + errn = decodeUnsignedInteger16(stream, &iso2KeyInfoType->ANY.charactersLen); + if (errn == 0) { + if (iso2KeyInfoType->ANY.charactersLen >= 2) { + iso2KeyInfoType->ANY.charactersLen = (uint16_t)(iso2KeyInfoType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2KeyInfoType->ANY.charactersLen, iso2KeyInfoType->ANY.characters, iso2KeyInfoType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2KeyInfoType->ANY_isUsed = 1u; + grammarID = 1989; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1988: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2KeyInfoType->KeyName.arrayLen < iso2KeyInfoType_KeyName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen); + if (errn == 0) { + if (iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen >= 2) { + iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen, iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].characters, iso2KeyInfoType_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2KeyInfoType->KeyName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1988; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + if (iso2KeyInfoType->KeyValue.arrayLen < iso2KeyInfoType_KeyValue_ARRAY_SIZE) { + errn = decode_iso2KeyValueType(stream, &iso2KeyInfoType->KeyValue.array[iso2KeyInfoType->KeyValue.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 2: + if (iso2KeyInfoType->RetrievalMethod.arrayLen < iso2KeyInfoType_RetrievalMethod_ARRAY_SIZE) { + errn = decode_iso2RetrievalMethodType(stream, &iso2KeyInfoType->RetrievalMethod.array[iso2KeyInfoType->RetrievalMethod.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 3: + if (iso2KeyInfoType->X509Data.arrayLen < iso2KeyInfoType_X509Data_ARRAY_SIZE) { + errn = decode_iso2X509DataType(stream, &iso2KeyInfoType->X509Data.array[iso2KeyInfoType->X509Data.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 4: + if (iso2KeyInfoType->PGPData.arrayLen < iso2KeyInfoType_PGPData_ARRAY_SIZE) { + errn = decode_iso2PGPDataType(stream, &iso2KeyInfoType->PGPData.array[iso2KeyInfoType->PGPData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 5: + if (iso2KeyInfoType->SPKIData.arrayLen < iso2KeyInfoType_SPKIData_ARRAY_SIZE) { + errn = decode_iso2SPKIDataType(stream, &iso2KeyInfoType->SPKIData.array[iso2KeyInfoType->SPKIData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 6: + if (iso2KeyInfoType->MgmtData.arrayLen < iso2KeyInfoType_MgmtData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen); + if (errn == 0) { + if (iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen >= 2) { + iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen, iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].characters, iso2KeyInfoType_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2KeyInfoType->MgmtData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1988; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 7: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 1988; + break; + case 8: + done = 1; + grammarID = 4; + break; + case 9: + errn = decodeUnsignedInteger16(stream, &iso2KeyInfoType->ANY.charactersLen); + if (errn == 0) { + if (iso2KeyInfoType->ANY.charactersLen >= 2) { + iso2KeyInfoType->ANY.charactersLen = (uint16_t)(iso2KeyInfoType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2KeyInfoType->ANY.charactersLen, iso2KeyInfoType->ANY.characters, iso2KeyInfoType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2KeyInfoType->ANY_isUsed = 1u; + grammarID = 1988; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1989: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2KeyInfoType->KeyName.arrayLen < iso2KeyInfoType_KeyName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen); + if (errn == 0) { + if (iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen >= 2) { + iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].charactersLen, iso2KeyInfoType->KeyName.array[iso2KeyInfoType->KeyName.arrayLen].characters, iso2KeyInfoType_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2KeyInfoType->KeyName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1988; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + if (iso2KeyInfoType->KeyValue.arrayLen < iso2KeyInfoType_KeyValue_ARRAY_SIZE) { + errn = decode_iso2KeyValueType(stream, &iso2KeyInfoType->KeyValue.array[iso2KeyInfoType->KeyValue.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 2: + if (iso2KeyInfoType->RetrievalMethod.arrayLen < iso2KeyInfoType_RetrievalMethod_ARRAY_SIZE) { + errn = decode_iso2RetrievalMethodType(stream, &iso2KeyInfoType->RetrievalMethod.array[iso2KeyInfoType->RetrievalMethod.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 3: + if (iso2KeyInfoType->X509Data.arrayLen < iso2KeyInfoType_X509Data_ARRAY_SIZE) { + errn = decode_iso2X509DataType(stream, &iso2KeyInfoType->X509Data.array[iso2KeyInfoType->X509Data.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 4: + if (iso2KeyInfoType->PGPData.arrayLen < iso2KeyInfoType_PGPData_ARRAY_SIZE) { + errn = decode_iso2PGPDataType(stream, &iso2KeyInfoType->PGPData.array[iso2KeyInfoType->PGPData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 5: + if (iso2KeyInfoType->SPKIData.arrayLen < iso2KeyInfoType_SPKIData_ARRAY_SIZE) { + errn = decode_iso2SPKIDataType(stream, &iso2KeyInfoType->SPKIData.array[iso2KeyInfoType->SPKIData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1988; + break; + case 6: + if (iso2KeyInfoType->MgmtData.arrayLen < iso2KeyInfoType_MgmtData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen); + if (errn == 0) { + if (iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen >= 2) { + iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].charactersLen, iso2KeyInfoType->MgmtData.array[iso2KeyInfoType->MgmtData.arrayLen].characters, iso2KeyInfoType_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2KeyInfoType->MgmtData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1988; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 7: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 1988; + break; + case 8: + errn = decodeUnsignedInteger16(stream, &iso2KeyInfoType->ANY.charactersLen); + if (errn == 0) { + if (iso2KeyInfoType->ANY.charactersLen >= 2) { + iso2KeyInfoType->ANY.charactersLen = (uint16_t)(iso2KeyInfoType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2KeyInfoType->ANY.charactersLen, iso2KeyInfoType->ANY.characters, iso2KeyInfoType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2KeyInfoType->ANY_isUsed = 1u; + grammarID = 1989; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SubCertificatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Certificate{1-4})', derivedBy='RESTRICTION'. */ +static int decode_iso2SubCertificatesType(bitstream_t* stream, struct iso2SubCertificatesType* iso2SubCertificatesType) { + int grammarID = 1990; + int done = 0; + + init_iso2SubCertificatesType(iso2SubCertificatesType); + + while(!done) { + switch(grammarID) { + case 1990: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SubCertificatesType->Certificate.arrayLen < iso2SubCertificatesType_Certificate_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType->Certificate.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType->Certificate.arrayLen].bytesLen) <= iso2SubCertificatesType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType->Certificate.arrayLen].bytesLen, iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType->Certificate.arrayLen].bytes); + } + iso2SubCertificatesType->Certificate.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1991; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1991: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SubCertificatesType->Certificate.arrayLen < iso2SubCertificatesType_Certificate_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType->Certificate.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType->Certificate.arrayLen].bytesLen) <= iso2SubCertificatesType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType->Certificate.arrayLen].bytesLen, iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType->Certificate.arrayLen].bytes); + } + iso2SubCertificatesType->Certificate.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1992; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1992: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SubCertificatesType->Certificate.arrayLen < iso2SubCertificatesType_Certificate_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType->Certificate.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType->Certificate.arrayLen].bytesLen) <= iso2SubCertificatesType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType->Certificate.arrayLen].bytesLen, iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType->Certificate.arrayLen].bytes); + } + iso2SubCertificatesType->Certificate.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1993; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1993: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SubCertificatesType->Certificate.arrayLen < iso2SubCertificatesType_Certificate_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType->Certificate.arrayLen].bytesLen); + if (errn == 0) { + errn = (iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType->Certificate.arrayLen].bytesLen) <= iso2SubCertificatesType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType->Certificate.arrayLen].bytesLen, iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType->Certificate.arrayLen].bytes); + } + iso2SubCertificatesType->Certificate.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":RootCertificateID{1-20})', derivedBy='RESTRICTION'. */ +static int decode_iso2ListOfRootCertificateIDsType(bitstream_t* stream, struct iso2ListOfRootCertificateIDsType* iso2ListOfRootCertificateIDsType) { + int grammarID = 1994; + int done = 0; + + init_iso2ListOfRootCertificateIDsType(iso2ListOfRootCertificateIDsType); + + while(!done) { + switch(grammarID) { + case 1994: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1995; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1995: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1996; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1996: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1997; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1997: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1998; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1998: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1999; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1999: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2000; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2000: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2001; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2001: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2002; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2002: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2003; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2003: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2004; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2004: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2005; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2005: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2006; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2006: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2007; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2007: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2008; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2008: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2009; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2009: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2010; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2010: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2011; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2011: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2012; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2012: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2013; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2013: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen < iso2ListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) { + errn = decode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array[iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVEnergyTransferParameterType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime)', derivedBy='RESTRICTION'. */ +static int decode_iso2EVEnergyTransferParameterType(bitstream_t* stream, struct iso2EVEnergyTransferParameterType* iso2EVEnergyTransferParameterType) { + int grammarID = 2014; + int done = 0; + + init_iso2EVEnergyTransferParameterType(iso2EVEnergyTransferParameterType); + + while(!done) { + switch(grammarID) { + case 2014: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &iso2EVEnergyTransferParameterType->DepartureTime); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ContractSignatureEncryptedPrivateKeyType', base type name='encryptedPrivateKeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int decode_iso2ContractSignatureEncryptedPrivateKeyType(bitstream_t* stream, struct iso2ContractSignatureEncryptedPrivateKeyType* iso2ContractSignatureEncryptedPrivateKeyType) { + int grammarID = 2015; + int done = 0; + + init_iso2ContractSignatureEncryptedPrivateKeyType(iso2ContractSignatureEncryptedPrivateKeyType); + + while(!done) { + switch(grammarID) { + case 2015: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgDataTypes}Id)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2ContractSignatureEncryptedPrivateKeyType->Id.charactersLen); + if (errn == 0) { + if (iso2ContractSignatureEncryptedPrivateKeyType->Id.charactersLen >= 2) { + iso2ContractSignatureEncryptedPrivateKeyType->Id.charactersLen = (uint16_t)(iso2ContractSignatureEncryptedPrivateKeyType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2ContractSignatureEncryptedPrivateKeyType->Id.charactersLen, iso2ContractSignatureEncryptedPrivateKeyType->Id.characters, iso2ContractSignatureEncryptedPrivateKeyType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 2016; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2016: + /* StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2ContractSignatureEncryptedPrivateKeyType->CONTENT.bytesLen); + if (errn == 0) { + errn = (iso2ContractSignatureEncryptedPrivateKeyType->CONTENT.bytesLen) <= iso2ContractSignatureEncryptedPrivateKeyType_CONTENT_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2ContractSignatureEncryptedPrivateKeyType->CONTENT.bytesLen, iso2ContractSignatureEncryptedPrivateKeyType->CONTENT.bytes); + } + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MagneticVectorSetupListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MagneticVectorSetup{1-255})', derivedBy='RESTRICTION'. */ +static int decode_iso2MagneticVectorSetupListType(bitstream_t* stream, struct iso2MagneticVectorSetupListType* iso2MagneticVectorSetupListType) { + int grammarID = 2017; + int done = 0; + + init_iso2MagneticVectorSetupListType(iso2MagneticVectorSetupListType); + + while(!done) { + switch(grammarID) { + case 2017: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2018; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2018: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2019; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2019: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2020; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2020: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2021; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2021: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2022; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2022: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2023; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2023: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2024; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2024: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2025; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2025: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2026; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2026: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2027; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2027: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2028; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2028: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2029; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2029: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2030; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2030: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2031; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2031: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2032; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2032: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2033; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2033: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2034; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2034: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2035; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2035: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2036; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2036: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2037; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2037: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2038; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2038: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2039; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2039: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2040; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2040: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2041; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2041: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2042; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2042: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2043; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2043: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2044; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2044: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2045; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2045: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2046; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2046: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2047; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2047: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2048; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2048: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2049; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2049: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2050; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2050: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2051; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2051: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2052; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2052: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2053; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2053: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2054; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2054: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2055; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2055: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2056; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2056: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2057; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2057: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2058; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2058: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2059; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2059: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2060; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2060: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2061; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2061: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2062; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2062: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2063; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2063: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2064; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2064: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2065; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2065: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2066; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2066: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2067; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2067: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2068; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2068: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2069; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2069: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2070; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2070: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2071; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2071: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2072; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2072: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2073; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2073: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2074; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2074: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2075; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2075: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2076; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2076: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2077; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2077: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2078; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2078: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2079; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2079: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2080; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2080: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2081; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2081: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2082; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2082: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2083; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2083: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2084; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2084: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2085; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2085: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2086; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2086: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2087; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2087: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2088; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2088: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2089; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2089: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2090; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2090: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2091; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2091: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2092; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2092: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2093; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2093: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2094; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2094: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2095; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2095: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2096; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2096: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2097; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2097: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2098; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2098: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2099; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2099: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2100; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2100: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2101; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2101: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2102; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2102: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2103; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2103: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2104; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2104: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2105; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2105: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2106; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2106: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2107; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2107: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2108; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2108: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2109; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2109: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2110; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2110: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2111; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2111: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2112; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2112: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2113; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2113: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2114; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2114: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2115; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2115: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2116; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2116: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2117; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2117: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2118; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2118: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2119; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2119: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2120; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2120: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2121; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2121: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2122; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2122: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2123; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2123: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2124; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2124: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2125; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2125: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2126; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2126: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2127; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2127: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2128; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2128: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2129; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2129: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2130; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2130: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2131; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2131: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2132; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2132: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2133; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2133: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2134; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2134: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2135; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2135: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2136; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2136: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2137; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2137: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2138; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2138: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2139; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2139: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2140; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2140: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2141; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2141: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2142; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2142: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2143; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2143: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2144; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2144: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2145; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2145: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2146; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2146: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2147; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2147: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2148; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2148: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2149; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2149: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2150; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2150: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2151; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2151: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2152; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2152: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2153; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2153: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2154; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2154: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2155; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2155: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2156; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2156: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2157; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2157: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2158; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2158: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2159; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2159: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2160; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2160: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2161; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2161: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2162; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2162: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2163; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2163: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2164; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2164: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2165; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2165: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2166; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2166: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2167; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2167: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2168; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2168: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2169; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2169: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2170; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2170: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2171; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2171: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2172; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2172: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2173; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2173: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2174; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2174: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2175; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2175: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2176; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2176: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2177; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2177: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2178; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2178: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2179; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2179: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2180; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2180: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2181; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2181: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2182; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2182: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2183; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2183: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2184; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2184: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2185; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2185: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2186; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2186: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2187; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2187: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2188; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2188: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2189; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2189: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2190; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2190: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2191; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2191: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2192; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2192: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2193; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2193: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2194; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2194: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2195; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2195: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2196; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2196: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2197; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2197: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2198; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2198: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2199; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2199: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2200; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2200: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2201; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2201: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2202; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2202: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2203; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2203: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2204; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2204: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2205; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2205: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2206; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2206: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2207; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2207: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2208; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2208: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2209; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2209: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2210; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2210: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2211; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2211: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2212; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2212: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2213; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2213: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2214; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2214: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2215; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2215: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2216; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2216: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2217; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2217: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2218; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2218: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2219; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2219: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2220; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2220: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2221; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2221: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2222; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2222: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2223; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2223: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2224; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2224: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2225; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2225: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2226; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2226: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2227; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2227: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2228; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2228: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2229; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2229: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2230; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2230: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2231; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2231: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2232; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2232: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2233; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2233: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2234; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2234: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2235; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2235: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2236; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2236: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2237; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2237: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2238; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2238: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2239; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2239: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2240; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2240: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2241; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2241: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2242; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2242: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2243; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2243: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2244; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2244: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2245; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2245: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2246; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2246: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2247; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2247: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2248; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2248: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2249; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2249: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2250; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2250: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2251; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2251: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2252; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2252: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2253; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2253: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2254; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2254: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2255; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2255: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2256; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2256: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2257; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2257: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2258; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2258: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2259; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2259: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2260; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2260: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2261; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2261: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2262; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2262: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2263; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2263: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2264; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2264: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2265; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2265: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2266; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2266: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2267; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2267: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2268; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2268: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2269; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2269: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2270; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2270: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2271; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2271: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen < iso2MagneticVectorSetupListType_MagneticVectorSetup_ARRAY_SIZE) { + errn = decode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array[iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PairingReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVProcessing,"urn:iso:15118:2:2016:MsgBody":PairingParameters{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso2PairingReqType(bitstream_t* stream, struct iso2PairingReqType* iso2PairingReqType) { + int grammarID = 2272; + int done = 0; + + init_iso2PairingReqType(iso2PairingReqType); + + while(!done) { + switch(grammarID) { + case 2272: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2PairingReqType->EVProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1827; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1827: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingParameters), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2ParameterSetType(stream, &iso2PairingReqType->PairingParameters); + iso2PairingReqType->PairingParameters_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CurrentDemandResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2016:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSEMaximumPower{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumVoltage{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2CurrentDemandResType(bitstream_t* stream, struct iso2CurrentDemandResType* iso2CurrentDemandResType) { + int grammarID = 2273; + int done = 0; + + init_iso2CurrentDemandResType(iso2CurrentDemandResType); + + while(!done) { + switch(grammarID) { + case 2273: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2CurrentDemandResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2274; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2274: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2CurrentDemandResType->EVSEStatus); + iso2CurrentDemandResType->EVSEStatus_isUsed = 1u; + grammarID = 2275; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandResType->EVSEPresentCurrent); + grammarID = 2276; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2275: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentCurrent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandResType->EVSEPresentCurrent); + grammarID = 2276; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2276: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentVoltage)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandResType->EVSEPresentVoltage); + grammarID = 2277; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2277: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPowerLimitAchieved)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2CurrentDemandResType->EVSEPowerLimitAchieved); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPowerLimitAchieved) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2278; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2278: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECurrentLimitAchieved)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2CurrentDemandResType->EVSECurrentLimitAchieved); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECurrentLimitAchieved) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2279; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2279: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEVoltageLimitAchieved)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2CurrentDemandResType->EVSEVoltageLimitAchieved); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEVoltageLimitAchieved) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2280; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2280: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandResType->EVSEMaximumPower); + iso2CurrentDemandResType->EVSEMaximumPower_isUsed = 1u; + grammarID = 2281; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandResType->EVSEMaximumCurrent); + iso2CurrentDemandResType->EVSEMaximumCurrent_isUsed = 1u; + grammarID = 2282; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandResType->EVSEMaximumVoltage); + iso2CurrentDemandResType->EVSEMaximumVoltage_isUsed = 1u; + grammarID = 27; + break; + case 3: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2CurrentDemandResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso2CurrentDemandResType->EVSEID.charactersLen >= 2) { + iso2CurrentDemandResType->EVSEID.charactersLen = (uint16_t)(iso2CurrentDemandResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2CurrentDemandResType->EVSEID.charactersLen, iso2CurrentDemandResType->EVSEID.characters, iso2CurrentDemandResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 28; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2281: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandResType->EVSEMaximumCurrent); + iso2CurrentDemandResType->EVSEMaximumCurrent_isUsed = 1u; + grammarID = 2282; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandResType->EVSEMaximumVoltage); + iso2CurrentDemandResType->EVSEMaximumVoltage_isUsed = 1u; + grammarID = 27; + break; + case 2: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2CurrentDemandResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso2CurrentDemandResType->EVSEID.charactersLen >= 2) { + iso2CurrentDemandResType->EVSEID.charactersLen = (uint16_t)(iso2CurrentDemandResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2CurrentDemandResType->EVSEID.charactersLen, iso2CurrentDemandResType->EVSEID.characters, iso2CurrentDemandResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 28; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2282: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2CurrentDemandResType->EVSEMaximumVoltage); + iso2CurrentDemandResType->EVSEMaximumVoltage_isUsed = 1u; + grammarID = 27; + break; + case 1: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2CurrentDemandResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso2CurrentDemandResType->EVSEID.charactersLen >= 2) { + iso2CurrentDemandResType->EVSEID.charactersLen = (uint16_t)(iso2CurrentDemandResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2CurrentDemandResType->EVSEID.charactersLen, iso2CurrentDemandResType->EVSEID.characters, iso2CurrentDemandResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 28; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 27: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2CurrentDemandResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso2CurrentDemandResType->EVSEID.charactersLen >= 2) { + iso2CurrentDemandResType->EVSEID.charactersLen = (uint16_t)(iso2CurrentDemandResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2CurrentDemandResType->EVSEID.charactersLen, iso2CurrentDemandResType->EVSEID.characters, iso2CurrentDemandResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 28; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 28: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2CurrentDemandResType->SAScheduleTupleID = (uint8_t)(uint32 + 1); + iso2CurrentDemandResType->SAScheduleTupleID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 29; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_iso2MeterInfoType(stream, &iso2CurrentDemandResType->MeterInfo); + iso2CurrentDemandResType->MeterInfo_isUsed = 1u; + grammarID = 30; + break; + case 2: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2CurrentDemandResType->ReceiptRequired); + iso2CurrentDemandResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 29: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2MeterInfoType(stream, &iso2CurrentDemandResType->MeterInfo); + iso2CurrentDemandResType->MeterInfo_isUsed = 1u; + grammarID = 30; + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2CurrentDemandResType->ReceiptRequired); + iso2CurrentDemandResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 30: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2CurrentDemandResType->ReceiptRequired); + iso2CurrentDemandResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */ +static int decode_iso2X509IssuerSerialType(bitstream_t* stream, struct iso2X509IssuerSerialType* iso2X509IssuerSerialType) { + int grammarID = 2283; + int done = 0; + + init_iso2X509IssuerSerialType(iso2X509IssuerSerialType); + + while(!done) { + switch(grammarID) { + case 2283: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2X509IssuerSerialType->X509IssuerName.charactersLen); + if (errn == 0) { + if (iso2X509IssuerSerialType->X509IssuerName.charactersLen >= 2) { + iso2X509IssuerSerialType->X509IssuerName.charactersLen = (uint16_t)(iso2X509IssuerSerialType->X509IssuerName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2X509IssuerSerialType->X509IssuerName.charactersLen, iso2X509IssuerSerialType->X509IssuerName.characters, iso2X509IssuerSerialType_X509IssuerName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2284; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2284: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &iso2X509IssuerSerialType->X509SerialNumber); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ChargingStatusReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumChargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumChargeCurrent{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2ChargingStatusReqType(bitstream_t* stream, struct iso2ChargingStatusReqType* iso2ChargingStatusReqType) { + int grammarID = 2285; + int done = 0; + + init_iso2ChargingStatusReqType(iso2ChargingStatusReqType); + + while(!done) { + switch(grammarID) { + case 2285: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetEnergyRequest)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVTargetEnergyRequest); + grammarID = 2286; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2286: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumEnergyRequest); + iso2ChargingStatusReqType->EVMaximumEnergyRequest_isUsed = 1u; + grammarID = 2287; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMinimumEnergyRequest); + iso2ChargingStatusReqType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 2288; + break; + case 2: + errn = decode_iso2DisplayParametersType(stream, &iso2ChargingStatusReqType->DisplayParameters); + iso2ChargingStatusReqType->DisplayParameters_isUsed = 1u; + grammarID = 2289; + break; + case 3: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumChargePower); + iso2ChargingStatusReqType->EVMaximumChargePower_isUsed = 1u; + grammarID = 2290; + break; + case 4: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumChargeCurrent); + iso2ChargingStatusReqType->EVMaximumChargeCurrent_isUsed = 1u; + grammarID = 2291; + break; + case 5: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMinimumChargeCurrent); + iso2ChargingStatusReqType->EVMinimumChargeCurrent_isUsed = 1u; + grammarID = 3; + break; + case 6: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2287: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMinimumEnergyRequest); + iso2ChargingStatusReqType->EVMinimumEnergyRequest_isUsed = 1u; + grammarID = 2288; + break; + case 1: + errn = decode_iso2DisplayParametersType(stream, &iso2ChargingStatusReqType->DisplayParameters); + iso2ChargingStatusReqType->DisplayParameters_isUsed = 1u; + grammarID = 2289; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumChargePower); + iso2ChargingStatusReqType->EVMaximumChargePower_isUsed = 1u; + grammarID = 2290; + break; + case 3: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumChargeCurrent); + iso2ChargingStatusReqType->EVMaximumChargeCurrent_isUsed = 1u; + grammarID = 2291; + break; + case 4: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMinimumChargeCurrent); + iso2ChargingStatusReqType->EVMinimumChargeCurrent_isUsed = 1u; + grammarID = 3; + break; + case 5: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2288: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2DisplayParametersType(stream, &iso2ChargingStatusReqType->DisplayParameters); + iso2ChargingStatusReqType->DisplayParameters_isUsed = 1u; + grammarID = 2289; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumChargePower); + iso2ChargingStatusReqType->EVMaximumChargePower_isUsed = 1u; + grammarID = 2290; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumChargeCurrent); + iso2ChargingStatusReqType->EVMaximumChargeCurrent_isUsed = 1u; + grammarID = 2291; + break; + case 3: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMinimumChargeCurrent); + iso2ChargingStatusReqType->EVMinimumChargeCurrent_isUsed = 1u; + grammarID = 3; + break; + case 4: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2289: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumChargePower); + iso2ChargingStatusReqType->EVMaximumChargePower_isUsed = 1u; + grammarID = 2290; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumChargeCurrent); + iso2ChargingStatusReqType->EVMaximumChargeCurrent_isUsed = 1u; + grammarID = 2291; + break; + case 2: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMinimumChargeCurrent); + iso2ChargingStatusReqType->EVMinimumChargeCurrent_isUsed = 1u; + grammarID = 3; + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2290: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumChargeCurrent); + iso2ChargingStatusReqType->EVMaximumChargeCurrent_isUsed = 1u; + grammarID = 2291; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMinimumChargeCurrent); + iso2ChargingStatusReqType->EVMinimumChargeCurrent_isUsed = 1u; + grammarID = 3; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2291: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMinimumChargeCurrent); + iso2ChargingStatusReqType->EVMinimumChargeCurrent_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CertificateInstallationResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2016:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2016:MsgBody":DHpublickey,"urn:iso:15118:2:2016:MsgBody":eMAID))', derivedBy='EXTENSION'. */ +static int decode_iso2CertificateInstallationResType(bitstream_t* stream, struct iso2CertificateInstallationResType* iso2CertificateInstallationResType) { + int grammarID = 2292; + int done = 0; + + init_iso2CertificateInstallationResType(iso2CertificateInstallationResType); + + while(!done) { + switch(grammarID) { + case 2292: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2CertificateInstallationResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2293; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2293: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAProvisioningCertificateChain)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2CertificateInstallationResType->EVSEStatus); + iso2CertificateInstallationResType->EVSEStatus_isUsed = 1u; + grammarID = 2294; + break; + case 1: + errn = decode_iso2CertificateChainType(stream, &iso2CertificateInstallationResType->SAProvisioningCertificateChain); + grammarID = 2295; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2294: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAProvisioningCertificateChain)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2CertificateChainType(stream, &iso2CertificateInstallationResType->SAProvisioningCertificateChain); + grammarID = 2295; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2295: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureCertChain)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2CertificateChainType(stream, &iso2CertificateInstallationResType->ContractSignatureCertChain); + grammarID = 2296; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2296: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureEncryptedPrivateKey)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2ContractSignatureEncryptedPrivateKeyType(stream, &iso2CertificateInstallationResType->ContractSignatureEncryptedPrivateKey); + grammarID = 2297; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2297: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DHpublickey)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2DiffieHellmanPublickeyType(stream, &iso2CertificateInstallationResType->DHpublickey); + grammarID = 2298; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2298: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}eMAID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EMAIDType(stream, &iso2CertificateInstallationResType->eMAID); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorPackageType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":PackageIndex,"urn:iso:15118:2:2016:MsgDataTypes":SensorMeasurements{1-255})', derivedBy='RESTRICTION'. */ +static int decode_iso2SensorPackageType(bitstream_t* stream, struct iso2SensorPackageType* iso2SensorPackageType) { + int grammarID = 2299; + int done = 0; + + init_iso2SensorPackageType(iso2SensorPackageType); + + while(!done) { + switch(grammarID) { + case 2299: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PackageIndex)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &iso2SensorPackageType->PackageIndex); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PackageIndex) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2300; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2300: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2301; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2301: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2302; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2302: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2303; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2303: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2304; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2304: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2305; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2305: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2306; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2306: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2307; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2307: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2308; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2308: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2309; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2309: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2310; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2310: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2311; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2311: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2312; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2312: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2313; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2313: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2314; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2314: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2315; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2315: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2316; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2316: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2317; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2317: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2318; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2318: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2319; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2319: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2320; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2320: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2321; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2321: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2322; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2322: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2323; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2323: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2324; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2324: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2325; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2325: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2326; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2326: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2327; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2327: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2328; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2328: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2329; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2329: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2330; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2330: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2331; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2331: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2332; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2332: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2333; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2333: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2334; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2334: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2335; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2335: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2336; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2336: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2337; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2337: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2338; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2338: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2339; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2339: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2340; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2340: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2341; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2341: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2342; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2342: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2343; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2343: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2344; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2344: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2345; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2345: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2346; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2346: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2347; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2347: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2348; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2348: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2349; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2349: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2350; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2350: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2351; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2351: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2352; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2352: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2353; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2353: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2354; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2354: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2355; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2355: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2356; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2356: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2357; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2357: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2358; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2358: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2359; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2359: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2360; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2360: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2361; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2361: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2362; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2362: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2363; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2363: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2364; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2364: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2365; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2365: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2366; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2366: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2367; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2367: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2368; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2368: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2369; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2369: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2370; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2370: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2371; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2371: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2372; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2372: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2373; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2373: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2374; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2374: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2375; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2375: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2376; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2376: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2377; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2377: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2378; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2378: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2379; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2379: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2380; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2380: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2381; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2381: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2382; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2382: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2383; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2383: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2384; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2384: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2385; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2385: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2386; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2386: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2387; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2387: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2388; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2388: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2389; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2389: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2390; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2390: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2391; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2391: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2392; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2392: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2393; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2393: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2394; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2394: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2395; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2395: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2396; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2396: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2397; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2397: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2398; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2398: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2399; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2399: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2400; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2400: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2401; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2401: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2402; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2402: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2403; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2403: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2404; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2404: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2405; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2405: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2406; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2406: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2407; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2407: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2408; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2408: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2409; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2409: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2410; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2410: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2411; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2411: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2412; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2412: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2413; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2413: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2414; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2414: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2415; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2415: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2416; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2416: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2417; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2417: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2418; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2418: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2419; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2419: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2420; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2420: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2421; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2421: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2422; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2422: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2423; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2423: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2424; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2424: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2425; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2425: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2426; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2426: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2427; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2427: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2428; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2428: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2429; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2429: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2430; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2430: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2431; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2431: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2432; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2432: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2433; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2433: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2434; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2434: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2435; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2435: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2436; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2436: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2437; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2437: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2438; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2438: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2439; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2439: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2440; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2440: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2441; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2441: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2442; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2442: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2443; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2443: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2444; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2444: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2445; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2445: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2446; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2446: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2447; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2447: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2448; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2448: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2449; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2449: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2450; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2450: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2451; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2451: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2452; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2452: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2453; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2453: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2454; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2454: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2455; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2455: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2456; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2456: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2457; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2457: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2458; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2458: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2459; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2459: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2460; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2460: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2461; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2461: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2462; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2462: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2463; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2463: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2464; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2464: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2465; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2465: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2466; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2466: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2467; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2467: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2468; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2468: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2469; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2469: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2470; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2470: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2471; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2471: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2472; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2472: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2473; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2473: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2474; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2474: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2475; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2475: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2476; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2476: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2477; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2477: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2478; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2478: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2479; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2479: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2480; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2480: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2481; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2481: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2482; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2482: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2483; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2483: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2484; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2484: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2485; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2485: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2486; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2486: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2487; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2487: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2488; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2488: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2489; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2489: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2490; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2490: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2491; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2491: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2492; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2492: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2493; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2493: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2494; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2494: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2495; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2495: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2496; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2496: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2497; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2497: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2498; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2498: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2499; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2499: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2500; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2500: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2501; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2501: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2502; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2502: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2503; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2503: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2504; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2504: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2505; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2505: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2506; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2506: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2507; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2507: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2508; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2508: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2509; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2509: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2510; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2510: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2511; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2511: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2512; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2512: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2513; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2513: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2514; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2514: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2515; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2515: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2516; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2516: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2517; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2517: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2518; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2518: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2519; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2519: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2520; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2520: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2521; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2521: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2522; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2522: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2523; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2523: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2524; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2524: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2525; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2525: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2526; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2526: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2527; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2527: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2528; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2528: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2529; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2529: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2530; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2530: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2531; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2531: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2532; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2532: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2533; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2533: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2534; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2534: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2535; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2535: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2536; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2536: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2537; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2537: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2538; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2538: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2539; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2539: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2540; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2540: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2541; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2541: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2542; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2542: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2543; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2543: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2544; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2544: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2545; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2545: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2546; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2546: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2547; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2547: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2548; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2548: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2549; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2549: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2550; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2550: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2551; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2551: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2552; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2552: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2553; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2553: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2554; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2554: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SensorPackageType->SensorMeasurements.arrayLen < iso2SensorPackageType_SensorMeasurements_ARRAY_SIZE) { + errn = decode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array[iso2SensorPackageType->SensorMeasurements.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */ +static int decode_iso2PGPDataType(bitstream_t* stream, struct iso2PGPDataType* iso2PGPDataType) { + int grammarID = 2555; + int done = 0; + + init_iso2PGPDataType(iso2PGPDataType); + + while(!done) { + switch(grammarID) { + case 2555: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2PGPDataType->PGPKeyID.bytesLen); + if (errn == 0) { + errn = (iso2PGPDataType->PGPKeyID.bytesLen) <= iso2PGPDataType_PGPKeyID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2PGPDataType->PGPKeyID.bytesLen, iso2PGPDataType->PGPKeyID.bytes); + } + iso2PGPDataType->PGPKeyID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2556; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2PGPDataType->PGPKeyPacket.bytesLen); + if (errn == 0) { + errn = (iso2PGPDataType->PGPKeyPacket.bytesLen) <= iso2PGPDataType_PGPKeyPacket_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2PGPDataType->PGPKeyPacket.bytesLen, iso2PGPDataType->PGPKeyPacket.bytes); + } + iso2PGPDataType->PGPKeyPacket_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2557; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2556: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2PGPDataType->PGPKeyPacket.bytesLen); + if (errn == 0) { + errn = (iso2PGPDataType->PGPKeyPacket.bytesLen) <= iso2PGPDataType_PGPKeyPacket_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2PGPDataType->PGPKeyPacket.bytesLen, iso2PGPDataType->PGPKeyPacket.bytes); + } + iso2PGPDataType->PGPKeyPacket_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2557; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 2557; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2557: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 2557; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ServiceDiscoveryResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":PaymentOptionList,"urn:iso:15118:2:2016:MsgBody":EnergyTransferServiceList,"urn:iso:15118:2:2016:MsgBody":VASList{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2ServiceDiscoveryResType(bitstream_t* stream, struct iso2ServiceDiscoveryResType* iso2ServiceDiscoveryResType) { + int grammarID = 2558; + int done = 0; + + init_iso2ServiceDiscoveryResType(iso2ServiceDiscoveryResType); + + while(!done) { + switch(grammarID) { + case 2558: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2ServiceDiscoveryResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2559; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2559: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentOptionList)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2ServiceDiscoveryResType->EVSEStatus); + iso2ServiceDiscoveryResType->EVSEStatus_isUsed = 1u; + grammarID = 2560; + break; + case 1: + errn = decode_iso2PaymentOptionListType(stream, &iso2ServiceDiscoveryResType->PaymentOptionList); + grammarID = 2561; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2560: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentOptionList)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PaymentOptionListType(stream, &iso2ServiceDiscoveryResType->PaymentOptionList); + grammarID = 2561; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2561: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EnergyTransferServiceList)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2ServiceListType(stream, &iso2ServiceDiscoveryResType->EnergyTransferServiceList); + grammarID = 2562; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2562: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VASList), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2ServiceListType(stream, &iso2ServiceDiscoveryResType->VASList); + iso2ServiceDiscoveryResType->VASList_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ServiceIDListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ServiceID{1-10})', derivedBy='RESTRICTION'. */ +static int decode_iso2ServiceIDListType(bitstream_t* stream, struct iso2ServiceIDListType* iso2ServiceIDListType) { + int grammarID = 2563; + int done = 0; + + init_iso2ServiceIDListType(iso2ServiceIDListType); + + while(!done) { + switch(grammarID) { + case 2563: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceIDListType->ServiceID.arrayLen < iso2ServiceIDListType_ServiceID_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType->ServiceID.arrayLen]); + iso2ServiceIDListType->ServiceID.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2564; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2564: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceIDListType->ServiceID.arrayLen < iso2ServiceIDListType_ServiceID_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType->ServiceID.arrayLen]); + iso2ServiceIDListType->ServiceID.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2565; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2565: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceIDListType->ServiceID.arrayLen < iso2ServiceIDListType_ServiceID_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType->ServiceID.arrayLen]); + iso2ServiceIDListType->ServiceID.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2566; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2566: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceIDListType->ServiceID.arrayLen < iso2ServiceIDListType_ServiceID_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType->ServiceID.arrayLen]); + iso2ServiceIDListType->ServiceID.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2567; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2567: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceIDListType->ServiceID.arrayLen < iso2ServiceIDListType_ServiceID_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType->ServiceID.arrayLen]); + iso2ServiceIDListType->ServiceID.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2568; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2568: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceIDListType->ServiceID.arrayLen < iso2ServiceIDListType_ServiceID_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType->ServiceID.arrayLen]); + iso2ServiceIDListType->ServiceID.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2569; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2569: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceIDListType->ServiceID.arrayLen < iso2ServiceIDListType_ServiceID_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType->ServiceID.arrayLen]); + iso2ServiceIDListType->ServiceID.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2570; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2570: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceIDListType->ServiceID.arrayLen < iso2ServiceIDListType_ServiceID_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType->ServiceID.arrayLen]); + iso2ServiceIDListType->ServiceID.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2571; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2571: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceIDListType->ServiceID.arrayLen < iso2ServiceIDListType_ServiceID_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType->ServiceID.arrayLen]); + iso2ServiceIDListType->ServiceID.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2572; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2572: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ServiceIDListType->ServiceID.arrayLen < iso2ServiceIDListType_ServiceID_ARRAY_SIZE) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType->ServiceID.arrayLen]); + iso2ServiceIDListType->ServiceID.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVFinePositioningSetupParametersType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int decode_iso2EVFinePositioningSetupParametersType(bitstream_t* stream, struct iso2EVFinePositioningSetupParametersType* iso2EVFinePositioningSetupParametersType) { + int grammarID = 674; + int done = 0; + + init_iso2EVFinePositioningSetupParametersType(iso2EVFinePositioningSetupParametersType); + + while(!done) { + switch(grammarID) { + case 674: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ChargeParameterDiscoveryResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":SAScheduleList{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVSEEnergyTransferParameter))', derivedBy='EXTENSION'. */ +static int decode_iso2ChargeParameterDiscoveryResType(bitstream_t* stream, struct iso2ChargeParameterDiscoveryResType* iso2ChargeParameterDiscoveryResType) { + int grammarID = 2573; + int done = 0; + + init_iso2ChargeParameterDiscoveryResType(iso2ChargeParameterDiscoveryResType); + + while(!done) { + switch(grammarID) { + case 2573: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2ChargeParameterDiscoveryResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2574; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2574: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2ChargeParameterDiscoveryResType->EVSEStatus); + iso2ChargeParameterDiscoveryResType->EVSEStatus_isUsed = 1u; + grammarID = 2575; + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2ChargeParameterDiscoveryResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2576; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2575: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2ChargeParameterDiscoveryResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2576; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2576: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyTransferParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVSEChargeParameter)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2SAScheduleListType(stream, &iso2ChargeParameterDiscoveryResType->SAScheduleList); + iso2ChargeParameterDiscoveryResType->SAScheduleList_isUsed = 1u; + grammarID = 2577; + break; + case 1: + errn = decode_iso2AC_EVSEBidirectionalParameterType(stream, &iso2ChargeParameterDiscoveryResType->AC_EVSEBidirectionalParameter); + iso2ChargeParameterDiscoveryResType->AC_EVSEBidirectionalParameter_isUsed = 1u; + grammarID = 3; + break; + case 2: + errn = decode_iso2AC_EVSEChargeParameterType(stream, &iso2ChargeParameterDiscoveryResType->AC_EVSEChargeParameter); + iso2ChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed = 1u; + grammarID = 3; + break; + case 3: + errn = decode_iso2DC_EVSEBidirectionalParameterType(stream, &iso2ChargeParameterDiscoveryResType->DC_EVSEBidirectionalParameter); + iso2ChargeParameterDiscoveryResType->DC_EVSEBidirectionalParameter_isUsed = 1u; + grammarID = 3; + break; + case 4: + errn = decode_iso2DC_EVSEChargeParameterType(stream, &iso2ChargeParameterDiscoveryResType->DC_EVSEChargeParameter); + iso2ChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed = 1u; + grammarID = 3; + break; + case 5: + errn = decode_iso2EVSEEnergyTransferParameterType(stream, &iso2ChargeParameterDiscoveryResType->EVSEEnergyTransferParameter); + iso2ChargeParameterDiscoveryResType->EVSEEnergyTransferParameter_isUsed = 1u; + grammarID = 3; + break; + case 6: + errn = decode_iso2WPT_EVSEChargeParameterType(stream, &iso2ChargeParameterDiscoveryResType->WPT_EVSEChargeParameter); + iso2ChargeParameterDiscoveryResType->WPT_EVSEChargeParameter_isUsed = 1u; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2577: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyTransferParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVSEChargeParameter)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2AC_EVSEBidirectionalParameterType(stream, &iso2ChargeParameterDiscoveryResType->AC_EVSEBidirectionalParameter); + iso2ChargeParameterDiscoveryResType->AC_EVSEBidirectionalParameter_isUsed = 1u; + grammarID = 3; + break; + case 1: + errn = decode_iso2AC_EVSEChargeParameterType(stream, &iso2ChargeParameterDiscoveryResType->AC_EVSEChargeParameter); + iso2ChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed = 1u; + grammarID = 3; + break; + case 2: + errn = decode_iso2DC_EVSEBidirectionalParameterType(stream, &iso2ChargeParameterDiscoveryResType->DC_EVSEBidirectionalParameter); + iso2ChargeParameterDiscoveryResType->DC_EVSEBidirectionalParameter_isUsed = 1u; + grammarID = 3; + break; + case 3: + errn = decode_iso2DC_EVSEChargeParameterType(stream, &iso2ChargeParameterDiscoveryResType->DC_EVSEChargeParameter); + iso2ChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed = 1u; + grammarID = 3; + break; + case 4: + errn = decode_iso2EVSEEnergyTransferParameterType(stream, &iso2ChargeParameterDiscoveryResType->EVSEEnergyTransferParameter); + iso2ChargeParameterDiscoveryResType->EVSEEnergyTransferParameter_isUsed = 1u; + grammarID = 3; + break; + case 5: + errn = decode_iso2WPT_EVSEChargeParameterType(stream, &iso2ChargeParameterDiscoveryResType->WPT_EVSEChargeParameter); + iso2ChargeParameterDiscoveryResType->WPT_EVSEChargeParameter_isUsed = 1u; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PowerDemandResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEOutputPower,"urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1},"urn:iso:15118:2:2016:MsgBody":PowerDemandParameters{0-1}))', derivedBy='EXTENSION'. */ +static int decode_iso2PowerDemandResType(bitstream_t* stream, struct iso2PowerDemandResType* iso2PowerDemandResType) { + int grammarID = 2578; + int done = 0; + + init_iso2PowerDemandResType(iso2PowerDemandResType); + + while(!done) { + switch(grammarID) { + case 2578: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2PowerDemandResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2579; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2579: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEOutputPower)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2PowerDemandResType->EVSEStatus); + iso2PowerDemandResType->EVSEStatus_isUsed = 1u; + grammarID = 2580; + break; + case 1: + errn = decode_iso2PhysicalValueType(stream, &iso2PowerDemandResType->EVSEOutputPower); + grammarID = 2581; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2580: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEOutputPower)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2PhysicalValueType(stream, &iso2PowerDemandResType->EVSEOutputPower); + grammarID = 2581; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2581: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2PowerDemandResType->EVSEID.charactersLen); + if (errn == 0) { + if (iso2PowerDemandResType->EVSEID.charactersLen >= 2) { + iso2PowerDemandResType->EVSEID.charactersLen = (uint16_t)(iso2PowerDemandResType->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2PowerDemandResType->EVSEID.charactersLen, iso2PowerDemandResType->EVSEID.characters, iso2PowerDemandResType_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2582; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2582: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandParameters), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2PowerDemandResType->SAScheduleTupleID = (uint8_t)(uint32 + 1); + iso2PowerDemandResType->SAScheduleTupleID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2583; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_iso2MeterInfoType(stream, &iso2PowerDemandResType->MeterInfo); + iso2PowerDemandResType->MeterInfo_isUsed = 1u; + grammarID = 2584; + break; + case 2: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2PowerDemandResType->ReceiptRequired); + iso2PowerDemandResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1873; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + errn = decode_iso2ParameterSetType(stream, &iso2PowerDemandResType->PowerDemandParameters); + iso2PowerDemandResType->PowerDemandParameters_isUsed = 1u; + grammarID = 3; + break; + case 4: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2583: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandParameters), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2MeterInfoType(stream, &iso2PowerDemandResType->MeterInfo); + iso2PowerDemandResType->MeterInfo_isUsed = 1u; + grammarID = 2584; + break; + case 1: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2PowerDemandResType->ReceiptRequired); + iso2PowerDemandResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1873; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + errn = decode_iso2ParameterSetType(stream, &iso2PowerDemandResType->PowerDemandParameters); + iso2PowerDemandResType->PowerDemandParameters_isUsed = 1u; + grammarID = 3; + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2584: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandParameters), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &iso2PowerDemandResType->ReceiptRequired); + iso2PowerDemandResType->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 1873; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = decode_iso2ParameterSetType(stream, &iso2PowerDemandResType->PowerDemandParameters); + iso2PowerDemandResType->PowerDemandParameters_isUsed = 1u; + grammarID = 3; + break; + case 2: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1873: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandParameters), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2ParameterSetType(stream, &iso2PowerDemandResType->PowerDemandParameters); + iso2PowerDemandResType->PowerDemandParameters_isUsed = 1u; + grammarID = 3; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ChargingProfileType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ProfileEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso2ChargingProfileType(bitstream_t* stream, struct iso2ChargingProfileType* iso2ChargingProfileType) { + int grammarID = 2585; + int done = 0; + + init_iso2ChargingProfileType(iso2ChargingProfileType); + + while(!done) { + switch(grammarID) { + case 2585: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ProfileEntry)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ChargingProfileType->ProfileEntry.arrayLen < iso2ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso2PMaxScheduleEntryType(stream, &iso2ChargingProfileType->ProfileEntry.array[iso2ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2586; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2586: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2ChargingProfileType->ProfileEntry.arrayLen < iso2ChargingProfileType_ProfileEntry_ARRAY_SIZE) { + errn = decode_iso2PMaxScheduleEntryType(stream, &iso2ChargingProfileType->ProfileEntry.array[iso2ChargingProfileType->ProfileEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2586; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,FinePositioningReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVProcessing,"urn:iso:15118:2:2016:MsgDataTypes":EVFinePositioningParameters{0-1})', derivedBy='EXTENSION'. */ +static int decode_iso2FinePositioningReqType(bitstream_t* stream, struct iso2FinePositioningReqType* iso2FinePositioningReqType) { + int grammarID = 2587; + int done = 0; + + init_iso2FinePositioningReqType(iso2FinePositioningReqType); + + while(!done) { + switch(grammarID) { + case 2587: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2FinePositioningReqType->EVProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2588; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2588: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningParameters), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVFinePositioningParametersType(stream, &iso2FinePositioningReqType->EVFinePositioningParameters); + iso2FinePositioningReqType->EVFinePositioningParameters_isUsed = 1u; + grammarID = 3; + break; + case 1: + errn = decode_iso2Generic_EVFinePositioningParametersType(stream, &iso2FinePositioningReqType->Generic_EVFinePositioningParameters); + iso2FinePositioningReqType->Generic_EVFinePositioningParameters_isUsed = 1u; + grammarID = 3; + break; + case 2: + errn = decode_iso2LFA_EVFinePositioningParametersType(stream, &iso2FinePositioningReqType->LFA_EVFinePositioningParameters); + iso2FinePositioningReqType->LFA_EVFinePositioningParameters_isUsed = 1u; + grammarID = 3; + break; + case 3: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SalesTariffType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SalesTariffID,"urn:iso:15118:2:2016:MsgDataTypes":SalesTariffDescription{0-1},"urn:iso:15118:2:2016:MsgDataTypes":NumEPriceLevels{0-1},"urn:iso:15118:2:2016:MsgDataTypes":SalesTariffEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso2SalesTariffType(bitstream_t* stream, struct iso2SalesTariffType* iso2SalesTariffType) { + int grammarID = 2589; + int done = 0; + + init_iso2SalesTariffType(iso2SalesTariffType); + + while(!done) { + switch(grammarID) { + case 2589: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgDataTypes}Id)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2SalesTariffType->Id.charactersLen); + if (errn == 0) { + if (iso2SalesTariffType->Id.charactersLen >= 2) { + iso2SalesTariffType->Id.charactersLen = (uint16_t)(iso2SalesTariffType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2SalesTariffType->Id.charactersLen, iso2SalesTariffType->Id.characters, iso2SalesTariffType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 2590; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2590: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SalesTariffType->SalesTariffID = (uint8_t)(uint32 + 1); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2591; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2591: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffEntry)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2SalesTariffType->SalesTariffDescription.charactersLen); + if (errn == 0) { + if (iso2SalesTariffType->SalesTariffDescription.charactersLen >= 2) { + iso2SalesTariffType->SalesTariffDescription.charactersLen = (uint16_t)(iso2SalesTariffType->SalesTariffDescription.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2SalesTariffType->SalesTariffDescription.charactersLen, iso2SalesTariffType->SalesTariffDescription.characters, iso2SalesTariffType_SalesTariffDescription_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2SalesTariffType->SalesTariffDescription_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffDescription) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2592; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SalesTariffType->NumEPriceLevels = (uint8_t)(uint32 + 0); + iso2SalesTariffType->NumEPriceLevels_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumEPriceLevels) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2593; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + if (iso2SalesTariffType->SalesTariffEntry.arrayLen < iso2SalesTariffType_SalesTariffEntry_ARRAY_SIZE) { + errn = decode_iso2SalesTariffEntryType(stream, &iso2SalesTariffType->SalesTariffEntry.array[iso2SalesTariffType->SalesTariffEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2594; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2592: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffEntry)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SalesTariffType->NumEPriceLevels = (uint8_t)(uint32 + 0); + iso2SalesTariffType->NumEPriceLevels_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumEPriceLevels) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2593; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + if (iso2SalesTariffType->SalesTariffEntry.arrayLen < iso2SalesTariffType_SalesTariffEntry_ARRAY_SIZE) { + errn = decode_iso2SalesTariffEntryType(stream, &iso2SalesTariffType->SalesTariffEntry.array[iso2SalesTariffType->SalesTariffEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2594; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2593: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffEntry)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SalesTariffType->SalesTariffEntry.arrayLen < iso2SalesTariffType_SalesTariffEntry_ARRAY_SIZE) { + errn = decode_iso2SalesTariffEntryType(stream, &iso2SalesTariffType->SalesTariffEntry.array[iso2SalesTariffType->SalesTariffEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2594; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2594: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SalesTariffType->SalesTariffEntry.arrayLen < iso2SalesTariffType_SalesTariffEntry_ARRAY_SIZE) { + errn = decode_iso2SalesTariffEntryType(stream, &iso2SalesTariffType->SalesTariffEntry.array[iso2SalesTariffType->SalesTariffEntry.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 2594; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SensorID,"urn:iso:15118:2:2016:MsgDataTypes":SensorPosition,"urn:iso:15118:2:2016:MsgDataTypes":SensorOrientation)', derivedBy='RESTRICTION'. */ +static int decode_iso2SensorType(bitstream_t* stream, struct iso2SensorType* iso2SensorType) { + int grammarID = 2595; + int done = 0; + + init_iso2SensorType(iso2SensorType); + + while(!done) { + switch(grammarID) { + case 2595: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + iso2SensorType->SensorID = (uint8_t)(uint32 + 0); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2596; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2596: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2CartesianCoordinatesType(stream, &iso2SensorType->SensorPosition); + grammarID = 2597; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2597: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorOrientation)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2CartesianCoordinatesType(stream, &iso2SensorType->SensorOrientation); + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int decode_iso2SignatureValueType(bitstream_t* stream, struct iso2SignatureValueType* iso2SignatureValueType) { + int grammarID = 2598; + int done = 0; + + init_iso2SignatureValueType(iso2SignatureValueType); + + while(!done) { + switch(grammarID) { + case 2598: + /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2SignatureValueType->Id.charactersLen); + if (errn == 0) { + if (iso2SignatureValueType->Id.charactersLen >= 2) { + iso2SignatureValueType->Id.charactersLen = (uint16_t)(iso2SignatureValueType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2SignatureValueType->Id.charactersLen, iso2SignatureValueType->Id.characters, iso2SignatureValueType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2SignatureValueType->Id_isUsed = 1u; + grammarID = 2016; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &iso2SignatureValueType->CONTENT.bytesLen); + if (errn == 0) { + errn = (iso2SignatureValueType->CONTENT.bytesLen) <= iso2SignatureValueType_CONTENT_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2SignatureValueType->CONTENT.bytesLen, iso2SignatureValueType->CONTENT.bytes); + } + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2016: + /* StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2SignatureValueType->CONTENT.bytesLen); + if (errn == 0) { + errn = (iso2SignatureValueType->CONTENT.bytesLen) <= iso2SignatureValueType_CONTENT_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2SignatureValueType->CONTENT.bytesLen, iso2SignatureValueType->CONTENT.bytes); + } + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_iso2SignedInfoType(bitstream_t* stream, struct iso2SignedInfoType* iso2SignedInfoType) { + int grammarID = 2599; + int done = 0; + + init_iso2SignedInfoType(iso2SignedInfoType); + + while(!done) { + switch(grammarID) { + case 2599: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2SignedInfoType->Id.charactersLen); + if (errn == 0) { + if (iso2SignedInfoType->Id.charactersLen >= 2) { + iso2SignedInfoType->Id.charactersLen = (uint16_t)(iso2SignedInfoType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2SignedInfoType->Id.charactersLen, iso2SignedInfoType->Id.characters, iso2SignedInfoType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + iso2SignedInfoType->Id_isUsed = 1u; + grammarID = 2600; + break; + case 1: + errn = decode_iso2CanonicalizationMethodType(stream, &iso2SignedInfoType->CanonicalizationMethod); + grammarID = 2601; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2600: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2CanonicalizationMethodType(stream, &iso2SignedInfoType->CanonicalizationMethod); + grammarID = 2601; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2601: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2SignatureMethodType(stream, &iso2SignedInfoType->SignatureMethod); + grammarID = 2602; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2602: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SignedInfoType->Reference.arrayLen < iso2SignedInfoType_Reference_ARRAY_SIZE) { + errn = decode_iso2ReferenceType(stream, &iso2SignedInfoType->Reference.array[iso2SignedInfoType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1964; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1964: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (iso2SignedInfoType->Reference.arrayLen < iso2SignedInfoType_Reference_ARRAY_SIZE) { + errn = decode_iso2ReferenceType(stream, &iso2SignedInfoType->Reference.array[iso2SignedInfoType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 1964; + break; + case 1: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PowerDeliveryResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing))', derivedBy='EXTENSION'. */ +static int decode_iso2PowerDeliveryResType(bitstream_t* stream, struct iso2PowerDeliveryResType* iso2PowerDeliveryResType) { + int grammarID = 5; + int done = 0; + + init_iso2PowerDeliveryResType(iso2PowerDeliveryResType); + + while(!done) { + switch(grammarID) { + case 5: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + iso2PowerDeliveryResType->ResponseCode = (iso2responseCodeType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 6; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 6: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_iso2EVSEStatusType(stream, &iso2PowerDeliveryResType->EVSEStatus); + iso2PowerDeliveryResType->EVSEStatus_isUsed = 1u; + grammarID = 7; + break; + case 1: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2PowerDeliveryResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 7: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + iso2PowerDeliveryResType->EVSEProcessing = (iso2EVSEProcessingType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CableCheckReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int decode_iso2CableCheckReqType(bitstream_t* stream, struct iso2CableCheckReqType* iso2CableCheckReqType) { + int grammarID = 674; + int done = 0; + + init_iso2CableCheckReqType(iso2CableCheckReqType); + + while(!done) { + switch(grammarID) { + case 674: + /* FirstStartTag[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SelectedServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ServiceID,"urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID)', derivedBy='RESTRICTION'. */ +static int decode_iso2SelectedServiceType(bitstream_t* stream, struct iso2SelectedServiceType* iso2SelectedServiceType) { + int grammarID = 2603; + int done = 0; + + init_iso2SelectedServiceType(iso2SelectedServiceType); + + while(!done) { + switch(grammarID) { + case 2603: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2SelectedServiceType->ServiceID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2604; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2604: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSetID)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2SelectedServiceType->ParameterSetID); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSetID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DiffieHellmanPublickeyType', base type name='dHpublickeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int decode_iso2DiffieHellmanPublickeyType(bitstream_t* stream, struct iso2DiffieHellmanPublickeyType* iso2DiffieHellmanPublickeyType) { + int grammarID = 2015; + int done = 0; + + init_iso2DiffieHellmanPublickeyType(iso2DiffieHellmanPublickeyType); + + while(!done) { + switch(grammarID) { + case 2015: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgDataTypes}Id)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2DiffieHellmanPublickeyType->Id.charactersLen); + if (errn == 0) { + if (iso2DiffieHellmanPublickeyType->Id.charactersLen >= 2) { + iso2DiffieHellmanPublickeyType->Id.charactersLen = (uint16_t)(iso2DiffieHellmanPublickeyType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, iso2DiffieHellmanPublickeyType->Id.charactersLen, iso2DiffieHellmanPublickeyType->Id.characters, iso2DiffieHellmanPublickeyType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 2016; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2016: + /* StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &iso2DiffieHellmanPublickeyType->CONTENT.bytesLen); + if (errn == 0) { + errn = (iso2DiffieHellmanPublickeyType->CONTENT.bytesLen) <= iso2DiffieHellmanPublickeyType_CONTENT_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, iso2DiffieHellmanPublickeyType->CONTENT.bytesLen, iso2DiffieHellmanPublickeyType->CONTENT.bytes); + } + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ +static int decode_iso2EVSEStatusType(bitstream_t* stream, struct iso2EVSEStatusType* iso2EVSEStatusType) { + int grammarID = 2605; + int done = 0; + + init_iso2EVSEStatusType(iso2EVSEStatusType); + + while(!done) { + switch(grammarID) { + case 2605: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NotificationMaxDelay)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &iso2EVSEStatusType->NotificationMaxDelay); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NotificationMaxDelay) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2606; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2606: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENotification)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + iso2EVSEStatusType->EVSENotification = (iso2EVSENotificationType) uint32; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENotification) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 3; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 3: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 4; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + + + + +int decode_iso2ExiDocument(bitstream_t* stream, struct iso2EXIDocument* exiDoc) { + errn = readEXIHeader(stream); + + if(errn == 0) { + /* DocContent[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVEnergyTransferParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyTransferParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVSEFinePositioningParameters), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningSetupParameters), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleList), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GResponse), START_ELEMENT({urn:iso:15118:2:2016:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] */ + init_iso2EXIDocument(exiDoc); + errn = decodeNBitUnsignedInteger(stream, 7, &eventCode); + if(errn == 0) { + switch(eventCode) { + case 0: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlReq) */ + errn = decode_iso2AC_BidirectionalControlReqType(stream, &exiDoc->AC_BidirectionalControlReq); + exiDoc->AC_BidirectionalControlReq_isUsed = 1u; + break; + case 1: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlRes) */ + errn = decode_iso2AC_BidirectionalControlResType(stream, &exiDoc->AC_BidirectionalControlRes); + exiDoc->AC_BidirectionalControlRes_isUsed = 1u; + break; + case 2: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVBidirectionalParameter) */ + errn = decode_iso2AC_EVBidirectionalParameterType(stream, &exiDoc->AC_EVBidirectionalParameter); + exiDoc->AC_EVBidirectionalParameter_isUsed = 1u; + break; + case 3: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVChargeParameter) */ + errn = decode_iso2AC_EVChargeParameterType(stream, &exiDoc->AC_EVChargeParameter); + exiDoc->AC_EVChargeParameter_isUsed = 1u; + break; + case 4: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEBidirectionalParameter) */ + errn = decode_iso2AC_EVSEBidirectionalParameterType(stream, &exiDoc->AC_EVSEBidirectionalParameter); + exiDoc->AC_EVSEBidirectionalParameter_isUsed = 1u; + break; + case 5: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEChargeParameter) */ + errn = decode_iso2AC_EVSEChargeParameterType(stream, &exiDoc->AC_EVSEChargeParameter); + exiDoc->AC_EVSEChargeParameter_isUsed = 1u; + break; + case 6: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckReq) */ + errn = decode_iso2AlignmentCheckReqType(stream, &exiDoc->AlignmentCheckReq); + exiDoc->AlignmentCheckReq_isUsed = 1u; + break; + case 7: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckRes) */ + errn = decode_iso2AlignmentCheckResType(stream, &exiDoc->AlignmentCheckRes); + exiDoc->AlignmentCheckRes_isUsed = 1u; + break; + case 8: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationReq) */ + errn = decode_iso2AuthorizationReqType(stream, &exiDoc->AuthorizationReq); + exiDoc->AuthorizationReq_isUsed = 1u; + break; + case 9: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationRes) */ + errn = decode_iso2AuthorizationResType(stream, &exiDoc->AuthorizationRes); + exiDoc->AuthorizationRes_isUsed = 1u; + break; + case 10: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}BodyElement) */ + errn = decode_iso2BodyBaseType(stream, &exiDoc->BodyElement); + exiDoc->BodyElement_isUsed = 1u; + break; + case 11: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckReq) */ + errn = decode_iso2CableCheckReqType(stream, &exiDoc->CableCheckReq); + exiDoc->CableCheckReq_isUsed = 1u; + break; + case 12: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckRes) */ + errn = decode_iso2CableCheckResType(stream, &exiDoc->CableCheckRes); + exiDoc->CableCheckRes_isUsed = 1u; + break; + case 13: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */ + errn = decode_iso2CanonicalizationMethodType(stream, &exiDoc->CanonicalizationMethod); + exiDoc->CanonicalizationMethod_isUsed = 1u; + break; + case 14: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationReq) */ + errn = decode_iso2CertificateInstallationReqType(stream, &exiDoc->CertificateInstallationReq); + exiDoc->CertificateInstallationReq_isUsed = 1u; + break; + case 15: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationRes) */ + errn = decode_iso2CertificateInstallationResType(stream, &exiDoc->CertificateInstallationRes); + exiDoc->CertificateInstallationRes_isUsed = 1u; + break; + case 16: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateReq) */ + errn = decode_iso2CertificateUpdateReqType(stream, &exiDoc->CertificateUpdateReq); + exiDoc->CertificateUpdateReq_isUsed = 1u; + break; + case 17: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateRes) */ + errn = decode_iso2CertificateUpdateResType(stream, &exiDoc->CertificateUpdateRes); + exiDoc->CertificateUpdateRes_isUsed = 1u; + break; + case 18: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryReq) */ + errn = decode_iso2ChargeParameterDiscoveryReqType(stream, &exiDoc->ChargeParameterDiscoveryReq); + exiDoc->ChargeParameterDiscoveryReq_isUsed = 1u; + break; + case 19: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryRes) */ + errn = decode_iso2ChargeParameterDiscoveryResType(stream, &exiDoc->ChargeParameterDiscoveryRes); + exiDoc->ChargeParameterDiscoveryRes_isUsed = 1u; + break; + case 20: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusReq) */ + errn = decode_iso2ChargingStatusReqType(stream, &exiDoc->ChargingStatusReq); + exiDoc->ChargingStatusReq_isUsed = 1u; + break; + case 21: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusRes) */ + errn = decode_iso2ChargingStatusResType(stream, &exiDoc->ChargingStatusRes); + exiDoc->ChargingStatusRes_isUsed = 1u; + break; + case 22: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceReq) */ + errn = decode_iso2ConnectChargingDeviceReqType(stream, &exiDoc->ConnectChargingDeviceReq); + exiDoc->ConnectChargingDeviceReq_isUsed = 1u; + break; + case 23: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceRes) */ + errn = decode_iso2ConnectChargingDeviceResType(stream, &exiDoc->ConnectChargingDeviceRes); + exiDoc->ConnectChargingDeviceRes_isUsed = 1u; + break; + case 24: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandReq) */ + errn = decode_iso2CurrentDemandReqType(stream, &exiDoc->CurrentDemandReq); + exiDoc->CurrentDemandReq_isUsed = 1u; + break; + case 25: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandRes) */ + errn = decode_iso2CurrentDemandResType(stream, &exiDoc->CurrentDemandRes); + exiDoc->CurrentDemandRes_isUsed = 1u; + break; + case 26: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlReq) */ + errn = decode_iso2DC_BidirectionalControlReqType(stream, &exiDoc->DC_BidirectionalControlReq); + exiDoc->DC_BidirectionalControlReq_isUsed = 1u; + break; + case 27: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlRes) */ + errn = decode_iso2DC_BidirectionalControlResType(stream, &exiDoc->DC_BidirectionalControlRes); + exiDoc->DC_BidirectionalControlRes_isUsed = 1u; + break; + case 28: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVBidirectionalParameter) */ + errn = decode_iso2DC_EVBidirectionalParameterType(stream, &exiDoc->DC_EVBidirectionalParameter); + exiDoc->DC_EVBidirectionalParameter_isUsed = 1u; + break; + case 29: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVChargeParameter) */ + errn = decode_iso2DC_EVChargeParameterType(stream, &exiDoc->DC_EVChargeParameter); + exiDoc->DC_EVChargeParameter_isUsed = 1u; + break; + case 30: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEBidirectionalParameter) */ + errn = decode_iso2DC_EVSEBidirectionalParameterType(stream, &exiDoc->DC_EVSEBidirectionalParameter); + exiDoc->DC_EVSEBidirectionalParameter_isUsed = 1u; + break; + case 31: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEChargeParameter) */ + errn = decode_iso2DC_EVSEChargeParameterType(stream, &exiDoc->DC_EVSEChargeParameter); + exiDoc->DC_EVSEChargeParameter_isUsed = 1u; + break; + case 32: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */ + errn = decode_iso2DSAKeyValueType(stream, &exiDoc->DSAKeyValue); + exiDoc->DSAKeyValue_isUsed = 1u; + break; + case 33: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */ + errn = decode_iso2DigestMethodType(stream, &exiDoc->DigestMethod); + exiDoc->DigestMethod_isUsed = 1u; + break; + case 34: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiDoc->DigestValue.bytesLen); + if (errn == 0) { + errn = (exiDoc->DigestValue.bytesLen) <= iso2EXIDocument_DigestValue_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiDoc->DigestValue.bytesLen, exiDoc->DigestValue.bytes); + } + exiDoc->DigestValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 35: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceReq) */ + errn = decode_iso2DisconnectChargingDeviceReqType(stream, &exiDoc->DisconnectChargingDeviceReq); + exiDoc->DisconnectChargingDeviceReq_isUsed = 1u; + break; + case 36: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceRes) */ + errn = decode_iso2DisconnectChargingDeviceResType(stream, &exiDoc->DisconnectChargingDeviceRes); + exiDoc->DisconnectChargingDeviceRes_isUsed = 1u; + break; + case 37: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVEnergyTransferParameter) */ + errn = decode_iso2EVEnergyTransferParameterType(stream, &exiDoc->EVEnergyTransferParameter); + exiDoc->EVEnergyTransferParameter_isUsed = 1u; + break; + case 38: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningParameters) */ + errn = decode_iso2EVFinePositioningParametersType(stream, &exiDoc->EVFinePositioningParameters); + exiDoc->EVFinePositioningParameters_isUsed = 1u; + break; + case 39: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningSetupParameters) */ + errn = decode_iso2EVFinePositioningSetupParametersType(stream, &exiDoc->EVFinePositioningSetupParameters); + exiDoc->EVFinePositioningSetupParameters_isUsed = 1u; + break; + case 40: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyTransferParameter) */ + errn = decode_iso2EVSEEnergyTransferParameterType(stream, &exiDoc->EVSEEnergyTransferParameter); + exiDoc->EVSEEnergyTransferParameter_isUsed = 1u; + break; + case 41: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningParameters) */ + errn = decode_iso2EVSEFinePositioningParametersType(stream, &exiDoc->EVSEFinePositioningParameters); + exiDoc->EVSEFinePositioningParameters_isUsed = 1u; + break; + case 42: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningSetupParameters) */ + errn = decode_iso2EVSEFinePositioningSetupParametersType(stream, &exiDoc->EVSEFinePositioningSetupParameters); + exiDoc->EVSEFinePositioningSetupParameters_isUsed = 1u; + break; + case 43: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningReq) */ + errn = decode_iso2FinePositioningReqType(stream, &exiDoc->FinePositioningReq); + exiDoc->FinePositioningReq_isUsed = 1u; + break; + case 44: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningRes) */ + errn = decode_iso2FinePositioningResType(stream, &exiDoc->FinePositioningRes); + exiDoc->FinePositioningRes_isUsed = 1u; + break; + case 45: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupReq) */ + errn = decode_iso2FinePositioningSetupReqType(stream, &exiDoc->FinePositioningSetupReq); + exiDoc->FinePositioningSetupReq_isUsed = 1u; + break; + case 46: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupRes) */ + errn = decode_iso2FinePositioningSetupResType(stream, &exiDoc->FinePositioningSetupRes); + exiDoc->FinePositioningSetupRes_isUsed = 1u; + break; + case 47: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVFinePositioningParameters) */ + errn = decode_iso2Generic_EVFinePositioningParametersType(stream, &exiDoc->Generic_EVFinePositioningParameters); + exiDoc->Generic_EVFinePositioningParameters_isUsed = 1u; + break; + case 48: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVSEFinePositioningParameters) */ + errn = decode_iso2Generic_EVSEFinePositioningParametersType(stream, &exiDoc->Generic_EVSEFinePositioningParameters); + exiDoc->Generic_EVSEFinePositioningParameters_isUsed = 1u; + break; + case 49: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */ + errn = decode_iso2KeyInfoType(stream, &exiDoc->KeyInfo); + exiDoc->KeyInfo_isUsed = 1u; + break; + case 50: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiDoc->KeyName.charactersLen); + if (errn == 0) { + if (exiDoc->KeyName.charactersLen >= 2) { + exiDoc->KeyName.charactersLen = (uint16_t)(exiDoc->KeyName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiDoc->KeyName.charactersLen, exiDoc->KeyName.characters, iso2EXIDocument_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiDoc->KeyName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 51: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */ + errn = decode_iso2KeyValueType(stream, &exiDoc->KeyValue); + exiDoc->KeyValue_isUsed = 1u; + break; + case 52: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningParameters) */ + errn = decode_iso2LFA_EVFinePositioningParametersType(stream, &exiDoc->LFA_EVFinePositioningParameters); + exiDoc->LFA_EVFinePositioningParameters_isUsed = 1u; + break; + case 53: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningSetupParameters) */ + errn = decode_iso2LFA_EVFinePositioningSetupParametersType(stream, &exiDoc->LFA_EVFinePositioningSetupParameters); + exiDoc->LFA_EVFinePositioningSetupParameters_isUsed = 1u; + break; + case 54: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningParameters) */ + errn = decode_iso2LFA_EVSEFinePositioningParametersType(stream, &exiDoc->LFA_EVSEFinePositioningParameters); + exiDoc->LFA_EVSEFinePositioningParameters_isUsed = 1u; + break; + case 55: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningSetupParameters) */ + errn = decode_iso2LFA_EVSEFinePositioningSetupParametersType(stream, &exiDoc->LFA_EVSEFinePositioningSetupParameters); + exiDoc->LFA_EVSEFinePositioningSetupParameters_isUsed = 1u; + break; + case 56: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningParameters) */ + errn = decode_iso2MV_EVSEFinePositioningParametersType(stream, &exiDoc->MV_EVSEFinePositioningParameters); + exiDoc->MV_EVSEFinePositioningParameters_isUsed = 1u; + break; + case 57: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningSetupParameters) */ + errn = decode_iso2MV_EVSEFinePositioningSetupParametersType(stream, &exiDoc->MV_EVSEFinePositioningSetupParameters); + exiDoc->MV_EVSEFinePositioningSetupParameters_isUsed = 1u; + break; + case 58: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */ + errn = decode_iso2ManifestType(stream, &exiDoc->Manifest); + exiDoc->Manifest_isUsed = 1u; + break; + case 59: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptReq) */ + errn = decode_iso2MeteringReceiptReqType(stream, &exiDoc->MeteringReceiptReq); + exiDoc->MeteringReceiptReq_isUsed = 1u; + break; + case 60: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptRes) */ + errn = decode_iso2MeteringReceiptResType(stream, &exiDoc->MeteringReceiptRes); + exiDoc->MeteringReceiptRes_isUsed = 1u; + break; + case 61: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiDoc->MgmtData.charactersLen); + if (errn == 0) { + if (exiDoc->MgmtData.charactersLen >= 2) { + exiDoc->MgmtData.charactersLen = (uint16_t)(exiDoc->MgmtData.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiDoc->MgmtData.charactersLen, exiDoc->MgmtData.characters, iso2EXIDocument_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiDoc->MgmtData_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 62: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */ + errn = decode_iso2ObjectType(stream, &exiDoc->Object); + exiDoc->Object_isUsed = 1u; + break; + case 63: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */ + errn = decode_iso2PGPDataType(stream, &exiDoc->PGPData); + exiDoc->PGPData_isUsed = 1u; + break; + case 64: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxScheduleEntry) */ + errn = decode_iso2PMaxScheduleEntryType(stream, &exiDoc->PMaxScheduleEntry); + exiDoc->PMaxScheduleEntry_isUsed = 1u; + break; + case 65: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingReq) */ + errn = decode_iso2PairingReqType(stream, &exiDoc->PairingReq); + exiDoc->PairingReq_isUsed = 1u; + break; + case 66: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingRes) */ + errn = decode_iso2PairingResType(stream, &exiDoc->PairingRes); + exiDoc->PairingRes_isUsed = 1u; + break; + case 67: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsReq) */ + errn = decode_iso2PaymentDetailsReqType(stream, &exiDoc->PaymentDetailsReq); + exiDoc->PaymentDetailsReq_isUsed = 1u; + break; + case 68: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsRes) */ + errn = decode_iso2PaymentDetailsResType(stream, &exiDoc->PaymentDetailsRes); + exiDoc->PaymentDetailsRes_isUsed = 1u; + break; + case 69: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionReq) */ + errn = decode_iso2PaymentServiceSelectionReqType(stream, &exiDoc->PaymentServiceSelectionReq); + exiDoc->PaymentServiceSelectionReq_isUsed = 1u; + break; + case 70: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionRes) */ + errn = decode_iso2PaymentServiceSelectionResType(stream, &exiDoc->PaymentServiceSelectionRes); + exiDoc->PaymentServiceSelectionRes_isUsed = 1u; + break; + case 71: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryReq) */ + errn = decode_iso2PowerDeliveryReqType(stream, &exiDoc->PowerDeliveryReq); + exiDoc->PowerDeliveryReq_isUsed = 1u; + break; + case 72: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryRes) */ + errn = decode_iso2PowerDeliveryResType(stream, &exiDoc->PowerDeliveryRes); + exiDoc->PowerDeliveryRes_isUsed = 1u; + break; + case 73: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandReq) */ + errn = decode_iso2PowerDemandReqType(stream, &exiDoc->PowerDemandReq); + exiDoc->PowerDemandReq_isUsed = 1u; + break; + case 74: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandRes) */ + errn = decode_iso2PowerDemandResType(stream, &exiDoc->PowerDemandRes); + exiDoc->PowerDemandRes_isUsed = 1u; + break; + case 75: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeReq) */ + errn = decode_iso2PreChargeReqType(stream, &exiDoc->PreChargeReq); + exiDoc->PreChargeReq_isUsed = 1u; + break; + case 76: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeRes) */ + errn = decode_iso2PreChargeResType(stream, &exiDoc->PreChargeRes); + exiDoc->PreChargeRes_isUsed = 1u; + break; + case 77: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */ + errn = decode_iso2RSAKeyValueType(stream, &exiDoc->RSAKeyValue); + exiDoc->RSAKeyValue_isUsed = 1u; + break; + case 78: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */ + errn = decode_iso2ReferenceType(stream, &exiDoc->Reference); + exiDoc->Reference_isUsed = 1u; + break; + case 79: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RelativeTimeInterval) */ + errn = decode_iso2RelativeTimeIntervalType(stream, &exiDoc->RelativeTimeInterval); + exiDoc->RelativeTimeInterval_isUsed = 1u; + break; + case 80: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */ + errn = decode_iso2RetrievalMethodType(stream, &exiDoc->RetrievalMethod); + exiDoc->RetrievalMethod_isUsed = 1u; + break; + case 81: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleList) */ + errn = decode_iso2SAScheduleListType(stream, &exiDoc->SAScheduleList); + exiDoc->SAScheduleList_isUsed = 1u; + break; + case 82: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */ + errn = decode_iso2SPKIDataType(stream, &exiDoc->SPKIData); + exiDoc->SPKIData_isUsed = 1u; + break; + case 83: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffEntry) */ + errn = decode_iso2SalesTariffEntryType(stream, &exiDoc->SalesTariffEntry); + exiDoc->SalesTariffEntry_isUsed = 1u; + break; + case 84: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailReq) */ + errn = decode_iso2ServiceDetailReqType(stream, &exiDoc->ServiceDetailReq); + exiDoc->ServiceDetailReq_isUsed = 1u; + break; + case 85: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailRes) */ + errn = decode_iso2ServiceDetailResType(stream, &exiDoc->ServiceDetailRes); + exiDoc->ServiceDetailRes_isUsed = 1u; + break; + case 86: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryReq) */ + errn = decode_iso2ServiceDiscoveryReqType(stream, &exiDoc->ServiceDiscoveryReq); + exiDoc->ServiceDiscoveryReq_isUsed = 1u; + break; + case 87: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryRes) */ + errn = decode_iso2ServiceDiscoveryResType(stream, &exiDoc->ServiceDiscoveryRes); + exiDoc->ServiceDiscoveryRes_isUsed = 1u; + break; + case 88: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupReq) */ + errn = decode_iso2SessionSetupReqType(stream, &exiDoc->SessionSetupReq); + exiDoc->SessionSetupReq_isUsed = 1u; + break; + case 89: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupRes) */ + errn = decode_iso2SessionSetupResType(stream, &exiDoc->SessionSetupRes); + exiDoc->SessionSetupRes_isUsed = 1u; + break; + case 90: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopReq) */ + errn = decode_iso2SessionStopReqType(stream, &exiDoc->SessionStopReq); + exiDoc->SessionStopReq_isUsed = 1u; + break; + case 91: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopRes) */ + errn = decode_iso2SessionStopResType(stream, &exiDoc->SessionStopRes); + exiDoc->SessionStopRes_isUsed = 1u; + break; + case 92: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */ + errn = decode_iso2SignatureType(stream, &exiDoc->Signature); + exiDoc->Signature_isUsed = 1u; + break; + case 93: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */ + errn = decode_iso2SignatureMethodType(stream, &exiDoc->SignatureMethod); + exiDoc->SignatureMethod_isUsed = 1u; + break; + case 94: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */ + errn = decode_iso2SignaturePropertiesType(stream, &exiDoc->SignatureProperties); + exiDoc->SignatureProperties_isUsed = 1u; + break; + case 95: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */ + errn = decode_iso2SignaturePropertyType(stream, &exiDoc->SignatureProperty); + exiDoc->SignatureProperty_isUsed = 1u; + break; + case 96: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */ + errn = decode_iso2SignatureValueType(stream, &exiDoc->SignatureValue); + exiDoc->SignatureValue_isUsed = 1u; + break; + case 97: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */ + errn = decode_iso2SignedInfoType(stream, &exiDoc->SignedInfo); + exiDoc->SignedInfo_isUsed = 1u; + break; + case 98: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusReq) */ + errn = decode_iso2SystemStatusReqType(stream, &exiDoc->SystemStatusReq); + exiDoc->SystemStatusReq_isUsed = 1u; + break; + case 99: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusRes) */ + errn = decode_iso2SystemStatusResType(stream, &exiDoc->SystemStatusRes); + exiDoc->SystemStatusRes_isUsed = 1u; + break; + case 100: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */ + errn = decode_iso2TransformType(stream, &exiDoc->Transform); + exiDoc->Transform_isUsed = 1u; + break; + case 101: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */ + errn = decode_iso2TransformsType(stream, &exiDoc->Transforms); + exiDoc->Transforms_isUsed = 1u; + break; + case 102: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GRequest) */ + errn = decode_iso2BodyBaseType(stream, &exiDoc->V2GRequest); + exiDoc->V2GRequest_isUsed = 1u; + break; + case 103: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GResponse) */ + errn = decode_iso2V2GResponseType(stream, &exiDoc->V2GResponse); + exiDoc->V2GResponse_isUsed = 1u; + break; + case 104: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDef}V2G_Message) */ + errn = decode_iso2AnonType_V2G_Message(stream, &exiDoc->V2G_Message); + exiDoc->V2G_Message_isUsed = 1u; + break; + case 105: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInReq) */ + errn = decode_iso2VehicleCheckInReqType(stream, &exiDoc->VehicleCheckInReq); + exiDoc->VehicleCheckInReq_isUsed = 1u; + break; + case 106: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInRes) */ + errn = decode_iso2VehicleCheckInResType(stream, &exiDoc->VehicleCheckInRes); + exiDoc->VehicleCheckInRes_isUsed = 1u; + break; + case 107: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutReq) */ + errn = decode_iso2VehicleCheckOutReqType(stream, &exiDoc->VehicleCheckOutReq); + exiDoc->VehicleCheckOutReq_isUsed = 1u; + break; + case 108: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutRes) */ + errn = decode_iso2VehicleCheckOutResType(stream, &exiDoc->VehicleCheckOutRes); + exiDoc->VehicleCheckOutRes_isUsed = 1u; + break; + case 109: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVChargeParameter) */ + errn = decode_iso2WPT_EVChargeParameterType(stream, &exiDoc->WPT_EVChargeParameter); + exiDoc->WPT_EVChargeParameter_isUsed = 1u; + break; + case 110: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVSEChargeParameter) */ + errn = decode_iso2WPT_EVSEChargeParameterType(stream, &exiDoc->WPT_EVSEChargeParameter); + exiDoc->WPT_EVSEChargeParameter_isUsed = 1u; + break; + case 111: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionReq) */ + errn = decode_iso2WeldingDetectionReqType(stream, &exiDoc->WeldingDetectionReq); + exiDoc->WeldingDetectionReq_isUsed = 1u; + break; + case 112: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionRes) */ + errn = decode_iso2WeldingDetectionResType(stream, &exiDoc->WeldingDetectionRes); + exiDoc->WeldingDetectionRes_isUsed = 1u; + break; + case 113: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */ + errn = decode_iso2X509DataType(stream, &exiDoc->X509Data); + exiDoc->X509Data_isUsed = 1u; + break; + default: + errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; + break; + } + } + + } + + (void)exiDoc; /* avoid unused warning */ + (void)eventCode; /* avoid unused warning */ + (void)uint32; /* avoid unused warning */ + + return errn; +} + +#if DEPLOY_ISO2_CODEC_FRAGMENT == SUPPORT_YES +int decode_iso2ExiFragment(bitstream_t* stream, struct iso2EXIFragment* exiFrag) { + errn = readEXIHeader(stream); + + if(errn == 0) { + /* FragmentContent[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AlignmentOffset), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AngleGAtoVA), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BuyBackTariff), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingPerformance), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CheckOutTime), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentRange), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Distance), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCheckInStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCheckOutStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVElectricalChargingDeviceStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVEnergyTransferParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVInputPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumPower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMechanicalChargingDeviceStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVPresentActivePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVPresentReactivePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVProcessing), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECheckOutStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEElectricalChargingDeviceStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyTransferParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumPower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMechanicalChargingDeviceStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENominalFrequency), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEOutputPower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetReactivePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVTargetEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EffectiveRadiatedPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EnergyTransferServiceList), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Exponent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FODStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FrequencyChannel), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}GAID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}GenChallenge), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}GenericParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVSEFinePositioningParameters), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2016:MsgDef}Header), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorList), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetupList), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MaxSupportingPoints), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementDataList), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterReadingCharged), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterReadingDischarged), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MinimumPMaxRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumPMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSensors), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSignalPackages), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OperationMode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxDischargeSchedule), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PackageIndex), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PackageSeparationTime), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ParkingMethod), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RotationVAtoGA), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedEnergyTransferService), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedVASList), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorID), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorList), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorOrder), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorOrientation), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackageList), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2016:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalFrequency), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalPulseDuration), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalSeparationTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SupportedServiceIDs), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}TargetOffset), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetOffsetX), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetOffsetY), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GResponse), START_ELEMENT({urn:iso:15118:2:2016:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VASList), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleSpace), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}XCoordinate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}YCoordinate), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ZCoordinate), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_DOCUMENT] */ + init_iso2EXIFragment(exiFrag); + errn = decodeNBitUnsignedInteger(stream, 9, &eventCode); + if(errn == 0) { + switch(eventCode) { + case 0: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlReq) */ + errn = decode_iso2AC_BidirectionalControlReqType(stream, &exiFrag->AC_BidirectionalControlReq); + exiFrag->AC_BidirectionalControlReq_isUsed = 1u; + break; + case 1: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlRes) */ + errn = decode_iso2AC_BidirectionalControlResType(stream, &exiFrag->AC_BidirectionalControlRes); + exiFrag->AC_BidirectionalControlRes_isUsed = 1u; + break; + case 2: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVBidirectionalParameter) */ + errn = decode_iso2AC_EVBidirectionalParameterType(stream, &exiFrag->AC_EVBidirectionalParameter); + exiFrag->AC_EVBidirectionalParameter_isUsed = 1u; + break; + case 3: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVChargeParameter) */ + errn = decode_iso2AC_EVChargeParameterType(stream, &exiFrag->AC_EVChargeParameter); + exiFrag->AC_EVChargeParameter_isUsed = 1u; + break; + case 4: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEBidirectionalParameter) */ + errn = decode_iso2AC_EVSEBidirectionalParameterType(stream, &exiFrag->AC_EVSEBidirectionalParameter); + exiFrag->AC_EVSEBidirectionalParameter_isUsed = 1u; + break; + case 5: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEChargeParameter) */ + errn = decode_iso2AC_EVSEChargeParameterType(stream, &exiFrag->AC_EVSEChargeParameter); + exiFrag->AC_EVSEChargeParameter_isUsed = 1u; + break; + case 6: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckParameters) */ + errn = decode_iso2ParameterSetType(stream, &exiFrag->AlignmentCheckParameters); + exiFrag->AlignmentCheckParameters_isUsed = 1u; + break; + case 7: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckReq) */ + errn = decode_iso2AlignmentCheckReqType(stream, &exiFrag->AlignmentCheckReq); + exiFrag->AlignmentCheckReq_isUsed = 1u; + break; + case 8: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckRes) */ + errn = decode_iso2AlignmentCheckResType(stream, &exiFrag->AlignmentCheckRes); + exiFrag->AlignmentCheckRes_isUsed = 1u; + break; + case 9: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AlignmentOffset) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->AlignmentOffset); + exiFrag->AlignmentOffset_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 10: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AngleGAtoVA) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->AngleGAtoVA); + exiFrag->AngleGAtoVA_isUsed = 1u; + break; + case 11: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationReq) */ + errn = decode_iso2AuthorizationReqType(stream, &exiFrag->AuthorizationReq); + exiFrag->AuthorizationReq_isUsed = 1u; + break; + case 12: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationRes) */ + errn = decode_iso2AuthorizationResType(stream, &exiFrag->AuthorizationRes); + exiFrag->AuthorizationRes_isUsed = 1u; + break; + case 13: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDef}Body) */ + errn = decode_iso2BodyType(stream, &exiFrag->Body); + exiFrag->Body_isUsed = 1u; + break; + case 14: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}BodyElement) */ + errn = decode_iso2BodyBaseType(stream, &exiFrag->BodyElement); + exiFrag->BodyElement_isUsed = 1u; + break; + case 15: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->BulkChargingComplete); + exiFrag->BulkChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 16: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + exiFrag->BulkSOC = (int8_t)(uint32 + 0); + exiFrag->BulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 17: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BuyBackTariff) */ + errn = decode_iso2SalesTariffType(stream, &exiFrag->BuyBackTariff); + exiFrag->BuyBackTariff_isUsed = 1u; + break; + case 18: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckReq) */ + errn = decode_iso2CableCheckReqType(stream, &exiFrag->CableCheckReq); + exiFrag->CableCheckReq_isUsed = 1u; + break; + case 19: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckRes) */ + errn = decode_iso2CableCheckResType(stream, &exiFrag->CableCheckRes); + exiFrag->CableCheckRes_isUsed = 1u; + break; + case 20: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */ + errn = decode_iso2CanonicalizationMethodType(stream, &exiFrag->CanonicalizationMethod); + exiFrag->CanonicalizationMethod_isUsed = 1u; + break; + case 21: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Certificate.bytesLen); + if (errn == 0) { + errn = (exiFrag->Certificate.bytesLen) <= iso2EXIFragment_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Certificate.bytesLen, exiFrag->Certificate.bytes); + } + exiFrag->Certificate_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 22: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationReq) */ + errn = decode_iso2CertificateInstallationReqType(stream, &exiFrag->CertificateInstallationReq); + exiFrag->CertificateInstallationReq_isUsed = 1u; + break; + case 23: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationRes) */ + errn = decode_iso2CertificateInstallationResType(stream, &exiFrag->CertificateInstallationRes); + exiFrag->CertificateInstallationRes_isUsed = 1u; + break; + case 24: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateReq) */ + errn = decode_iso2CertificateUpdateReqType(stream, &exiFrag->CertificateUpdateReq); + exiFrag->CertificateUpdateReq_isUsed = 1u; + break; + case 25: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateRes) */ + errn = decode_iso2CertificateUpdateResType(stream, &exiFrag->CertificateUpdateRes); + exiFrag->CertificateUpdateRes_isUsed = 1u; + break; + case 26: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryReq) */ + errn = decode_iso2ChargeParameterDiscoveryReqType(stream, &exiFrag->ChargeParameterDiscoveryReq); + exiFrag->ChargeParameterDiscoveryReq_isUsed = 1u; + break; + case 27: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryRes) */ + errn = decode_iso2ChargeParameterDiscoveryResType(stream, &exiFrag->ChargeParameterDiscoveryRes); + exiFrag->ChargeParameterDiscoveryRes_isUsed = 1u; + break; + case 28: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeProgress) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->ChargeProgress = (iso2chargeProgressType) uint32; + exiFrag->ChargeProgress_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 29: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->ChargingComplete); + exiFrag->ChargingComplete_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 30: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingPerformance) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->ChargingPerformance); + exiFrag->ChargingPerformance_isUsed = 1u; + break; + case 31: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingProfile) */ + errn = decode_iso2ChargingProfileType(stream, &exiFrag->ChargingProfile); + exiFrag->ChargingProfile_isUsed = 1u; + break; + case 32: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingSession) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + exiFrag->ChargingSession = (iso2chargingSessionType) uint32; + exiFrag->ChargingSession_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 33: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusReq) */ + errn = decode_iso2ChargingStatusReqType(stream, &exiFrag->ChargingStatusReq); + exiFrag->ChargingStatusReq_isUsed = 1u; + break; + case 34: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusRes) */ + errn = decode_iso2ChargingStatusResType(stream, &exiFrag->ChargingStatusRes); + exiFrag->ChargingStatusRes_isUsed = 1u; + break; + case 35: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CheckOutTime) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger64(stream, &exiFrag->CheckOutTime); + exiFrag->CheckOutTime_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 36: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceReq) */ + errn = decode_iso2ConnectChargingDeviceReqType(stream, &exiFrag->ConnectChargingDeviceReq); + exiFrag->ConnectChargingDeviceReq_isUsed = 1u; + break; + case 37: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceRes) */ + errn = decode_iso2ConnectChargingDeviceResType(stream, &exiFrag->ConnectChargingDeviceRes); + exiFrag->ConnectChargingDeviceRes_isUsed = 1u; + break; + case 38: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ConsumptionCost) */ + errn = decode_iso2ConsumptionCostType(stream, &exiFrag->ConsumptionCost); + exiFrag->ConsumptionCost_isUsed = 1u; + break; + case 39: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureCertChain) */ + errn = decode_iso2CertificateChainType(stream, &exiFrag->ContractSignatureCertChain); + exiFrag->ContractSignatureCertChain_isUsed = 1u; + break; + case 40: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureEncryptedPrivateKey) */ + errn = decode_iso2ContractSignatureEncryptedPrivateKeyType(stream, &exiFrag->ContractSignatureEncryptedPrivateKey); + exiFrag->ContractSignatureEncryptedPrivateKey_isUsed = 1u; + break; + case 41: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Cost) */ + errn = decode_iso2CostType(stream, &exiFrag->Cost); + exiFrag->Cost_isUsed = 1u; + break; + case 42: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandReq) */ + errn = decode_iso2CurrentDemandReqType(stream, &exiFrag->CurrentDemandReq); + exiFrag->CurrentDemandReq_isUsed = 1u; + break; + case 43: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandRes) */ + errn = decode_iso2CurrentDemandResType(stream, &exiFrag->CurrentDemandRes); + exiFrag->CurrentDemandRes_isUsed = 1u; + break; + case 44: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentRange) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->CurrentRange); + exiFrag->CurrentRange_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 45: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + exiFrag->CurrentSOC = (int8_t)(uint32 + 0); + exiFrag->CurrentSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 46: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlReq) */ + errn = decode_iso2DC_BidirectionalControlReqType(stream, &exiFrag->DC_BidirectionalControlReq); + exiFrag->DC_BidirectionalControlReq_isUsed = 1u; + break; + case 47: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlRes) */ + errn = decode_iso2DC_BidirectionalControlResType(stream, &exiFrag->DC_BidirectionalControlRes); + exiFrag->DC_BidirectionalControlRes_isUsed = 1u; + break; + case 48: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVBidirectionalParameter) */ + errn = decode_iso2DC_EVBidirectionalParameterType(stream, &exiFrag->DC_EVBidirectionalParameter); + exiFrag->DC_EVBidirectionalParameter_isUsed = 1u; + break; + case 49: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVChargeParameter) */ + errn = decode_iso2DC_EVChargeParameterType(stream, &exiFrag->DC_EVChargeParameter); + exiFrag->DC_EVChargeParameter_isUsed = 1u; + break; + case 50: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEBidirectionalParameter) */ + errn = decode_iso2DC_EVSEBidirectionalParameterType(stream, &exiFrag->DC_EVSEBidirectionalParameter); + exiFrag->DC_EVSEBidirectionalParameter_isUsed = 1u; + break; + case 51: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEChargeParameter) */ + errn = decode_iso2DC_EVSEChargeParameterType(stream, &exiFrag->DC_EVSEChargeParameter); + exiFrag->DC_EVSEChargeParameter_isUsed = 1u; + break; + case 52: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DHpublickey) */ + errn = decode_iso2DiffieHellmanPublickeyType(stream, &exiFrag->DHpublickey); + exiFrag->DHpublickey_isUsed = 1u; + break; + case 53: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */ + errn = decode_iso2DSAKeyValueType(stream, &exiFrag->DSAKeyValue); + exiFrag->DSAKeyValue_isUsed = 1u; + break; + case 54: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &exiFrag->DepartureTime); + exiFrag->DepartureTime_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 55: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */ + errn = decode_iso2DigestMethodType(stream, &exiFrag->DigestMethod); + exiFrag->DigestMethod_isUsed = 1u; + break; + case 56: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->DigestValue.bytesLen); + if (errn == 0) { + errn = (exiFrag->DigestValue.bytesLen) <= iso2EXIFragment_DigestValue_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->DigestValue.bytesLen, exiFrag->DigestValue.bytes); + } + exiFrag->DigestValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 57: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceReq) */ + errn = decode_iso2DisconnectChargingDeviceReqType(stream, &exiFrag->DisconnectChargingDeviceReq); + exiFrag->DisconnectChargingDeviceReq_isUsed = 1u; + break; + case 58: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceRes) */ + errn = decode_iso2DisconnectChargingDeviceResType(stream, &exiFrag->DisconnectChargingDeviceRes); + exiFrag->DisconnectChargingDeviceRes_isUsed = 1u; + break; + case 59: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters) */ + errn = decode_iso2DisplayParametersType(stream, &exiFrag->DisplayParameters); + exiFrag->DisplayParameters_isUsed = 1u; + break; + case 60: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Distance) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Distance); + exiFrag->Distance_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 61: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EPriceLevel) */ + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->EPriceLevel = (uint8_t)(uint32 + 0); + exiFrag->EPriceLevel_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 62: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCCID) */ + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->EVCCID.bytesLen); + if (errn == 0) { + errn = (exiFrag->EVCCID.bytesLen) <= iso2EXIFragment_EVCCID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->EVCCID.bytesLen, exiFrag->EVCCID.bytes); + } + exiFrag->EVCCID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 63: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCheckInStatus) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->EVCheckInStatus = (iso2EVCheckInStatusType) uint32; + exiFrag->EVCheckInStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 64: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCheckOutStatus) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->EVCheckOutStatus = (iso2EVCheckOutStatusType) uint32; + exiFrag->EVCheckOutStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 65: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVElectricalChargingDeviceStatus) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + exiFrag->EVElectricalChargingDeviceStatus = (iso2electricalChargingDeviceStatusType) uint32; + exiFrag->EVElectricalChargingDeviceStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 66: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVEnergyTransferParameter) */ + errn = decode_iso2EVEnergyTransferParameterType(stream, &exiFrag->EVEnergyTransferParameter); + exiFrag->EVEnergyTransferParameter_isUsed = 1u; + break; + case 67: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningParameters) */ + errn = decode_iso2EVFinePositioningParametersType(stream, &exiFrag->EVFinePositioningParameters); + exiFrag->EVFinePositioningParameters_isUsed = 1u; + break; + case 68: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningSetupParameters) */ + errn = decode_iso2EVFinePositioningSetupParametersType(stream, &exiFrag->EVFinePositioningSetupParameters); + exiFrag->EVFinePositioningSetupParameters_isUsed = 1u; + break; + case 69: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVInputPower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVInputPower); + exiFrag->EVInputPower_isUsed = 1u; + break; + case 70: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumChargeCurrent); + exiFrag->EVMaximumChargeCurrent_isUsed = 1u; + break; + case 71: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumChargeCurrent); + exiFrag->EVMaximumChargeCurrent_isUsed = 1u; + break; + case 72: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumChargePower); + exiFrag->EVMaximumChargePower_isUsed = 1u; + break; + case 73: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargePower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumChargePower); + exiFrag->EVMaximumChargePower_isUsed = 1u; + break; + case 74: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumCurrent) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumCurrent); + exiFrag->EVMaximumCurrent_isUsed = 1u; + break; + case 75: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargeCurrent) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumDischargeCurrent); + exiFrag->EVMaximumDischargeCurrent_isUsed = 1u; + break; + case 76: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumDischargeCurrent); + exiFrag->EVMaximumDischargeCurrent_isUsed = 1u; + break; + case 77: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargePower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumDischargePower); + exiFrag->EVMaximumDischargePower_isUsed = 1u; + break; + case 78: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumDischargePower); + exiFrag->EVMaximumDischargePower_isUsed = 1u; + break; + case 79: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumEnergyRequest) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumEnergyRequest); + exiFrag->EVMaximumEnergyRequest_isUsed = 1u; + break; + case 80: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumEnergyRequest); + exiFrag->EVMaximumEnergyRequest_isUsed = 1u; + break; + case 81: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumPower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumPower); + exiFrag->EVMaximumPower_isUsed = 1u; + break; + case 82: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumPower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumPower); + exiFrag->EVMaximumPower_isUsed = 1u; + break; + case 83: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumVoltage) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumVoltage); + exiFrag->EVMaximumVoltage_isUsed = 1u; + break; + case 84: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumVoltage); + exiFrag->EVMaximumVoltage_isUsed = 1u; + break; + case 85: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMechanicalChargingDeviceStatus) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->EVMechanicalChargingDeviceStatus = (iso2mechanicalChargingDeviceStatusType) uint32; + exiFrag->EVMechanicalChargingDeviceStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 86: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumChargeCurrent); + exiFrag->EVMinimumChargeCurrent_isUsed = 1u; + break; + case 87: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargeCurrent) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumChargeCurrent); + exiFrag->EVMinimumChargeCurrent_isUsed = 1u; + break; + case 88: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargePower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumChargePower); + exiFrag->EVMinimumChargePower_isUsed = 1u; + break; + case 89: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumDischargeCurrent) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumDischargeCurrent); + exiFrag->EVMinimumDischargeCurrent_isUsed = 1u; + break; + case 90: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargeCurrent) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumDischargeCurrent); + exiFrag->EVMinimumDischargeCurrent_isUsed = 1u; + break; + case 91: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumDischargePower); + exiFrag->EVMinimumDischargePower_isUsed = 1u; + break; + case 92: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumEnergyRequest); + exiFrag->EVMinimumEnergyRequest_isUsed = 1u; + break; + case 93: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumEnergyRequest); + exiFrag->EVMinimumEnergyRequest_isUsed = 1u; + break; + case 94: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumPower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumPower); + exiFrag->EVMinimumPower_isUsed = 1u; + break; + case 95: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumVoltage) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumVoltage); + exiFrag->EVMinimumVoltage_isUsed = 1u; + break; + case 96: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumVoltage) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumVoltage); + exiFrag->EVMinimumVoltage_isUsed = 1u; + break; + case 97: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + exiFrag->EVOperation = (iso2EVOperationType) uint32; + exiFrag->EVOperation_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 98: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVPresentActivePower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVPresentActivePower); + exiFrag->EVPresentActivePower_isUsed = 1u; + break; + case 99: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVPresentReactivePower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVPresentReactivePower); + exiFrag->EVPresentReactivePower_isUsed = 1u; + break; + case 100: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVProcessing) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->EVProcessing = (iso2EVSEProcessingType) uint32; + exiFrag->EVProcessing_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 101: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECheckOutStatus) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->EVSECheckOutStatus = (iso2EVCheckOutStatusType) uint32; + exiFrag->EVSECheckOutStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 102: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECurrentLimitAchieved) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->EVSECurrentLimitAchieved); + exiFrag->EVSECurrentLimitAchieved_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 103: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSECurrentRegulationTolerance) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSECurrentRegulationTolerance); + exiFrag->EVSECurrentRegulationTolerance_isUsed = 1u; + break; + case 104: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEElectricalChargingDeviceStatus) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + exiFrag->EVSEElectricalChargingDeviceStatus = (iso2electricalChargingDeviceStatusType) uint32; + exiFrag->EVSEElectricalChargingDeviceStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 105: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyToBeDelivered) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEEnergyToBeDelivered); + exiFrag->EVSEEnergyToBeDelivered_isUsed = 1u; + break; + case 106: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyTransferParameter) */ + errn = decode_iso2EVSEEnergyTransferParameterType(stream, &exiFrag->EVSEEnergyTransferParameter); + exiFrag->EVSEEnergyTransferParameter_isUsed = 1u; + break; + case 107: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningParameters) */ + errn = decode_iso2EVSEFinePositioningParametersType(stream, &exiFrag->EVSEFinePositioningParameters); + exiFrag->EVSEFinePositioningParameters_isUsed = 1u; + break; + case 108: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningSetupParameters) */ + errn = decode_iso2EVSEFinePositioningSetupParametersType(stream, &exiFrag->EVSEFinePositioningSetupParameters); + exiFrag->EVSEFinePositioningSetupParameters_isUsed = 1u; + break; + case 109: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->EVSEID.charactersLen); + if (errn == 0) { + if (exiFrag->EVSEID.charactersLen >= 2) { + exiFrag->EVSEID.charactersLen = (uint16_t)(exiFrag->EVSEID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->EVSEID.charactersLen, exiFrag->EVSEID.characters, iso2EXIFragment_EVSEID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->EVSEID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 110: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumChargeCurrent) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumChargeCurrent); + exiFrag->EVSEMaximumChargeCurrent_isUsed = 1u; + break; + case 111: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargeCurrent) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumChargeCurrent); + exiFrag->EVSEMaximumChargeCurrent_isUsed = 1u; + break; + case 112: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumChargePower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumChargePower); + exiFrag->EVSEMaximumChargePower_isUsed = 1u; + break; + case 113: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargePower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumChargePower); + exiFrag->EVSEMaximumChargePower_isUsed = 1u; + break; + case 114: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumCurrent) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumCurrent); + exiFrag->EVSEMaximumCurrent_isUsed = 1u; + break; + case 115: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargeCurrent) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumDischargeCurrent); + exiFrag->EVSEMaximumDischargeCurrent_isUsed = 1u; + break; + case 116: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumDischargeCurrent) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumDischargeCurrent); + exiFrag->EVSEMaximumDischargeCurrent_isUsed = 1u; + break; + case 117: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargePower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumDischargePower); + exiFrag->EVSEMaximumDischargePower_isUsed = 1u; + break; + case 118: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumDischargePower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumDischargePower); + exiFrag->EVSEMaximumDischargePower_isUsed = 1u; + break; + case 119: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumPower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumPower); + exiFrag->EVSEMaximumPower_isUsed = 1u; + break; + case 120: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumPower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumPower); + exiFrag->EVSEMaximumPower_isUsed = 1u; + break; + case 121: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumVoltage); + exiFrag->EVSEMaximumVoltage_isUsed = 1u; + break; + case 122: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumVoltage) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumVoltage); + exiFrag->EVSEMaximumVoltage_isUsed = 1u; + break; + case 123: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMechanicalChargingDeviceStatus) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->EVSEMechanicalChargingDeviceStatus = (iso2mechanicalChargingDeviceStatusType) uint32; + exiFrag->EVSEMechanicalChargingDeviceStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 124: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumChargeCurrent) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEMinimumChargeCurrent); + exiFrag->EVSEMinimumChargeCurrent_isUsed = 1u; + break; + case 125: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumDischargeCurrent) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEMinimumDischargeCurrent); + exiFrag->EVSEMinimumDischargeCurrent_isUsed = 1u; + break; + case 126: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumPower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEMinimumPower); + exiFrag->EVSEMinimumPower_isUsed = 1u; + break; + case 127: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMinimumVoltage) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEMinimumVoltage); + exiFrag->EVSEMinimumVoltage_isUsed = 1u; + break; + case 128: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumVoltage) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEMinimumVoltage); + exiFrag->EVSEMinimumVoltage_isUsed = 1u; + break; + case 129: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENominalFrequency) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSENominalFrequency); + exiFrag->EVSENominalFrequency_isUsed = 1u; + break; + case 130: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENominalVoltage) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSENominalVoltage); + exiFrag->EVSENominalVoltage_isUsed = 1u; + break; + case 131: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENotification) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + exiFrag->EVSENotification = (iso2EVSENotificationType) uint32; + exiFrag->EVSENotification_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 132: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEOutputPower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEOutputPower); + exiFrag->EVSEOutputPower_isUsed = 1u; + break; + case 133: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEPeakCurrentRipple) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEPeakCurrentRipple); + exiFrag->EVSEPeakCurrentRipple_isUsed = 1u; + break; + case 134: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPowerLimitAchieved) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->EVSEPowerLimitAchieved); + exiFrag->EVSEPowerLimitAchieved_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 135: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentCurrent) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEPresentCurrent); + exiFrag->EVSEPresentCurrent_isUsed = 1u; + break; + case 136: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentVoltage) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSEPresentVoltage); + exiFrag->EVSEPresentVoltage_isUsed = 1u; + break; + case 137: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->EVSEProcessing = (iso2EVSEProcessingType) uint32; + exiFrag->EVSEProcessing_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 138: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus) */ + errn = decode_iso2EVSEStatusType(stream, &exiFrag->EVSEStatus); + exiFrag->EVSEStatus_isUsed = 1u; + break; + case 139: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetPower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSETargetPower); + exiFrag->EVSETargetPower_isUsed = 1u; + break; + case 140: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetReactivePower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVSETargetReactivePower); + exiFrag->EVSETargetReactivePower_isUsed = 1u; + break; + case 141: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETimeStamp) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &exiFrag->EVSETimeStamp); + exiFrag->EVSETimeStamp_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 142: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEVoltageLimitAchieved) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->EVSEVoltageLimitAchieved); + exiFrag->EVSEVoltageLimitAchieved_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 143: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVTargetCurrent); + exiFrag->EVTargetCurrent_isUsed = 1u; + break; + case 144: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetEnergyRequest) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVTargetEnergyRequest); + exiFrag->EVTargetEnergyRequest_isUsed = 1u; + break; + case 145: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVTargetEnergyRequest) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVTargetEnergyRequest); + exiFrag->EVTargetEnergyRequest_isUsed = 1u; + break; + case 146: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetPower) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVTargetPower); + exiFrag->EVTargetPower_isUsed = 1u; + break; + case 147: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetVoltage) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->EVTargetVoltage); + exiFrag->EVTargetVoltage_isUsed = 1u; + break; + case 148: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EffectiveRadiatedPower) */ + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->EffectiveRadiatedPower = (int8_t)(uint32 -128); + exiFrag->EffectiveRadiatedPower_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 149: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EnergyTransferServiceList) */ + errn = decode_iso2ServiceListType(stream, &exiFrag->EnergyTransferServiceList); + exiFrag->EnergyTransferServiceList_isUsed = 1u; + break; + case 150: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent) */ + errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name Exponent */ + break; + case 151: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Exponent) */ + errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name Exponent */ + break; + case 152: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FODStatus) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->FODStatus = (iso2FODStatusType) uint32; + exiFrag->FODStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 153: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningReq) */ + errn = decode_iso2FinePositioningReqType(stream, &exiFrag->FinePositioningReq); + exiFrag->FinePositioningReq_isUsed = 1u; + break; + case 154: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningRes) */ + errn = decode_iso2FinePositioningResType(stream, &exiFrag->FinePositioningRes); + exiFrag->FinePositioningRes_isUsed = 1u; + break; + case 155: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupReq) */ + errn = decode_iso2FinePositioningSetupReqType(stream, &exiFrag->FinePositioningSetupReq); + exiFrag->FinePositioningSetupReq_isUsed = 1u; + break; + case 156: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupRes) */ + errn = decode_iso2FinePositioningSetupResType(stream, &exiFrag->FinePositioningSetupRes); + exiFrag->FinePositioningSetupRes_isUsed = 1u; + break; + case 157: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FreeService) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->FreeService); + exiFrag->FreeService_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 158: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FrequencyChannel) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &exiFrag->FrequencyChannel); + exiFrag->FrequencyChannel_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 159: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->G.bytesLen); + if (errn == 0) { + errn = (exiFrag->G.bytesLen) <= iso2EXIFragment_G_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->G.bytesLen, exiFrag->G.bytes); + } + exiFrag->G_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 160: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}GAID) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->GAID.charactersLen); + if (errn == 0) { + if (exiFrag->GAID.charactersLen >= 2) { + exiFrag->GAID.charactersLen = (uint16_t)(exiFrag->GAID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->GAID.charactersLen, exiFrag->GAID.characters, iso2EXIFragment_GAID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->GAID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 161: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}GenChallenge) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->GenChallenge.bytesLen); + if (errn == 0) { + errn = (exiFrag->GenChallenge.bytesLen) <= iso2EXIFragment_GenChallenge_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->GenChallenge.bytesLen, exiFrag->GenChallenge.bytes); + } + exiFrag->GenChallenge_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 162: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}GenericParameters) */ + errn = decode_iso2ParameterSetType(stream, &exiFrag->GenericParameters); + exiFrag->GenericParameters_isUsed = 1u; + break; + case 163: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVFinePositioningParameters) */ + errn = decode_iso2Generic_EVFinePositioningParametersType(stream, &exiFrag->Generic_EVFinePositioningParameters); + exiFrag->Generic_EVFinePositioningParameters_isUsed = 1u; + break; + case 164: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVSEFinePositioningParameters) */ + errn = decode_iso2Generic_EVSEFinePositioningParametersType(stream, &exiFrag->Generic_EVSEFinePositioningParameters); + exiFrag->Generic_EVSEFinePositioningParameters_isUsed = 1u; + break; + case 165: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) */ + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &exiFrag->HMACOutputLength); + exiFrag->HMACOutputLength_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 166: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDef}Header) */ + errn = decode_iso2MessageHeaderType(stream, &exiFrag->Header); + exiFrag->Header_isUsed = 1u; + break; + case 167: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->InletHot); + exiFrag->InletHot_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 168: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->J.bytesLen); + if (errn == 0) { + errn = (exiFrag->J.bytesLen) <= iso2EXIFragment_J_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->J.bytesLen, exiFrag->J.bytes); + } + exiFrag->J_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 169: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */ + errn = decode_iso2KeyInfoType(stream, &exiFrag->KeyInfo); + exiFrag->KeyInfo_isUsed = 1u; + break; + case 170: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->KeyName.charactersLen); + if (errn == 0) { + if (exiFrag->KeyName.charactersLen >= 2) { + exiFrag->KeyName.charactersLen = (uint16_t)(exiFrag->KeyName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->KeyName.charactersLen, exiFrag->KeyName.characters, iso2EXIFragment_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->KeyName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 171: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */ + errn = decode_iso2KeyValueType(stream, &exiFrag->KeyValue); + exiFrag->KeyValue_isUsed = 1u; + break; + case 172: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningParameters) */ + errn = decode_iso2LFA_EVFinePositioningParametersType(stream, &exiFrag->LFA_EVFinePositioningParameters); + exiFrag->LFA_EVFinePositioningParameters_isUsed = 1u; + break; + case 173: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningSetupParameters) */ + errn = decode_iso2LFA_EVFinePositioningSetupParametersType(stream, &exiFrag->LFA_EVFinePositioningSetupParameters); + exiFrag->LFA_EVFinePositioningSetupParameters_isUsed = 1u; + break; + case 174: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningParameters) */ + errn = decode_iso2LFA_EVSEFinePositioningParametersType(stream, &exiFrag->LFA_EVSEFinePositioningParameters); + exiFrag->LFA_EVSEFinePositioningParameters_isUsed = 1u; + break; + case 175: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningSetupParameters) */ + errn = decode_iso2LFA_EVSEFinePositioningSetupParametersType(stream, &exiFrag->LFA_EVSEFinePositioningSetupParameters); + exiFrag->LFA_EVSEFinePositioningSetupParameters_isUsed = 1u; + break; + case 176: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ListOfRootCertificateIDs) */ + errn = decode_iso2ListOfRootCertificateIDsType(stream, &exiFrag->ListOfRootCertificateIDs); + exiFrag->ListOfRootCertificateIDs_isUsed = 1u; + break; + case 177: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningParameters) */ + errn = decode_iso2MV_EVSEFinePositioningParametersType(stream, &exiFrag->MV_EVSEFinePositioningParameters); + exiFrag->MV_EVSEFinePositioningParameters_isUsed = 1u; + break; + case 178: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningSetupParameters) */ + errn = decode_iso2MV_EVSEFinePositioningSetupParametersType(stream, &exiFrag->MV_EVSEFinePositioningSetupParameters); + exiFrag->MV_EVSEFinePositioningSetupParameters_isUsed = 1u; + break; + case 179: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector) */ + errn = decode_iso2MagneticVectorType(stream, &exiFrag->MagneticVector); + exiFrag->MagneticVector_isUsed = 1u; + break; + case 180: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorList) */ + errn = decode_iso2MagneticVectorListType(stream, &exiFrag->MagneticVectorList); + exiFrag->MagneticVectorList_isUsed = 1u; + break; + case 181: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup) */ + errn = decode_iso2MagneticVectorSetupType(stream, &exiFrag->MagneticVectorSetup); + exiFrag->MagneticVectorSetup_isUsed = 1u; + break; + case 182: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetupList) */ + errn = decode_iso2MagneticVectorSetupListType(stream, &exiFrag->MagneticVectorSetupList); + exiFrag->MagneticVectorSetupList_isUsed = 1u; + break; + case 183: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */ + errn = decode_iso2ManifestType(stream, &exiFrag->Manifest); + exiFrag->Manifest_isUsed = 1u; + break; + case 184: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MaxSupportingPoints) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 10, &(uint32)); + exiFrag->MaxSupportingPoints = (uint16_t)(uint32 + 12); + exiFrag->MaxSupportingPoints_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 185: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->MeasurementData); + exiFrag->MeasurementData_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 186: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementDataList) */ + errn = decode_iso2MeasurementDataListType(stream, &exiFrag->MeasurementDataList); + exiFrag->MeasurementDataList_isUsed = 1u; + break; + case 187: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterID) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->MeterID.charactersLen); + if (errn == 0) { + if (exiFrag->MeterID.charactersLen >= 2) { + exiFrag->MeterID.charactersLen = (uint16_t)(exiFrag->MeterID.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->MeterID.charactersLen, exiFrag->MeterID.characters, iso2EXIFragment_MeterID_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->MeterID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 188: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo) */ + errn = decode_iso2MeterInfoType(stream, &exiFrag->MeterInfo); + exiFrag->MeterInfo_isUsed = 1u; + break; + case 189: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterReadingCharged) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger64(stream, &exiFrag->MeterReadingCharged); + exiFrag->MeterReadingCharged_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 190: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterReadingDischarged) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger64(stream, &exiFrag->MeterReadingDischarged); + exiFrag->MeterReadingDischarged_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 191: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterStatus) */ + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->MeterStatus); + exiFrag->MeterStatus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 192: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptReq) */ + errn = decode_iso2MeteringReceiptReqType(stream, &exiFrag->MeteringReceiptReq); + exiFrag->MeteringReceiptReq_isUsed = 1u; + break; + case 193: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptRes) */ + errn = decode_iso2MeteringReceiptResType(stream, &exiFrag->MeteringReceiptRes); + exiFrag->MeteringReceiptRes_isUsed = 1u; + break; + case 194: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->MgmtData.charactersLen); + if (errn == 0) { + if (exiFrag->MgmtData.charactersLen >= 2) { + exiFrag->MgmtData.charactersLen = (uint16_t)(exiFrag->MgmtData.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->MgmtData.charactersLen, exiFrag->MgmtData.characters, iso2EXIFragment_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->MgmtData_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 195: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MinimumPMaxRequest) */ + errn = decode_iso2MinimumPMaxRequestType(stream, &exiFrag->MinimumPMaxRequest); + exiFrag->MinimumPMaxRequest_isUsed = 1u; + break; + case 196: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumPMaxScheduleEntry) */ + errn = decode_iso2PMaxScheduleEntryType(stream, &exiFrag->MinimumPMaxScheduleEntry); + exiFrag->MinimumPMaxScheduleEntry_isUsed = 1u; + break; + case 197: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + exiFrag->MinimumSOC = (int8_t)(uint32 + 0); + exiFrag->MinimumSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 198: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Modulus.bytesLen); + if (errn == 0) { + errn = (exiFrag->Modulus.bytesLen) <= iso2EXIFragment_Modulus_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Modulus.bytesLen, exiFrag->Modulus.bytes); + } + exiFrag->Modulus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 199: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NotificationMaxDelay) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->NotificationMaxDelay); + exiFrag->NotificationMaxDelay_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 200: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumEPriceLevels) */ + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->NumEPriceLevels = (uint8_t)(uint32 + 0); + exiFrag->NumEPriceLevels_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 201: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSensors) */ + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->NumberOfSensors = (uint8_t)(uint32 + 0); + exiFrag->NumberOfSensors_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 202: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSignalPackages) */ + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->NumberOfSignalPackages = (uint8_t)(uint32 + 0); + exiFrag->NumberOfSignalPackages_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 203: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OEMProvisioningCert) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->OEMProvisioningCert.bytesLen); + if (errn == 0) { + errn = (exiFrag->OEMProvisioningCert.bytesLen) <= iso2EXIFragment_OEMProvisioningCert_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->OEMProvisioningCert.bytesLen, exiFrag->OEMProvisioningCert.bytes); + } + exiFrag->OEMProvisioningCert_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 204: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */ + errn = decode_iso2ObjectType(stream, &exiFrag->Object); + exiFrag->Object_isUsed = 1u; + break; + case 205: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OperationMode) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + exiFrag->OperationMode = (iso2operationModeType) uint32; + exiFrag->OperationMode_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 206: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->P.bytesLen); + if (errn == 0) { + errn = (exiFrag->P.bytesLen) <= iso2EXIFragment_P_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->P.bytesLen, exiFrag->P.bytes); + } + exiFrag->P_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 207: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */ + errn = decode_iso2PGPDataType(stream, &exiFrag->PGPData); + exiFrag->PGPData_isUsed = 1u; + break; + case 208: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->PGPKeyID.bytesLen); + if (errn == 0) { + errn = (exiFrag->PGPKeyID.bytesLen) <= iso2EXIFragment_PGPKeyID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->PGPKeyID.bytesLen, exiFrag->PGPKeyID.bytes); + } + exiFrag->PGPKeyID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 209: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->PGPKeyPacket.bytesLen); + if (errn == 0) { + errn = (exiFrag->PGPKeyPacket.bytesLen) <= iso2EXIFragment_PGPKeyPacket_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->PGPKeyPacket.bytesLen, exiFrag->PGPKeyPacket.bytes); + } + exiFrag->PGPKeyPacket_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 210: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMax) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->PMax); + exiFrag->PMax_isUsed = 1u; + break; + case 211: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxDischargeSchedule) */ + errn = decode_iso2PMaxScheduleType(stream, &exiFrag->PMaxDischargeSchedule); + exiFrag->PMaxDischargeSchedule_isUsed = 1u; + break; + case 212: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxSchedule) */ + errn = decode_iso2PMaxScheduleType(stream, &exiFrag->PMaxSchedule); + exiFrag->PMaxSchedule_isUsed = 1u; + break; + case 213: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxScheduleEntry) */ + errn = decode_iso2PMaxScheduleEntryType(stream, &exiFrag->PMaxScheduleEntry); + exiFrag->PMaxScheduleEntry_isUsed = 1u; + break; + case 214: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PackageIndex) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &exiFrag->PackageIndex); + exiFrag->PackageIndex_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 215: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PackageSeparationTime) */ + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->PackageSeparationTime = (uint8_t)(uint32 + 0); + exiFrag->PackageSeparationTime_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 216: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingParameters) */ + errn = decode_iso2ParameterSetType(stream, &exiFrag->PairingParameters); + exiFrag->PairingParameters_isUsed = 1u; + break; + case 217: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingReq) */ + errn = decode_iso2PairingReqType(stream, &exiFrag->PairingReq); + exiFrag->PairingReq_isUsed = 1u; + break; + case 218: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingRes) */ + errn = decode_iso2PairingResType(stream, &exiFrag->PairingRes); + exiFrag->PairingRes_isUsed = 1u; + break; + case 219: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter) */ + errn = decode_iso2ParameterType(stream, &exiFrag->Parameter); + exiFrag->Parameter_isUsed = 1u; + break; + case 220: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet) */ + errn = decode_iso2ParameterSetType(stream, &exiFrag->ParameterSet); + exiFrag->ParameterSet_isUsed = 1u; + break; + case 221: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSetID) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->ParameterSetID); + exiFrag->ParameterSetID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 222: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ParkingMethod) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->ParkingMethod = (iso2parkingMethodType) uint32; + exiFrag->ParkingMethod_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 223: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsReq) */ + errn = decode_iso2PaymentDetailsReqType(stream, &exiFrag->PaymentDetailsReq); + exiFrag->PaymentDetailsReq_isUsed = 1u; + break; + case 224: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsRes) */ + errn = decode_iso2PaymentDetailsResType(stream, &exiFrag->PaymentDetailsRes); + exiFrag->PaymentDetailsRes_isUsed = 1u; + break; + case 225: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PaymentOption) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + exiFrag->PaymentOption = (iso2paymentOptionType) uint32; + exiFrag->PaymentOption_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 226: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentOptionList) */ + errn = decode_iso2PaymentOptionListType(stream, &exiFrag->PaymentOptionList); + exiFrag->PaymentOptionList_isUsed = 1u; + break; + case 227: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionReq) */ + errn = decode_iso2PaymentServiceSelectionReqType(stream, &exiFrag->PaymentServiceSelectionReq); + exiFrag->PaymentServiceSelectionReq_isUsed = 1u; + break; + case 228: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionRes) */ + errn = decode_iso2PaymentServiceSelectionResType(stream, &exiFrag->PaymentServiceSelectionRes); + exiFrag->PaymentServiceSelectionRes_isUsed = 1u; + break; + case 229: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->PgenCounter.bytesLen); + if (errn == 0) { + errn = (exiFrag->PgenCounter.bytesLen) <= iso2EXIFragment_PgenCounter_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->PgenCounter.bytesLen, exiFrag->PgenCounter.bytes); + } + exiFrag->PgenCounter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 230: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryReq) */ + errn = decode_iso2PowerDeliveryReqType(stream, &exiFrag->PowerDeliveryReq); + exiFrag->PowerDeliveryReq_isUsed = 1u; + break; + case 231: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryRes) */ + errn = decode_iso2PowerDeliveryResType(stream, &exiFrag->PowerDeliveryRes); + exiFrag->PowerDeliveryRes_isUsed = 1u; + break; + case 232: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandParameters) */ + errn = decode_iso2ParameterSetType(stream, &exiFrag->PowerDemandParameters); + exiFrag->PowerDemandParameters_isUsed = 1u; + break; + case 233: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandReq) */ + errn = decode_iso2PowerDemandReqType(stream, &exiFrag->PowerDemandReq); + exiFrag->PowerDemandReq_isUsed = 1u; + break; + case 234: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandRes) */ + errn = decode_iso2PowerDemandResType(stream, &exiFrag->PowerDemandRes); + exiFrag->PowerDemandRes_isUsed = 1u; + break; + case 235: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeReq) */ + errn = decode_iso2PreChargeReqType(stream, &exiFrag->PreChargeReq); + exiFrag->PreChargeReq_isUsed = 1u; + break; + case 236: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeRes) */ + errn = decode_iso2PreChargeResType(stream, &exiFrag->PreChargeRes); + exiFrag->PreChargeRes_isUsed = 1u; + break; + case 237: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ProfileEntry) */ + errn = decode_iso2PMaxScheduleEntryType(stream, &exiFrag->ProfileEntry); + exiFrag->ProfileEntry_isUsed = 1u; + break; + case 238: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Q.bytesLen); + if (errn == 0) { + errn = (exiFrag->Q.bytesLen) <= iso2EXIFragment_Q_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Q.bytesLen, exiFrag->Q.bytes); + } + exiFrag->Q_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 239: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */ + errn = decode_iso2RSAKeyValueType(stream, &exiFrag->RSAKeyValue); + exiFrag->RSAKeyValue_isUsed = 1u; + break; + case 240: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->ReceiptRequired); + exiFrag->ReceiptRequired_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 241: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */ + errn = decode_iso2ReferenceType(stream, &exiFrag->Reference); + exiFrag->Reference_isUsed = 1u; + break; + case 242: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RelativeTimeInterval) */ + errn = decode_iso2RelativeTimeIntervalType(stream, &exiFrag->RelativeTimeInterval); + exiFrag->RelativeTimeInterval_isUsed = 1u; + break; + case 243: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + exiFrag->RemainingTimeToBulkSOC = (int8_t)(uint32 + 0); + exiFrag->RemainingTimeToBulkSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 244: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + exiFrag->RemainingTimeToMinimumSOC = (int8_t)(uint32 + 0); + exiFrag->RemainingTimeToMinimumSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 245: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + exiFrag->RemainingTimeToTargetSOC = (int8_t)(uint32 + 0); + exiFrag->RemainingTimeToTargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 246: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 5, &uint32); + exiFrag->ResponseCode = (iso2responseCodeType) uint32; + exiFrag->ResponseCode_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 247: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */ + errn = decode_iso2RetrievalMethodType(stream, &exiFrag->RetrievalMethod); + exiFrag->RetrievalMethod_isUsed = 1u; + break; + case 248: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}RetryCounter) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->RetryCounter); + exiFrag->RetryCounter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 249: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID) */ + errn = decode_iso2X509IssuerSerialType(stream, &exiFrag->RootCertificateID); + exiFrag->RootCertificateID_isUsed = 1u; + break; + case 250: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RotationVAtoGA) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->RotationVAtoGA); + exiFrag->RotationVAtoGA_isUsed = 1u; + break; + case 251: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAProvisioningCertificateChain) */ + errn = decode_iso2CertificateChainType(stream, &exiFrag->SAProvisioningCertificateChain); + exiFrag->SAProvisioningCertificateChain_isUsed = 1u; + break; + case 252: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleList) */ + errn = decode_iso2SAScheduleListType(stream, &exiFrag->SAScheduleList); + exiFrag->SAScheduleList_isUsed = 1u; + break; + case 253: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleList) */ + errn = decode_iso2SAScheduleListType(stream, &exiFrag->SAScheduleList); + exiFrag->SAScheduleList_isUsed = 1u; + break; + case 254: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleTuple) */ + errn = decode_iso2SAScheduleTupleType(stream, &exiFrag->SAScheduleTuple); + exiFrag->SAScheduleTuple_isUsed = 1u; + break; + case 255: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->SAScheduleTupleID = (uint8_t)(uint32 + 1); + exiFrag->SAScheduleTupleID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 256: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleTupleID) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->SAScheduleTupleID = (uint8_t)(uint32 + 1); + exiFrag->SAScheduleTupleID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 257: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */ + errn = decode_iso2SPKIDataType(stream, &exiFrag->SPKIData); + exiFrag->SPKIData_isUsed = 1u; + break; + case 258: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->SPKISexp.bytesLen); + if (errn == 0) { + errn = (exiFrag->SPKISexp.bytesLen) <= iso2EXIFragment_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->SPKISexp.bytesLen, exiFrag->SPKISexp.bytes); + } + exiFrag->SPKISexp_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 259: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariff) */ + errn = decode_iso2SalesTariffType(stream, &exiFrag->SalesTariff); + exiFrag->SalesTariff_isUsed = 1u; + break; + case 260: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffDescription) */ + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->SalesTariffDescription.charactersLen); + if (errn == 0) { + if (exiFrag->SalesTariffDescription.charactersLen >= 2) { + exiFrag->SalesTariffDescription.charactersLen = (uint16_t)(exiFrag->SalesTariffDescription.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->SalesTariffDescription.charactersLen, exiFrag->SalesTariffDescription.characters, iso2EXIFragment_SalesTariffDescription_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->SalesTariffDescription_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 261: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffEntry) */ + errn = decode_iso2SalesTariffEntryType(stream, &exiFrag->SalesTariffEntry); + exiFrag->SalesTariffEntry_isUsed = 1u; + break; + case 262: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffID) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->SalesTariffID = (uint8_t)(uint32 + 1); + exiFrag->SalesTariffID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 263: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Seed.bytesLen); + if (errn == 0) { + errn = (exiFrag->Seed.bytesLen) <= iso2EXIFragment_Seed_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Seed.bytesLen, exiFrag->Seed.bytes); + } + exiFrag->Seed_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 264: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedEnergyTransferService) */ + errn = decode_iso2SelectedServiceType(stream, &exiFrag->SelectedEnergyTransferService); + exiFrag->SelectedEnergyTransferService_isUsed = 1u; + break; + case 265: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedPaymentOption) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 1, &uint32); + exiFrag->SelectedPaymentOption = (iso2paymentOptionType) uint32; + exiFrag->SelectedPaymentOption_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 266: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService) */ + errn = decode_iso2SelectedServiceType(stream, &exiFrag->SelectedService); + exiFrag->SelectedService_isUsed = 1u; + break; + case 267: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedVASList) */ + errn = decode_iso2SelectedServiceListType(stream, &exiFrag->SelectedVASList); + exiFrag->SelectedVASList_isUsed = 1u; + break; + case 268: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor) */ + errn = decode_iso2SensorType(stream, &exiFrag->Sensor); + exiFrag->Sensor_isUsed = 1u; + break; + case 269: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorID) */ + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->SensorID = (uint8_t)(uint32 + 0); + exiFrag->SensorID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 270: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorList) */ + errn = decode_iso2SensorListType(stream, &exiFrag->SensorList); + exiFrag->SensorList_isUsed = 1u; + break; + case 271: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements) */ + errn = decode_iso2SensorMeasurementsType(stream, &exiFrag->SensorMeasurements); + exiFrag->SensorMeasurements_isUsed = 1u; + break; + case 272: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorOrder) */ + errn = decode_iso2SensorOrderListType(stream, &exiFrag->SensorOrder); + exiFrag->SensorOrder_isUsed = 1u; + break; + case 273: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorOrientation) */ + errn = decode_iso2CartesianCoordinatesType(stream, &exiFrag->SensorOrientation); + exiFrag->SensorOrientation_isUsed = 1u; + break; + case 274: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage) */ + errn = decode_iso2SensorPackageType(stream, &exiFrag->SensorPackage); + exiFrag->SensorPackage_isUsed = 1u; + break; + case 275: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackageList) */ + errn = decode_iso2SensorPackageListType(stream, &exiFrag->SensorPackageList); + exiFrag->SensorPackageList_isUsed = 1u; + break; + case 276: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) */ + errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SensorPosition */ + break; + case 277: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service) */ + errn = decode_iso2ServiceType(stream, &exiFrag->Service); + exiFrag->Service_isUsed = 1u; + break; + case 278: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailReq) */ + errn = decode_iso2ServiceDetailReqType(stream, &exiFrag->ServiceDetailReq); + exiFrag->ServiceDetailReq_isUsed = 1u; + break; + case 279: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailRes) */ + errn = decode_iso2ServiceDetailResType(stream, &exiFrag->ServiceDetailRes); + exiFrag->ServiceDetailRes_isUsed = 1u; + break; + case 280: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryReq) */ + errn = decode_iso2ServiceDiscoveryReqType(stream, &exiFrag->ServiceDiscoveryReq); + exiFrag->ServiceDiscoveryReq_isUsed = 1u; + break; + case 281: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryRes) */ + errn = decode_iso2ServiceDiscoveryResType(stream, &exiFrag->ServiceDiscoveryRes); + exiFrag->ServiceDiscoveryRes_isUsed = 1u; + break; + case 282: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceID) */ + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceID); + exiFrag->ServiceID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 283: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID) */ + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceID); + exiFrag->ServiceID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 284: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceParameterList) */ + errn = decode_iso2ServiceParameterListType(stream, &exiFrag->ServiceParameterList); + exiFrag->ServiceParameterList_isUsed = 1u; + break; + case 285: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionID) */ + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->SessionID.bytesLen); + if (errn == 0) { + errn = (exiFrag->SessionID.bytesLen) <= iso2EXIFragment_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->SessionID.bytesLen, exiFrag->SessionID.bytes); + } + exiFrag->SessionID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 286: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgHeader}SessionID) */ + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->SessionID.bytesLen); + if (errn == 0) { + errn = (exiFrag->SessionID.bytesLen) <= iso2EXIFragment_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->SessionID.bytesLen, exiFrag->SessionID.bytes); + } + exiFrag->SessionID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 287: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupReq) */ + errn = decode_iso2SessionSetupReqType(stream, &exiFrag->SessionSetupReq); + exiFrag->SessionSetupReq_isUsed = 1u; + break; + case 288: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupRes) */ + errn = decode_iso2SessionSetupResType(stream, &exiFrag->SessionSetupRes); + exiFrag->SessionSetupRes_isUsed = 1u; + break; + case 289: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopReq) */ + errn = decode_iso2SessionStopReqType(stream, &exiFrag->SessionStopReq); + exiFrag->SessionStopReq_isUsed = 1u; + break; + case 290: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopRes) */ + errn = decode_iso2SessionStopResType(stream, &exiFrag->SessionStopRes); + exiFrag->SessionStopRes_isUsed = 1u; + break; + case 291: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SigMeterReading) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->SigMeterReading.bytesLen); + if (errn == 0) { + errn = (exiFrag->SigMeterReading.bytesLen) <= iso2EXIFragment_SigMeterReading_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->SigMeterReading.bytesLen, exiFrag->SigMeterReading.bytes); + } + exiFrag->SigMeterReading_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 292: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalFrequency) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->SignalFrequency); + exiFrag->SignalFrequency_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 293: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalPulseDuration) */ + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->SignalPulseDuration = (uint8_t)(uint32 + 0); + exiFrag->SignalPulseDuration_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 294: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalSeparationTime) */ + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->SignalSeparationTime = (uint8_t)(uint32 + 0); + exiFrag->SignalSeparationTime_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 295: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */ + errn = decode_iso2SignatureType(stream, &exiFrag->Signature); + exiFrag->Signature_isUsed = 1u; + break; + case 296: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */ + errn = decode_iso2SignatureMethodType(stream, &exiFrag->SignatureMethod); + exiFrag->SignatureMethod_isUsed = 1u; + break; + case 297: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */ + errn = decode_iso2SignaturePropertiesType(stream, &exiFrag->SignatureProperties); + exiFrag->SignatureProperties_isUsed = 1u; + break; + case 298: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */ + errn = decode_iso2SignaturePropertyType(stream, &exiFrag->SignatureProperty); + exiFrag->SignatureProperty_isUsed = 1u; + break; + case 299: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */ + errn = decode_iso2SignatureValueType(stream, &exiFrag->SignatureValue); + exiFrag->SignatureValue_isUsed = 1u; + break; + case 300: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */ + errn = decode_iso2SignedInfoType(stream, &exiFrag->SignedInfo); + exiFrag->SignedInfo_isUsed = 1u; + break; + case 301: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SubCertificates) */ + errn = decode_iso2SubCertificatesType(stream, &exiFrag->SubCertificates); + exiFrag->SubCertificates_isUsed = 1u; + break; + case 302: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SupportedServiceIDs) */ + errn = decode_iso2ServiceIDListType(stream, &exiFrag->SupportedServiceIDs); + exiFrag->SupportedServiceIDs_isUsed = 1u; + break; + case 303: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusReq) */ + errn = decode_iso2SystemStatusReqType(stream, &exiFrag->SystemStatusReq); + exiFrag->SystemStatusReq_isUsed = 1u; + break; + case 304: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusRes) */ + errn = decode_iso2SystemStatusResType(stream, &exiFrag->SystemStatusRes); + exiFrag->SystemStatusRes_isUsed = 1u; + break; + case 305: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &exiFrag->TMeter); + exiFrag->TMeter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 306: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}TargetOffset) */ + errn = decode_iso2TargetPositionType(stream, &exiFrag->TargetOffset); + exiFrag->TargetOffset_isUsed = 1u; + break; + case 307: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetOffsetX) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->TargetOffsetX); + exiFrag->TargetOffsetX_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 308: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetOffsetY) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->TargetOffsetY); + exiFrag->TargetOffsetY_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 309: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC) */ + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 7, &(uint32)); + exiFrag->TargetSOC = (int8_t)(uint32 + 0); + exiFrag->TargetSOC_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 310: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */ + errn = decode_iso2TransformType(stream, &exiFrag->Transform); + exiFrag->Transform_isUsed = 1u; + break; + case 311: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */ + errn = decode_iso2TransformsType(stream, &exiFrag->Transforms); + exiFrag->Transforms_isUsed = 1u; + break; + case 312: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GRequest) */ + errn = decode_iso2BodyBaseType(stream, &exiFrag->V2GRequest); + exiFrag->V2GRequest_isUsed = 1u; + break; + case 313: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GResponse) */ + errn = decode_iso2V2GResponseType(stream, &exiFrag->V2GResponse); + exiFrag->V2GResponse_isUsed = 1u; + break; + case 314: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDef}V2G_Message) */ + errn = decode_iso2AnonType_V2G_Message(stream, &exiFrag->V2G_Message); + exiFrag->V2G_Message_isUsed = 1u; + break; + case 315: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VASList) */ + errn = decode_iso2ServiceListType(stream, &exiFrag->VASList); + exiFrag->VASList_isUsed = 1u; + break; + case 316: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Value) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->Value); + exiFrag->Value_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 317: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInReq) */ + errn = decode_iso2VehicleCheckInReqType(stream, &exiFrag->VehicleCheckInReq); + exiFrag->VehicleCheckInReq_isUsed = 1u; + break; + case 318: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInRes) */ + errn = decode_iso2VehicleCheckInResType(stream, &exiFrag->VehicleCheckInRes); + exiFrag->VehicleCheckInRes_isUsed = 1u; + break; + case 319: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutReq) */ + errn = decode_iso2VehicleCheckOutReqType(stream, &exiFrag->VehicleCheckOutReq); + exiFrag->VehicleCheckOutReq_isUsed = 1u; + break; + case 320: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutRes) */ + errn = decode_iso2VehicleCheckOutResType(stream, &exiFrag->VehicleCheckOutRes); + exiFrag->VehicleCheckOutRes_isUsed = 1u; + break; + case 321: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleSpace) */ + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->VehicleSpace); + exiFrag->VehicleSpace_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 322: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVChargeParameter) */ + errn = decode_iso2WPT_EVChargeParameterType(stream, &exiFrag->WPT_EVChargeParameter); + exiFrag->WPT_EVChargeParameter_isUsed = 1u; + break; + case 323: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVSEChargeParameter) */ + errn = decode_iso2WPT_EVSEChargeParameterType(stream, &exiFrag->WPT_EVSEChargeParameter); + exiFrag->WPT_EVSEChargeParameter_isUsed = 1u; + break; + case 324: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionReq) */ + errn = decode_iso2WeldingDetectionReqType(stream, &exiFrag->WeldingDetectionReq); + exiFrag->WeldingDetectionReq_isUsed = 1u; + break; + case 325: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionRes) */ + errn = decode_iso2WeldingDetectionResType(stream, &exiFrag->WeldingDetectionRes); + exiFrag->WeldingDetectionRes_isUsed = 1u; + break; + case 326: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509CRL.bytesLen); + if (errn == 0) { + errn = (exiFrag->X509CRL.bytesLen) <= iso2EXIFragment_X509CRL_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->X509CRL.bytesLen, exiFrag->X509CRL.bytes); + } + exiFrag->X509CRL_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 327: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509Certificate.bytesLen); + if (errn == 0) { + errn = (exiFrag->X509Certificate.bytesLen) <= iso2EXIFragment_X509Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->X509Certificate.bytesLen, exiFrag->X509Certificate.bytes); + } + exiFrag->X509Certificate_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 328: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */ + errn = decode_iso2X509DataType(stream, &exiFrag->X509Data); + exiFrag->X509Data_isUsed = 1u; + break; + case 329: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509IssuerName.charactersLen); + if (errn == 0) { + if (exiFrag->X509IssuerName.charactersLen >= 2) { + exiFrag->X509IssuerName.charactersLen = (uint16_t)(exiFrag->X509IssuerName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->X509IssuerName.charactersLen, exiFrag->X509IssuerName.characters, iso2EXIFragment_X509IssuerName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->X509IssuerName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 330: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial) */ + errn = decode_iso2X509IssuerSerialType(stream, &exiFrag->X509IssuerSerial); + exiFrag->X509IssuerSerial_isUsed = 1u; + break; + case 331: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509SKI.bytesLen); + if (errn == 0) { + errn = (exiFrag->X509SKI.bytesLen) <= iso2EXIFragment_X509SKI_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->X509SKI.bytesLen, exiFrag->X509SKI.bytes); + } + exiFrag->X509SKI_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 332: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &exiFrag->X509SerialNumber); + exiFrag->X509SerialNumber_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 333: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509SubjectName.charactersLen); + if (errn == 0) { + if (exiFrag->X509SubjectName.charactersLen >= 2) { + exiFrag->X509SubjectName.charactersLen = (uint16_t)(exiFrag->X509SubjectName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->X509SubjectName.charactersLen, exiFrag->X509SubjectName.characters, iso2EXIFragment_X509SubjectName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->X509SubjectName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 334: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}XCoordinate) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->XCoordinate); + exiFrag->XCoordinate_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 335: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->XPath.charactersLen); + if (errn == 0) { + if (exiFrag->XPath.charactersLen >= 2) { + exiFrag->XPath.charactersLen = (uint16_t)(exiFrag->XPath.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->XPath.charactersLen, exiFrag->XPath.characters, iso2EXIFragment_XPath_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->XPath_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 336: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Y.bytesLen); + if (errn == 0) { + errn = (exiFrag->Y.bytesLen) <= iso2EXIFragment_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Y.bytesLen, exiFrag->Y.bytes); + } + exiFrag->Y_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 337: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}YCoordinate) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->YCoordinate); + exiFrag->YCoordinate_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 338: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ZCoordinate) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->ZCoordinate); + exiFrag->ZCoordinate_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 339: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}amount) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->amount); + exiFrag->amount_isUsed = 1u; + break; + case 340: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}boolValue) */ + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeBoolean(stream, &exiFrag->boolValue); + exiFrag->boolValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 341: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}byteValue) */ + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 8, &(uint32)); + exiFrag->byteValue = (int8_t)(uint32 -128); + exiFrag->byteValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 342: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}costKind) */ + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeNBitUnsignedInteger(stream, 2, &uint32); + exiFrag->costKind = (iso2costKindType) uint32; + exiFrag->costKind_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 343: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}duration) */ + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &exiFrag->duration); + exiFrag->duration_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 344: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}eMAID) */ + errn = decode_iso2EMAIDType(stream, &exiFrag->eMAID); + exiFrag->eMAID_isUsed = 1u; + break; + case 345: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}intValue) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger32(stream, &exiFrag->intValue); + exiFrag->intValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 346: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}physicalValue) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->physicalValue); + exiFrag->physicalValue_isUsed = 1u; + break; + case 347: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}shortValue) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger16(stream, &exiFrag->shortValue); + exiFrag->shortValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 348: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}start) */ + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger32(stream, &exiFrag->start); + exiFrag->start_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 349: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}startValue) */ + errn = decode_iso2PhysicalValueType(stream, &exiFrag->startValue); + exiFrag->startValue_isUsed = 1u; + break; + case 350: + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}stringValue) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->stringValue.charactersLen); + if (errn == 0) { + if (exiFrag->stringValue.charactersLen >= 2) { + exiFrag->stringValue.charactersLen = (uint16_t)(exiFrag->stringValue.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->stringValue.charactersLen, exiFrag->stringValue.characters, iso2EXIFragment_stringValue_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->stringValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + default: + errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; + break; + } + } + if(errn == 0) { + /* EndDocument */ + errn = decodeNBitUnsignedInteger(stream, 9, &eventCode); + if (eventCode != 352) { + errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; + } + } + + } + + (void)exiFrag; /* avoid unused warning */ + + return errn; +} +#endif /* DEPLOY_ISO2_CODEC_FRAGMENT */ + + +#endif /* DEPLOY_ISO2_CODEC */ + +#endif + diff --git a/csharp/vc2022/src/iso2/iso2EXIDatatypesDecoder.h b/csharp/vc2022/src/iso2/iso2EXIDatatypesDecoder.h new file mode 100644 index 0000000..c4d64e0 --- /dev/null +++ b/csharp/vc2022/src/iso2/iso2EXIDatatypesDecoder.h @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIDatatypesDecoder.h + * \brief Decoder for datatype definitions + * + */ + +#ifndef EXI_iso2_DATATYPES_DECODER_H +#define EXI_iso2_DATATYPES_DECODER_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "iso2EXIDatatypes.h" + +#if DEPLOY_ISO2_CODEC == SUPPORT_YES + +#include + +#include "EXITypes.h" + +int decode_iso2ExiDocument(bitstream_t* stream, struct iso2EXIDocument* exiDoc); + +#if DEPLOY_ISO2_CODEC_FRAGMENT == SUPPORT_YES +int decode_iso2ExiFragment(bitstream_t* stream, struct iso2EXIFragment* exiFrag); +#endif /* DEPLOY_ISO2_CODEC_FRAGMENT */ + +#endif /* DEPLOY_ISO2_CODEC */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/iso2/iso2EXIDatatypesEncoder.c b/csharp/vc2022/src/iso2/iso2EXIDatatypesEncoder.c new file mode 100644 index 0000000..d34b268 --- /dev/null +++ b/csharp/vc2022/src/iso2/iso2EXIDatatypesEncoder.c @@ -0,0 +1,62632 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + + +#include "iso2EXIDatatypesEncoder.h" + +#include "EncoderChannel.h" +#include "EXIHeaderEncoder.h" + +#include "iso2EXIDatatypes.h" +#include "ErrorCodes.h" + +#ifndef EXI_iso2_DATATYPES_ENCODER_C +#define EXI_iso2_DATATYPES_ENCODER_C + +#if DEPLOY_ISO2_CODEC == SUPPORT_YES + +static int errn; + +/* Forward Declarations */ +static int encode_iso2RetrievalMethodType(bitstream_t* stream, struct iso2RetrievalMethodType* iso2RetrievalMethodType); +static int encode_iso2AuthorizationResType(bitstream_t* stream, struct iso2AuthorizationResType* iso2AuthorizationResType); +static int encode_iso2MV_EVSEFinePositioningSetupParametersType(bitstream_t* stream, struct iso2MV_EVSEFinePositioningSetupParametersType* iso2MV_EVSEFinePositioningSetupParametersType); +static int encode_iso2X509DataType(bitstream_t* stream, struct iso2X509DataType* iso2X509DataType); +static int encode_iso2RSAKeyValueType(bitstream_t* stream, struct iso2RSAKeyValueType* iso2RSAKeyValueType); +static int encode_iso2DC_BidirectionalControlResType(bitstream_t* stream, struct iso2DC_BidirectionalControlResType* iso2DC_BidirectionalControlResType); +static int encode_iso2CostType(bitstream_t* stream, struct iso2CostType* iso2CostType); +static int encode_iso2ChargingStatusResType(bitstream_t* stream, struct iso2ChargingStatusResType* iso2ChargingStatusResType); +static int encode_iso2MeterInfoType(bitstream_t* stream, struct iso2MeterInfoType* iso2MeterInfoType); +static int encode_iso2AC_EVChargeParameterType(bitstream_t* stream, struct iso2AC_EVChargeParameterType* iso2AC_EVChargeParameterType); +static int encode_iso2AC_EVSEBidirectionalParameterType(bitstream_t* stream, struct iso2AC_EVSEBidirectionalParameterType* iso2AC_EVSEBidirectionalParameterType); +static int encode_iso2VehicleCheckOutResType(bitstream_t* stream, struct iso2VehicleCheckOutResType* iso2VehicleCheckOutResType); +static int encode_iso2MagneticVectorListType(bitstream_t* stream, struct iso2MagneticVectorListType* iso2MagneticVectorListType); +static int encode_iso2CableCheckResType(bitstream_t* stream, struct iso2CableCheckResType* iso2CableCheckResType); +static int encode_iso2ServiceDiscoveryReqType(bitstream_t* stream, struct iso2ServiceDiscoveryReqType* iso2ServiceDiscoveryReqType); +static int encode_iso2ServiceType(bitstream_t* stream, struct iso2ServiceType* iso2ServiceType); +static int encode_iso2ServiceParameterListType(bitstream_t* stream, struct iso2ServiceParameterListType* iso2ServiceParameterListType); +static int encode_iso2PMaxScheduleType(bitstream_t* stream, struct iso2PMaxScheduleType* iso2PMaxScheduleType); +static int encode_iso2SignaturePropertiesType(bitstream_t* stream, struct iso2SignaturePropertiesType* iso2SignaturePropertiesType); +static int encode_iso2PMaxScheduleEntryType(bitstream_t* stream, struct iso2PMaxScheduleEntryType* iso2PMaxScheduleEntryType); +static int encode_iso2SignatureType(bitstream_t* stream, struct iso2SignatureType* iso2SignatureType); +static int encode_iso2VehicleCheckInReqType(bitstream_t* stream, struct iso2VehicleCheckInReqType* iso2VehicleCheckInReqType); +static int encode_iso2ConnectChargingDeviceResType(bitstream_t* stream, struct iso2ConnectChargingDeviceResType* iso2ConnectChargingDeviceResType); +static int encode_iso2WeldingDetectionResType(bitstream_t* stream, struct iso2WeldingDetectionResType* iso2WeldingDetectionResType); +static int encode_iso2SessionStopResType(bitstream_t* stream, struct iso2SessionStopResType* iso2SessionStopResType); +static int encode_iso2VehicleCheckInResType(bitstream_t* stream, struct iso2VehicleCheckInResType* iso2VehicleCheckInResType); +static int encode_iso2ServiceListType(bitstream_t* stream, struct iso2ServiceListType* iso2ServiceListType); +static int encode_iso2CertificateUpdateResType(bitstream_t* stream, struct iso2CertificateUpdateResType* iso2CertificateUpdateResType); +static int encode_iso2FinePositioningSetupResType(bitstream_t* stream, struct iso2FinePositioningSetupResType* iso2FinePositioningSetupResType); +static int encode_iso2AC_EVBidirectionalParameterType(bitstream_t* stream, struct iso2AC_EVBidirectionalParameterType* iso2AC_EVBidirectionalParameterType); +static int encode_iso2DC_BidirectionalControlReqType(bitstream_t* stream, struct iso2DC_BidirectionalControlReqType* iso2DC_BidirectionalControlReqType); +static int encode_iso2CertificateUpdateReqType(bitstream_t* stream, struct iso2CertificateUpdateReqType* iso2CertificateUpdateReqType); +static int encode_iso2ConsumptionCostType(bitstream_t* stream, struct iso2ConsumptionCostType* iso2ConsumptionCostType); +static int encode_iso2SAScheduleListType(bitstream_t* stream, struct iso2SAScheduleListType* iso2SAScheduleListType); +static int encode_iso2MagneticVectorSetupType(bitstream_t* stream, struct iso2MagneticVectorSetupType* iso2MagneticVectorSetupType); +static int encode_iso2LFA_EVSEFinePositioningSetupParametersType(bitstream_t* stream, struct iso2LFA_EVSEFinePositioningSetupParametersType* iso2LFA_EVSEFinePositioningSetupParametersType); +static int encode_iso2PaymentOptionListType(bitstream_t* stream, struct iso2PaymentOptionListType* iso2PaymentOptionListType); +static int encode_iso2LFA_EVSEFinePositioningParametersType(bitstream_t* stream, struct iso2LFA_EVSEFinePositioningParametersType* iso2LFA_EVSEFinePositioningParametersType); +static int encode_iso2RelativeTimeIntervalType(bitstream_t* stream, struct iso2RelativeTimeIntervalType* iso2RelativeTimeIntervalType); +static int encode_iso2EVFinePositioningParametersType(bitstream_t* stream, struct iso2EVFinePositioningParametersType* iso2EVFinePositioningParametersType); +static int encode_iso2AlignmentCheckReqType(bitstream_t* stream, struct iso2AlignmentCheckReqType* iso2AlignmentCheckReqType); +static int encode_iso2CertificateInstallationReqType(bitstream_t* stream, struct iso2CertificateInstallationReqType* iso2CertificateInstallationReqType); +static int encode_iso2TransformsType(bitstream_t* stream, struct iso2TransformsType* iso2TransformsType); +static int encode_iso2ObjectType(bitstream_t* stream, struct iso2ObjectType* iso2ObjectType); +static int encode_iso2SensorOrderListType(bitstream_t* stream, struct iso2SensorOrderListType* iso2SensorOrderListType); +static int encode_iso2ChargeParameterDiscoveryReqType(bitstream_t* stream, struct iso2ChargeParameterDiscoveryReqType* iso2ChargeParameterDiscoveryReqType); +static int encode_iso2ParameterType(bitstream_t* stream, struct iso2ParameterType* iso2ParameterType); +static int encode_iso2SessionStopReqType(bitstream_t* stream, struct iso2SessionStopReqType* iso2SessionStopReqType); +static int encode_iso2SensorMeasurementsType(bitstream_t* stream, struct iso2SensorMeasurementsType* iso2SensorMeasurementsType); +static int encode_iso2DC_EVSEChargeParameterType(bitstream_t* stream, struct iso2DC_EVSEChargeParameterType* iso2DC_EVSEChargeParameterType); +static int encode_iso2SensorPackageListType(bitstream_t* stream, struct iso2SensorPackageListType* iso2SensorPackageListType); +static int encode_iso2MeasurementDataListType(bitstream_t* stream, struct iso2MeasurementDataListType* iso2MeasurementDataListType); +static int encode_iso2CertificateChainType(bitstream_t* stream, struct iso2CertificateChainType* iso2CertificateChainType); +static int encode_iso2SignaturePropertyType(bitstream_t* stream, struct iso2SignaturePropertyType* iso2SignaturePropertyType); +static int encode_iso2TransformType(bitstream_t* stream, struct iso2TransformType* iso2TransformType); +static int encode_iso2EMAIDType(bitstream_t* stream, struct iso2EMAIDType* iso2EMAIDType); +static int encode_iso2DSAKeyValueType(bitstream_t* stream, struct iso2DSAKeyValueType* iso2DSAKeyValueType); +static int encode_iso2EntryType(bitstream_t* stream, struct iso2EntryType* iso2EntryType); +static int encode_iso2MessageHeaderType(bitstream_t* stream, struct iso2MessageHeaderType* iso2MessageHeaderType); +static int encode_iso2WPT_EVChargeParameterType(bitstream_t* stream, struct iso2WPT_EVChargeParameterType* iso2WPT_EVChargeParameterType); +static int encode_iso2DisconnectChargingDeviceReqType(bitstream_t* stream, struct iso2DisconnectChargingDeviceReqType* iso2DisconnectChargingDeviceReqType); +static int encode_iso2ChargeLoopReqType(bitstream_t* stream, struct iso2ChargeLoopReqType* iso2ChargeLoopReqType); +static int encode_iso2V2GRequestType(bitstream_t* stream, struct iso2V2GRequestType* iso2V2GRequestType); +static int encode_iso2MeteringReceiptResType(bitstream_t* stream, struct iso2MeteringReceiptResType* iso2MeteringReceiptResType); +static int encode_iso2SessionSetupResType(bitstream_t* stream, struct iso2SessionSetupResType* iso2SessionSetupResType); +static int encode_iso2AC_BidirectionalControlReqType(bitstream_t* stream, struct iso2AC_BidirectionalControlReqType* iso2AC_BidirectionalControlReqType); +static int encode_iso2MV_EVSEFinePositioningParametersType(bitstream_t* stream, struct iso2MV_EVSEFinePositioningParametersType* iso2MV_EVSEFinePositioningParametersType); +static int encode_iso2ReferenceType(bitstream_t* stream, struct iso2ReferenceType* iso2ReferenceType); +static int encode_iso2EVSEEnergyTransferParameterType(bitstream_t* stream, struct iso2EVSEEnergyTransferParameterType* iso2EVSEEnergyTransferParameterType); +static int encode_iso2MeteringReceiptReqType(bitstream_t* stream, struct iso2MeteringReceiptReqType* iso2MeteringReceiptReqType); +static int encode_iso2KeyValueType(bitstream_t* stream, struct iso2KeyValueType* iso2KeyValueType); +static int encode_iso2SensorListType(bitstream_t* stream, struct iso2SensorListType* iso2SensorListType); +static int encode_iso2CurrentDemandReqType(bitstream_t* stream, struct iso2CurrentDemandReqType* iso2CurrentDemandReqType); +static int encode_iso2FinePositioningSetupReqType(bitstream_t* stream, struct iso2FinePositioningSetupReqType* iso2FinePositioningSetupReqType); +static int encode_iso2LFA_EVFinePositioningSetupParametersType(bitstream_t* stream, struct iso2LFA_EVFinePositioningSetupParametersType* iso2LFA_EVFinePositioningSetupParametersType); +static int encode_iso2SAScheduleTupleType(bitstream_t* stream, struct iso2SAScheduleTupleType* iso2SAScheduleTupleType); +static int encode_iso2WPT_EVSEChargeParameterType(bitstream_t* stream, struct iso2WPT_EVSEChargeParameterType* iso2WPT_EVSEChargeParameterType); +static int encode_iso2FinePositioningResType(bitstream_t* stream, struct iso2FinePositioningResType* iso2FinePositioningResType); +static int encode_iso2BodyBaseType(bitstream_t* stream, struct iso2BodyBaseType* iso2BodyBaseType); +static int encode_iso2ServiceDetailResType(bitstream_t* stream, struct iso2ServiceDetailResType* iso2ServiceDetailResType); +static int encode_iso2PowerDeliveryReqType(bitstream_t* stream, struct iso2PowerDeliveryReqType* iso2PowerDeliveryReqType); +static int encode_iso2PairingResType(bitstream_t* stream, struct iso2PairingResType* iso2PairingResType); +static int encode_iso2AuthorizationReqType(bitstream_t* stream, struct iso2AuthorizationReqType* iso2AuthorizationReqType); +static int encode_iso2ParameterSetType(bitstream_t* stream, struct iso2ParameterSetType* iso2ParameterSetType); +static int encode_iso2SPKIDataType(bitstream_t* stream, struct iso2SPKIDataType* iso2SPKIDataType); +static int encode_iso2PaymentDetailsResType(bitstream_t* stream, struct iso2PaymentDetailsResType* iso2PaymentDetailsResType); +static int encode_iso2SignatureMethodType(bitstream_t* stream, struct iso2SignatureMethodType* iso2SignatureMethodType); +static int encode_iso2AC_BidirectionalControlResType(bitstream_t* stream, struct iso2AC_BidirectionalControlResType* iso2AC_BidirectionalControlResType); +static int encode_iso2VehicleCheckOutReqType(bitstream_t* stream, struct iso2VehicleCheckOutReqType* iso2VehicleCheckOutReqType); +static int encode_iso2WeldingDetectionReqType(bitstream_t* stream, struct iso2WeldingDetectionReqType* iso2WeldingDetectionReqType); +static int encode_iso2AlignmentCheckResType(bitstream_t* stream, struct iso2AlignmentCheckResType* iso2AlignmentCheckResType); +static int encode_iso2PowerDemandReqType(bitstream_t* stream, struct iso2PowerDemandReqType* iso2PowerDemandReqType); +static int encode_iso2MinimumPMaxRequestType(bitstream_t* stream, struct iso2MinimumPMaxRequestType* iso2MinimumPMaxRequestType); +static int encode_iso2DisconnectChargingDeviceResType(bitstream_t* stream, struct iso2DisconnectChargingDeviceResType* iso2DisconnectChargingDeviceResType); +static int encode_iso2SessionSetupReqType(bitstream_t* stream, struct iso2SessionSetupReqType* iso2SessionSetupReqType); +static int encode_iso2PaymentDetailsReqType(bitstream_t* stream, struct iso2PaymentDetailsReqType* iso2PaymentDetailsReqType); +static int encode_iso2Generic_EVFinePositioningParametersType(bitstream_t* stream, struct iso2Generic_EVFinePositioningParametersType* iso2Generic_EVFinePositioningParametersType); +static int encode_iso2ConnectChargingDeviceReqType(bitstream_t* stream, struct iso2ConnectChargingDeviceReqType* iso2ConnectChargingDeviceReqType); +static int encode_iso2AC_EVSEChargeParameterType(bitstream_t* stream, struct iso2AC_EVSEChargeParameterType* iso2AC_EVSEChargeParameterType); +static int encode_iso2SalesTariffEntryType(bitstream_t* stream, struct iso2SalesTariffEntryType* iso2SalesTariffEntryType); +static int encode_iso2DC_EVSEBidirectionalParameterType(bitstream_t* stream, struct iso2DC_EVSEBidirectionalParameterType* iso2DC_EVSEBidirectionalParameterType); +static int encode_iso2CanonicalizationMethodType(bitstream_t* stream, struct iso2CanonicalizationMethodType* iso2CanonicalizationMethodType); +static int encode_iso2DisplayParametersType(bitstream_t* stream, struct iso2DisplayParametersType* iso2DisplayParametersType); +static int encode_iso2DC_EVBidirectionalParameterType(bitstream_t* stream, struct iso2DC_EVBidirectionalParameterType* iso2DC_EVBidirectionalParameterType); +static int encode_iso2PaymentServiceSelectionReqType(bitstream_t* stream, struct iso2PaymentServiceSelectionReqType* iso2PaymentServiceSelectionReqType); +static int encode_iso2MagneticVectorType(bitstream_t* stream, struct iso2MagneticVectorType* iso2MagneticVectorType); +static int encode_iso2PhysicalValueType(bitstream_t* stream, struct iso2PhysicalValueType* iso2PhysicalValueType); +static int encode_iso2SystemStatusReqType(bitstream_t* stream, struct iso2SystemStatusReqType* iso2SystemStatusReqType); +static int encode_iso2SystemStatusResType(bitstream_t* stream, struct iso2SystemStatusResType* iso2SystemStatusResType); +static int encode_iso2EVSEFinePositioningSetupParametersType(bitstream_t* stream, struct iso2EVSEFinePositioningSetupParametersType* iso2EVSEFinePositioningSetupParametersType); +static int encode_iso2V2GResponseType(bitstream_t* stream, struct iso2V2GResponseType* iso2V2GResponseType); +static int encode_iso2BodyType(bitstream_t* stream, struct iso2BodyType* iso2BodyType); +static int encode_iso2PreChargeResType(bitstream_t* stream, struct iso2PreChargeResType* iso2PreChargeResType); +static int encode_iso2EVSEFinePositioningParametersType(bitstream_t* stream, struct iso2EVSEFinePositioningParametersType* iso2EVSEFinePositioningParametersType); +static int encode_iso2PaymentServiceSelectionResType(bitstream_t* stream, struct iso2PaymentServiceSelectionResType* iso2PaymentServiceSelectionResType); +static int encode_iso2DigestMethodType(bitstream_t* stream, struct iso2DigestMethodType* iso2DigestMethodType); +static int encode_iso2TargetPositionType(bitstream_t* stream, struct iso2TargetPositionType* iso2TargetPositionType); +static int encode_iso2LFA_EVFinePositioningParametersType(bitstream_t* stream, struct iso2LFA_EVFinePositioningParametersType* iso2LFA_EVFinePositioningParametersType); +static int encode_iso2DC_EVChargeParameterType(bitstream_t* stream, struct iso2DC_EVChargeParameterType* iso2DC_EVChargeParameterType); +static int encode_iso2ServiceDetailReqType(bitstream_t* stream, struct iso2ServiceDetailReqType* iso2ServiceDetailReqType); +static int encode_iso2PreChargeReqType(bitstream_t* stream, struct iso2PreChargeReqType* iso2PreChargeReqType); +static int encode_iso2ManifestType(bitstream_t* stream, struct iso2ManifestType* iso2ManifestType); +static int encode_iso2AnonType_V2G_Message(bitstream_t* stream, struct iso2AnonType_V2G_Message* iso2AnonType_V2G_Message); +static int encode_iso2SelectedServiceListType(bitstream_t* stream, struct iso2SelectedServiceListType* iso2SelectedServiceListType); +static int encode_iso2Generic_EVSEFinePositioningParametersType(bitstream_t* stream, struct iso2Generic_EVSEFinePositioningParametersType* iso2Generic_EVSEFinePositioningParametersType); +static int encode_iso2CartesianCoordinatesType(bitstream_t* stream, struct iso2CartesianCoordinatesType* iso2CartesianCoordinatesType); +static int encode_iso2KeyInfoType(bitstream_t* stream, struct iso2KeyInfoType* iso2KeyInfoType); +static int encode_iso2SubCertificatesType(bitstream_t* stream, struct iso2SubCertificatesType* iso2SubCertificatesType); +static int encode_iso2ListOfRootCertificateIDsType(bitstream_t* stream, struct iso2ListOfRootCertificateIDsType* iso2ListOfRootCertificateIDsType); +static int encode_iso2EVEnergyTransferParameterType(bitstream_t* stream, struct iso2EVEnergyTransferParameterType* iso2EVEnergyTransferParameterType); +static int encode_iso2ContractSignatureEncryptedPrivateKeyType(bitstream_t* stream, struct iso2ContractSignatureEncryptedPrivateKeyType* iso2ContractSignatureEncryptedPrivateKeyType); +static int encode_iso2MagneticVectorSetupListType(bitstream_t* stream, struct iso2MagneticVectorSetupListType* iso2MagneticVectorSetupListType); +static int encode_iso2PairingReqType(bitstream_t* stream, struct iso2PairingReqType* iso2PairingReqType); +static int encode_iso2CurrentDemandResType(bitstream_t* stream, struct iso2CurrentDemandResType* iso2CurrentDemandResType); +static int encode_iso2X509IssuerSerialType(bitstream_t* stream, struct iso2X509IssuerSerialType* iso2X509IssuerSerialType); +static int encode_iso2ChargingStatusReqType(bitstream_t* stream, struct iso2ChargingStatusReqType* iso2ChargingStatusReqType); +static int encode_iso2CertificateInstallationResType(bitstream_t* stream, struct iso2CertificateInstallationResType* iso2CertificateInstallationResType); +static int encode_iso2SensorPackageType(bitstream_t* stream, struct iso2SensorPackageType* iso2SensorPackageType); +static int encode_iso2PGPDataType(bitstream_t* stream, struct iso2PGPDataType* iso2PGPDataType); +static int encode_iso2ServiceDiscoveryResType(bitstream_t* stream, struct iso2ServiceDiscoveryResType* iso2ServiceDiscoveryResType); +static int encode_iso2ServiceIDListType(bitstream_t* stream, struct iso2ServiceIDListType* iso2ServiceIDListType); +static int encode_iso2EVFinePositioningSetupParametersType(bitstream_t* stream, struct iso2EVFinePositioningSetupParametersType* iso2EVFinePositioningSetupParametersType); +static int encode_iso2ChargeParameterDiscoveryResType(bitstream_t* stream, struct iso2ChargeParameterDiscoveryResType* iso2ChargeParameterDiscoveryResType); +static int encode_iso2PowerDemandResType(bitstream_t* stream, struct iso2PowerDemandResType* iso2PowerDemandResType); +static int encode_iso2ChargingProfileType(bitstream_t* stream, struct iso2ChargingProfileType* iso2ChargingProfileType); +static int encode_iso2FinePositioningReqType(bitstream_t* stream, struct iso2FinePositioningReqType* iso2FinePositioningReqType); +static int encode_iso2SalesTariffType(bitstream_t* stream, struct iso2SalesTariffType* iso2SalesTariffType); +static int encode_iso2SensorType(bitstream_t* stream, struct iso2SensorType* iso2SensorType); +static int encode_iso2SignatureValueType(bitstream_t* stream, struct iso2SignatureValueType* iso2SignatureValueType); +static int encode_iso2SignedInfoType(bitstream_t* stream, struct iso2SignedInfoType* iso2SignedInfoType); +static int encode_iso2PowerDeliveryResType(bitstream_t* stream, struct iso2PowerDeliveryResType* iso2PowerDeliveryResType); +static int encode_iso2CableCheckReqType(bitstream_t* stream, struct iso2CableCheckReqType* iso2CableCheckReqType); +static int encode_iso2SelectedServiceType(bitstream_t* stream, struct iso2SelectedServiceType* iso2SelectedServiceType); +static int encode_iso2DiffieHellmanPublickeyType(bitstream_t* stream, struct iso2DiffieHellmanPublickeyType* iso2DiffieHellmanPublickeyType); +static int encode_iso2EVSEStatusType(bitstream_t* stream, struct iso2EVSEStatusType* iso2EVSEStatusType); + + + /* Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso2RetrievalMethodType(bitstream_t* stream, struct iso2RetrievalMethodType* iso2RetrievalMethodType) { + int grammarID = 0; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 0: + /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + if ( iso2RetrievalMethodType->Type_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2RetrievalMethodType->Type.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2RetrievalMethodType->Type.characters, iso2RetrievalMethodType->Type.charactersLen); + } + } + grammarID = 1; + } else if ( iso2RetrievalMethodType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2RetrievalMethodType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2RetrievalMethodType->URI.characters, iso2RetrievalMethodType->URI.charactersLen); + } + } + grammarID = 2; + } else if ( iso2RetrievalMethodType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2TransformsType(stream, &iso2RetrievalMethodType->Transforms ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1: + /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + if ( iso2RetrievalMethodType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2RetrievalMethodType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2RetrievalMethodType->URI.characters, iso2RetrievalMethodType->URI.charactersLen); + } + } + grammarID = 2; + } else if ( iso2RetrievalMethodType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2TransformsType(stream, &iso2RetrievalMethodType->Transforms ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + if ( iso2RetrievalMethodType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2TransformsType(stream, &iso2RetrievalMethodType->Transforms ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,AuthorizationResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing))', derivedBy='EXTENSION'. */ +static int encode_iso2AuthorizationResType(bitstream_t* stream, struct iso2AuthorizationResType* iso2AuthorizationResType) { + int grammarID = 5; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 5: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2AuthorizationResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 6: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( iso2AuthorizationResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2AuthorizationResType->EVSEStatus ); + } + grammarID = 7; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2AuthorizationResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 7: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2AuthorizationResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MV_EVSEFinePositioningSetupParametersType', base type name='EVSEFinePositioningSetupParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":FrequencyChannel{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MagneticVectorSetupList{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso2MV_EVSEFinePositioningSetupParametersType(bitstream_t* stream, struct iso2MV_EVSEFinePositioningSetupParametersType* iso2MV_EVSEFinePositioningSetupParametersType) { + int grammarID = 8; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 8: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FrequencyChannel), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetupList), END_ELEMENT] */ + if ( iso2MV_EVSEFinePositioningSetupParametersType->FrequencyChannel_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, iso2MV_EVSEFinePositioningSetupParametersType->FrequencyChannel); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 9; + } else if ( iso2MV_EVSEFinePositioningSetupParametersType->MagneticVectorSetupList_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupListType(stream, &iso2MV_EVSEFinePositioningSetupParametersType->MagneticVectorSetupList ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 9: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetupList), END_ELEMENT] */ + if ( iso2MV_EVSEFinePositioningSetupParametersType->MagneticVectorSetupList_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupListType(stream, &iso2MV_EVSEFinePositioningSetupParametersType->MagneticVectorSetupList ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_iso2X509DataType(bitstream_t* stream, struct iso2X509DataType* iso2X509DataType) { + int grammarID = 10; + int done = 0; + int wcDone = 0; + + unsigned int iso2X509DataType_X509IssuerSerial_currArrayIndex = 0; + unsigned int iso2X509DataType_X509SKI_currArrayIndex = 0; + unsigned int iso2X509DataType_X509SubjectName_currArrayIndex = 0; + unsigned int iso2X509DataType_X509Certificate_currArrayIndex = 0; + unsigned int iso2X509DataType_X509CRL_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 10: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */ + if (iso2X509DataType_X509IssuerSerial_currArrayIndex < iso2X509DataType->X509IssuerSerial.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2X509DataType->X509IssuerSerial.array [iso2X509DataType_X509IssuerSerial_currArrayIndex++]); + } + grammarID = 11; + } else if (iso2X509DataType_X509SKI_currArrayIndex < iso2X509DataType->X509SKI.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2X509DataType->X509SKI.array[iso2X509DataType_X509SKI_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2X509DataType->X509SKI.array[iso2X509DataType_X509SKI_currArrayIndex].bytes, iso2X509DataType->X509SKI.array[iso2X509DataType_X509SKI_currArrayIndex].bytesLen); + iso2X509DataType_X509SKI_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 11; + } else if (iso2X509DataType_X509SubjectName_currArrayIndex < iso2X509DataType->X509SubjectName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2X509DataType->X509SubjectName.array[iso2X509DataType_X509SubjectName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2X509DataType->X509SubjectName.array[iso2X509DataType_X509SubjectName_currArrayIndex].characters, iso2X509DataType->X509SubjectName.array[iso2X509DataType_X509SubjectName_currArrayIndex].charactersLen); + iso2X509DataType_X509SubjectName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 11; + } else if (iso2X509DataType_X509Certificate_currArrayIndex < iso2X509DataType->X509Certificate.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2X509DataType->X509Certificate.array[iso2X509DataType_X509Certificate_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2X509DataType->X509Certificate.array[iso2X509DataType_X509Certificate_currArrayIndex].bytes, iso2X509DataType->X509Certificate.array[iso2X509DataType_X509Certificate_currArrayIndex].bytesLen); + iso2X509DataType_X509Certificate_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 11; + } else if (iso2X509DataType_X509CRL_currArrayIndex < iso2X509DataType->X509CRL.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2X509DataType->X509CRL.array[iso2X509DataType_X509CRL_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2X509DataType->X509CRL.array[iso2X509DataType_X509CRL_currArrayIndex].bytes, iso2X509DataType->X509CRL.array[iso2X509DataType_X509CRL_currArrayIndex].bytesLen); + iso2X509DataType_X509CRL_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 11; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 11; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 11: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */ + if (iso2X509DataType_X509IssuerSerial_currArrayIndex < iso2X509DataType->X509IssuerSerial.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2X509DataType->X509IssuerSerial.array [iso2X509DataType_X509IssuerSerial_currArrayIndex++]); + } + grammarID = 11; + } else if (iso2X509DataType_X509SKI_currArrayIndex < iso2X509DataType->X509SKI.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2X509DataType->X509SKI.array[iso2X509DataType_X509SKI_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2X509DataType->X509SKI.array[iso2X509DataType_X509SKI_currArrayIndex].bytes, iso2X509DataType->X509SKI.array[iso2X509DataType_X509SKI_currArrayIndex].bytesLen); + iso2X509DataType_X509SKI_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 11; + } else if (iso2X509DataType_X509SubjectName_currArrayIndex < iso2X509DataType->X509SubjectName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2X509DataType->X509SubjectName.array[iso2X509DataType_X509SubjectName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2X509DataType->X509SubjectName.array[iso2X509DataType_X509SubjectName_currArrayIndex].characters, iso2X509DataType->X509SubjectName.array[iso2X509DataType_X509SubjectName_currArrayIndex].charactersLen); + iso2X509DataType_X509SubjectName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 11; + } else if (iso2X509DataType_X509Certificate_currArrayIndex < iso2X509DataType->X509Certificate.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2X509DataType->X509Certificate.array[iso2X509DataType_X509Certificate_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2X509DataType->X509Certificate.array[iso2X509DataType_X509Certificate_currArrayIndex].bytes, iso2X509DataType->X509Certificate.array[iso2X509DataType_X509Certificate_currArrayIndex].bytesLen); + iso2X509DataType_X509Certificate_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 11; + } else if (iso2X509DataType_X509CRL_currArrayIndex < iso2X509DataType->X509CRL.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2X509DataType->X509CRL.array[iso2X509DataType_X509CRL_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2X509DataType->X509CRL.array[iso2X509DataType_X509CRL_currArrayIndex].bytes, iso2X509DataType->X509CRL.array[iso2X509DataType_X509CRL_currArrayIndex].bytesLen); + iso2X509DataType_X509CRL_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 11; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 11; + } else if ( iso2X509DataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 6); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */ +static int encode_iso2RSAKeyValueType(bitstream_t* stream, struct iso2RSAKeyValueType* iso2RSAKeyValueType) { + int grammarID = 12; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 12: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2RSAKeyValueType->Modulus.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2RSAKeyValueType->Modulus.bytes, iso2RSAKeyValueType->Modulus.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 13; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 13: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2RSAKeyValueType->Exponent.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2RSAKeyValueType->Exponent.bytes, iso2RSAKeyValueType->Exponent.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,DC_BidirectionalControlResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2016:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSEMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumDischargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumChargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumDischargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumVoltage{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMinimumVoltage{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2DC_BidirectionalControlResType(bitstream_t* stream, struct iso2DC_BidirectionalControlResType* iso2DC_BidirectionalControlResType) { + int grammarID = 14; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 14: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2DC_BidirectionalControlResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 15; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 15: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentCurrent)] */ + if ( iso2DC_BidirectionalControlResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2DC_BidirectionalControlResType->EVSEStatus ); + } + grammarID = 16; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEPresentCurrent ); + } + grammarID = 17; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 16: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEPresentCurrent ); + } + grammarID = 17; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 17: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEPresentVoltage ); + } + grammarID = 18; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 18: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPowerLimitAchieved)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DC_BidirectionalControlResType->EVSEPowerLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 19; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 19: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECurrentLimitAchieved)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DC_BidirectionalControlResType->EVSECurrentLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 20; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 20: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEVoltageLimitAchieved)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DC_BidirectionalControlResType->EVSEVoltageLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 21; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 21: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + if ( iso2DC_BidirectionalControlResType->EVSEMaximumChargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumChargePower ); + } + grammarID = 22; + } else if ( iso2DC_BidirectionalControlResType->EVSEMaximumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumDischargePower ); + } + grammarID = 23; + } else if ( iso2DC_BidirectionalControlResType->EVSEMaximumChargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumChargeCurrent ); + } + grammarID = 24; + } else if ( iso2DC_BidirectionalControlResType->EVSEMaximumDischargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumDischargeCurrent ); + } + grammarID = 25; + } else if ( iso2DC_BidirectionalControlResType->EVSEMaximumVoltage_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumVoltage ); + } + grammarID = 26; + } else if ( iso2DC_BidirectionalControlResType->EVSEMinimumVoltage_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMinimumVoltage ); + } + grammarID = 27; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 6); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DC_BidirectionalControlResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2DC_BidirectionalControlResType->EVSEID.characters, iso2DC_BidirectionalControlResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 28; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 22: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + if ( iso2DC_BidirectionalControlResType->EVSEMaximumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumDischargePower ); + } + grammarID = 23; + } else if ( iso2DC_BidirectionalControlResType->EVSEMaximumChargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumChargeCurrent ); + } + grammarID = 24; + } else if ( iso2DC_BidirectionalControlResType->EVSEMaximumDischargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumDischargeCurrent ); + } + grammarID = 25; + } else if ( iso2DC_BidirectionalControlResType->EVSEMaximumVoltage_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumVoltage ); + } + grammarID = 26; + } else if ( iso2DC_BidirectionalControlResType->EVSEMinimumVoltage_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMinimumVoltage ); + } + grammarID = 27; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DC_BidirectionalControlResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2DC_BidirectionalControlResType->EVSEID.characters, iso2DC_BidirectionalControlResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 28; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 23: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + if ( iso2DC_BidirectionalControlResType->EVSEMaximumChargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumChargeCurrent ); + } + grammarID = 24; + } else if ( iso2DC_BidirectionalControlResType->EVSEMaximumDischargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumDischargeCurrent ); + } + grammarID = 25; + } else if ( iso2DC_BidirectionalControlResType->EVSEMaximumVoltage_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumVoltage ); + } + grammarID = 26; + } else if ( iso2DC_BidirectionalControlResType->EVSEMinimumVoltage_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMinimumVoltage ); + } + grammarID = 27; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DC_BidirectionalControlResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2DC_BidirectionalControlResType->EVSEID.characters, iso2DC_BidirectionalControlResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 28; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 24: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + if ( iso2DC_BidirectionalControlResType->EVSEMaximumDischargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumDischargeCurrent ); + } + grammarID = 25; + } else if ( iso2DC_BidirectionalControlResType->EVSEMaximumVoltage_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumVoltage ); + } + grammarID = 26; + } else if ( iso2DC_BidirectionalControlResType->EVSEMinimumVoltage_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMinimumVoltage ); + } + grammarID = 27; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DC_BidirectionalControlResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2DC_BidirectionalControlResType->EVSEID.characters, iso2DC_BidirectionalControlResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 28; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 25: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + if ( iso2DC_BidirectionalControlResType->EVSEMaximumVoltage_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMaximumVoltage ); + } + grammarID = 26; + } else if ( iso2DC_BidirectionalControlResType->EVSEMinimumVoltage_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMinimumVoltage ); + } + grammarID = 27; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DC_BidirectionalControlResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2DC_BidirectionalControlResType->EVSEID.characters, iso2DC_BidirectionalControlResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 28; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 26: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + if ( iso2DC_BidirectionalControlResType->EVSEMinimumVoltage_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlResType->EVSEMinimumVoltage ); + } + grammarID = 27; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DC_BidirectionalControlResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2DC_BidirectionalControlResType->EVSEID.characters, iso2DC_BidirectionalControlResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 28; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 27: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DC_BidirectionalControlResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2DC_BidirectionalControlResType->EVSEID.characters, iso2DC_BidirectionalControlResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 28; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 28: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), END_ELEMENT] */ + if ( iso2DC_BidirectionalControlResType->SAScheduleTupleID_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2DC_BidirectionalControlResType->SAScheduleTupleID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 29; + } else if ( iso2DC_BidirectionalControlResType->MeterInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2MeterInfoType(stream, &iso2DC_BidirectionalControlResType->MeterInfo ); + } + grammarID = 30; + } else if ( iso2DC_BidirectionalControlResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DC_BidirectionalControlResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 29: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), END_ELEMENT] */ + if ( iso2DC_BidirectionalControlResType->MeterInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MeterInfoType(stream, &iso2DC_BidirectionalControlResType->MeterInfo ); + } + grammarID = 30; + } else if ( iso2DC_BidirectionalControlResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DC_BidirectionalControlResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 30: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), END_ELEMENT] */ + if ( iso2DC_BidirectionalControlResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DC_BidirectionalControlResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,CostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":costKind,"urn:iso:15118:2:2016:MsgDataTypes":amount)', derivedBy='RESTRICTION'. */ +static int encode_iso2CostType(bitstream_t* stream, struct iso2CostType* iso2CostType) { + int grammarID = 31; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 31: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}costKind)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2CostType->costKind); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 32; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 32: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}amount)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CostType->amount ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ChargingStatusResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1},"urn:iso:15118:2:2016:MsgBody":EVSETargetPower{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2ChargingStatusResType(bitstream_t* stream, struct iso2ChargingStatusResType* iso2ChargingStatusResType) { + int grammarID = 33; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 33: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2ChargingStatusResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 34; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 34: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + if ( iso2ChargingStatusResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2ChargingStatusResType->EVSEStatus ); + } + grammarID = 35; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ChargingStatusResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ChargingStatusResType->EVSEID.characters, iso2ChargingStatusResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 36; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 35: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ChargingStatusResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ChargingStatusResType->EVSEID.characters, iso2ChargingStatusResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 36; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 36: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetPower), END_ELEMENT] */ + if ( iso2ChargingStatusResType->SAScheduleTupleID_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2ChargingStatusResType->SAScheduleTupleID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 37; + } else if ( iso2ChargingStatusResType->MeterInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2MeterInfoType(stream, &iso2ChargingStatusResType->MeterInfo ); + } + grammarID = 38; + } else if ( iso2ChargingStatusResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2ChargingStatusResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 39; + } else if ( iso2ChargingStatusResType->EVSETargetPower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusResType->EVSETargetPower ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 37: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetPower), END_ELEMENT] */ + if ( iso2ChargingStatusResType->MeterInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2MeterInfoType(stream, &iso2ChargingStatusResType->MeterInfo ); + } + grammarID = 38; + } else if ( iso2ChargingStatusResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2ChargingStatusResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 39; + } else if ( iso2ChargingStatusResType->EVSETargetPower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusResType->EVSETargetPower ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 38: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetPower), END_ELEMENT] */ + if ( iso2ChargingStatusResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2ChargingStatusResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 39; + } else if ( iso2ChargingStatusResType->EVSETargetPower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusResType->EVSETargetPower ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 39: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetPower), END_ELEMENT] */ + if ( iso2ChargingStatusResType->EVSETargetPower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusResType->EVSETargetPower ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MeterID,"urn:iso:15118:2:2016:MsgDataTypes":MeterReadingCharged{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MeterReadingDischarged{0-1},"urn:iso:15118:2:2016:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso2MeterInfoType(bitstream_t* stream, struct iso2MeterInfoType* iso2MeterInfoType) { + int grammarID = 40; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 40: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2MeterInfoType->MeterID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2MeterInfoType->MeterID.characters, iso2MeterInfoType->MeterID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 41; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 41: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterReadingCharged), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterReadingDischarged), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter), END_ELEMENT] */ + if ( iso2MeterInfoType->MeterReadingCharged_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger64(stream, iso2MeterInfoType->MeterReadingCharged); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 42; + } else if ( iso2MeterInfoType->MeterReadingDischarged_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger64(stream, iso2MeterInfoType->MeterReadingDischarged); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 43; + } else if ( iso2MeterInfoType->SigMeterReading_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2MeterInfoType->SigMeterReading.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2MeterInfoType->SigMeterReading.bytes, iso2MeterInfoType->SigMeterReading.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 44; + } else if ( iso2MeterInfoType->MeterStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, iso2MeterInfoType->MeterStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 45; + } else if ( iso2MeterInfoType->TMeter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, iso2MeterInfoType->TMeter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 42: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterReadingDischarged), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter), END_ELEMENT] */ + if ( iso2MeterInfoType->MeterReadingDischarged_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger64(stream, iso2MeterInfoType->MeterReadingDischarged); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 43; + } else if ( iso2MeterInfoType->SigMeterReading_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2MeterInfoType->SigMeterReading.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2MeterInfoType->SigMeterReading.bytes, iso2MeterInfoType->SigMeterReading.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 44; + } else if ( iso2MeterInfoType->MeterStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, iso2MeterInfoType->MeterStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 45; + } else if ( iso2MeterInfoType->TMeter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, iso2MeterInfoType->TMeter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 43: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter), END_ELEMENT] */ + if ( iso2MeterInfoType->SigMeterReading_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2MeterInfoType->SigMeterReading.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2MeterInfoType->SigMeterReading.bytes, iso2MeterInfoType->SigMeterReading.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 44; + } else if ( iso2MeterInfoType->MeterStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, iso2MeterInfoType->MeterStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 45; + } else if ( iso2MeterInfoType->TMeter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, iso2MeterInfoType->TMeter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 44: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter), END_ELEMENT] */ + if ( iso2MeterInfoType->MeterStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, iso2MeterInfoType->MeterStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 45; + } else if ( iso2MeterInfoType->TMeter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, iso2MeterInfoType->TMeter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 45: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter), END_ELEMENT] */ + if ( iso2MeterInfoType->TMeter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, iso2MeterInfoType->TMeter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,AC_EVChargeParameterType', base type name='EVEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage))', derivedBy='EXTENSION'. */ +static int encode_iso2AC_EVChargeParameterType(bitstream_t* stream, struct iso2AC_EVChargeParameterType* iso2AC_EVChargeParameterType) { + int grammarID = 46; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 46: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, iso2AC_EVChargeParameterType->DepartureTime); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 47; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 47: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargePower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMaximumChargePower ); + } + grammarID = 48; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 48: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMaximumChargeCurrent ); + } + grammarID = 49; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 49: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMinimumChargeCurrent ); + } + grammarID = 50; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 50: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVTargetEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + if ( iso2AC_EVChargeParameterType->EVTargetEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVTargetEnergyRequest ); + } + grammarID = 51; + } else if ( iso2AC_EVChargeParameterType->EVMaximumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMaximumEnergyRequest ); + } + grammarID = 52; + } else if ( iso2AC_EVChargeParameterType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMinimumEnergyRequest ); + } + grammarID = 53; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMaximumVoltage ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 51: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + if ( iso2AC_EVChargeParameterType->EVMaximumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMaximumEnergyRequest ); + } + grammarID = 52; + } else if ( iso2AC_EVChargeParameterType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMinimumEnergyRequest ); + } + grammarID = 53; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMaximumVoltage ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 52: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + if ( iso2AC_EVChargeParameterType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMinimumEnergyRequest ); + } + grammarID = 53; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMaximumVoltage ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 53: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVChargeParameterType->EVMaximumVoltage ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,AC_EVSEBidirectionalParameterType', base type name='AC_EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalFrequency),("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalFrequency))', derivedBy='EXTENSION'. */ +static int encode_iso2AC_EVSEBidirectionalParameterType(bitstream_t* stream, struct iso2AC_EVSEBidirectionalParameterType* iso2AC_EVSEBidirectionalParameterType) { + int grammarID = 54; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 54: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVSEBidirectionalParameterType->EVSEMaximumChargeCurrent ); + } + grammarID = 55; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 55: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENominalVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVSEBidirectionalParameterType->EVSENominalVoltage ); + } + grammarID = 56; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 56: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENominalFrequency)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVSEBidirectionalParameterType->EVSENominalFrequency ); + } + grammarID = 57; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 57: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumDischargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVSEBidirectionalParameterType->EVSEMaximumDischargeCurrent ); + } + grammarID = 58; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 58: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENominalFrequency)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVSEBidirectionalParameterType->EVSENominalFrequency ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,VehicleCheckOutResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSECheckOutStatus))', derivedBy='EXTENSION'. */ +static int encode_iso2VehicleCheckOutResType(bitstream_t* stream, struct iso2VehicleCheckOutResType* iso2VehicleCheckOutResType) { + int grammarID = 59; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 59: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2VehicleCheckOutResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 60; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 60: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECheckOutStatus)] */ + if ( iso2VehicleCheckOutResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2VehicleCheckOutResType->EVSEStatus ); + } + grammarID = 61; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2VehicleCheckOutResType->EVSECheckOutStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 61: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECheckOutStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2VehicleCheckOutResType->EVSECheckOutStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MagneticVectorListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MagneticVector{1-255})', derivedBy='RESTRICTION'. */ +static int encode_iso2MagneticVectorListType(bitstream_t* stream, struct iso2MagneticVectorListType* iso2MagneticVectorListType) { + int grammarID = 62; + int done = 0; + + unsigned int iso2MagneticVectorListType_MagneticVector_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 62: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector)] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 63; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 63: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 64; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 64: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 65; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 65: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 66; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 66: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 67; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 67: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 68; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 68: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 69; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 69: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 70; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 70: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 71; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 71: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 72; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 72: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 73; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 73: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 74; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 74: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 75; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 75: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 76; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 76: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 77; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 77: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 78; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 78: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 79; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 79: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 80; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 80: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 81; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 81: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 82; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 82: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 83; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 83: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 84; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 84: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 85; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 85: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 86; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 86: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 87; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 87: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 88; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 88: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 89; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 89: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 90; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 90: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 91; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 91: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 92; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 92: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 93; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 93: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 94; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 94: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 95; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 95: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 96; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 96: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 97; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 97: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 98; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 98: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 99; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 99: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 100; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 100: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 101; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 101: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 102; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 102: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 103; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 103: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 104; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 104: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 105; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 105: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 106; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 106: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 107; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 107: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 108; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 108: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 109; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 109: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 110; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 110: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 111; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 111: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 112; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 112: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 113; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 113: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 114; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 114: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 115; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 115: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 116; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 116: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 117; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 117: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 118; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 118: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 119; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 119: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 120; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 120: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 121; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 121: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 122; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 122: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 123; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 123: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 124; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 124: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 125; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 125: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 126; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 126: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 127; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 127: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 128; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 128: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 129; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 129: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 130; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 130: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 131; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 131: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 132; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 132: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 133; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 133: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 134; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 134: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 135; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 135: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 136; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 136: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 137; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 137: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 138; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 138: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 139; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 139: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 140; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 140: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 141; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 141: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 142; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 142: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 143; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 143: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 144; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 144: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 145; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 145: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 146; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 146: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 147; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 147: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 148; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 148: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 149; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 149: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 150; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 150: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 151; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 151: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 152; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 152: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 153; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 153: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 154; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 154: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 155; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 155: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 156; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 156: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 157; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 157: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 158; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 158: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 159; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 159: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 160; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 160: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 161; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 161: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 162; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 162: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 163; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 163: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 164; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 164: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 165; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 165: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 166; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 166: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 167; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 167: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 168; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 168: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 169; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 169: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 170; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 170: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 171; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 171: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 172; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 172: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 173; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 173: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 174; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 174: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 175; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 175: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 176; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 176: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 177; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 177: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 178; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 178: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 179; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 179: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 180; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 180: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 181; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 181: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 182; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 182: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 183; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 183: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 184; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 184: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 185; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 185: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 186; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 186: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 187; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 187: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 188; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 188: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 189; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 189: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 190; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 190: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 191; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 191: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 192; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 192: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 193; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 193: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 194; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 194: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 195; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 195: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 196; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 196: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 197; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 197: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 198; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 198: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 199; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 199: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 200; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 200: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 201; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 201: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 202; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 202: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 203; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 203: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 204; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 204: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 205; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 205: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 206; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 206: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 207; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 207: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 208; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 208: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 209; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 209: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 210; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 210: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 211; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 211: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 212; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 212: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 213; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 213: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 214; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 214: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 215; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 215: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 216; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 216: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 217; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 217: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 218; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 218: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 219; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 219: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 220; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 220: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 221; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 221: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 222; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 222: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 223; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 223: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 224; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 224: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 225; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 225: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 226; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 226: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 227; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 227: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 228; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 228: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 229; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 229: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 230; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 230: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 231; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 231: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 232; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 232: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 233; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 233: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 234; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 234: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 235; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 235: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 236; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 236: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 237; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 237: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 238; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 238: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 239; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 239: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 240; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 240: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 241; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 241: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 242; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 242: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 243; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 243: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 244; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 244: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 245; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 245: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 246; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 246: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 247; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 247: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 248; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 248: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 249; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 249: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 250; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 250: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 251; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 251: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 252; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 252: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 253; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 253: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 254; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 254: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 255; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 255: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 256; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 256: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 257; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 257: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 258; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 258: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 259; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 259: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 260; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 260: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 261; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 261: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 262; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 262: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 263; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 263: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 264; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 264: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 265; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 265: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 266; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 266: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 267; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 267: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 268; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 268: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 269; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 269: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 270; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 270: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 271; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 271: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 272; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 272: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 273; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 273: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 274; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 274: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 275; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 275: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 276; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 276: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 277; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 277: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 278; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 278: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 279; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 279: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 280; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 280: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 281; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 281: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 282; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 282: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 283; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 283: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 284; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 284: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 285; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 285: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 286; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 286: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 287; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 287: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 288; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 288: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 289; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 289: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 290; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 290: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 291; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 291: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 292; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 292: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 293; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 293: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 294; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 294: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 295; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 295: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 296; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 296: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 297; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 297: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 298; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 298: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 299; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 299: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 300; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 300: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 301; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 301: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 302; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 302: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 303; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 303: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 304; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 304: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 305; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 305: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 306; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 306: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 307; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 307: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 308; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 308: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 309; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 309: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 310; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 310: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 311; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 311: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 312; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 312: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 313; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 313: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 314; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 314: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 315; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 315: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 316; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 316: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), END_ELEMENT] */ + if (iso2MagneticVectorListType_MagneticVector_currArrayIndex < iso2MagneticVectorListType->MagneticVector.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &iso2MagneticVectorListType->MagneticVector.array [iso2MagneticVectorListType_MagneticVector_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CableCheckResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing))', derivedBy='EXTENSION'. */ +static int encode_iso2CableCheckResType(bitstream_t* stream, struct iso2CableCheckResType* iso2CableCheckResType) { + int grammarID = 5; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 5: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2CableCheckResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 6: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( iso2CableCheckResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2CableCheckResType->EVSEStatus ); + } + grammarID = 7; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2CableCheckResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 7: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2CableCheckResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ServiceDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":SupportedServiceIDs{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso2ServiceDiscoveryReqType(bitstream_t* stream, struct iso2ServiceDiscoveryReqType* iso2ServiceDiscoveryReqType) { + int grammarID = 317; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 317: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SupportedServiceIDs), END_ELEMENT] */ + if ( iso2ServiceDiscoveryReqType->SupportedServiceIDs_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ServiceIDListType(stream, &iso2ServiceDiscoveryReqType->SupportedServiceIDs ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ServiceID,"urn:iso:15118:2:2016:MsgDataTypes":FreeService)', derivedBy='RESTRICTION'. */ +static int encode_iso2ServiceType(bitstream_t* stream, struct iso2ServiceType* iso2ServiceType) { + int grammarID = 318; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 318: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2ServiceType->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 319; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 319: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FreeService)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2ServiceType->FreeService); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ServiceParameterListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ParameterSet{1-255})', derivedBy='RESTRICTION'. */ +static int encode_iso2ServiceParameterListType(bitstream_t* stream, struct iso2ServiceParameterListType* iso2ServiceParameterListType) { + int grammarID = 320; + int done = 0; + + unsigned int iso2ServiceParameterListType_ParameterSet_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 320: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet)] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 321; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 321: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 322; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 322: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 323; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 323: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 324; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 324: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 325; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 325: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 326; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 326: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 327; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 327: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 328; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 328: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 329; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 329: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 330; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 330: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 331; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 331: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 332; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 332: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 333; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 333: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 334; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 334: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 335; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 335: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 336; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 336: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 337; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 337: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 338; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 338: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 339; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 339: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 340; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 340: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 341; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 341: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 342; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 342: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 343; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 343: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 344; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 344: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 345; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 345: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 346; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 346: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 347; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 347: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 348; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 348: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 349; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 349: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 350; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 350: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 351; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 351: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 352; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 352: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 353; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 353: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 354; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 354: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 355; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 355: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 356; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 356: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 357; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 357: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 358; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 358: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 359; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 359: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 360; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 360: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 361; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 361: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 362; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 362: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 363; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 363: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 364; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 364: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 365; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 365: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 366; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 366: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 367; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 367: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 368; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 368: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 369; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 369: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 370; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 370: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 371; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 371: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 372; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 372: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 373; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 373: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 374; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 374: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 375; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 375: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 376; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 376: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 377; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 377: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 378; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 378: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 379; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 379: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 380; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 380: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 381; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 381: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 382; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 382: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 383; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 383: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 384; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 384: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 385; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 385: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 386; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 386: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 387; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 387: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 388; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 388: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 389; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 389: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 390; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 390: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 391; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 391: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 392; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 392: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 393; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 393: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 394; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 394: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 395; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 395: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 396; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 396: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 397; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 397: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 398; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 398: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 399; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 399: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 400; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 400: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 401; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 401: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 402; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 402: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 403; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 403: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 404; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 404: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 405; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 405: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 406; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 406: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 407; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 407: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 408; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 408: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 409; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 409: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 410; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 410: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 411; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 411: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 412; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 412: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 413; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 413: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 414; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 414: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 415; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 415: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 416; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 416: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 417; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 417: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 418; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 418: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 419; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 419: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 420; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 420: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 421; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 421: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 422; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 422: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 423; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 423: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 424; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 424: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 425; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 425: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 426; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 426: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 427; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 427: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 428; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 428: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 429; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 429: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 430; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 430: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 431; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 431: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 432; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 432: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 433; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 433: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 434; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 434: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 435; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 435: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 436; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 436: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 437; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 437: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 438; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 438: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 439; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 439: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 440; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 440: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 441; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 441: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 442; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 442: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 443; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 443: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 444; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 444: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 445; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 445: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 446; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 446: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 447; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 447: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 448; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 448: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 449; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 449: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 450; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 450: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 451; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 451: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 452; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 452: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 453; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 453: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 454; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 454: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 455; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 455: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 456; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 456: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 457; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 457: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 458; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 458: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 459; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 459: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 460; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 460: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 461; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 461: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 462; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 462: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 463; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 463: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 464; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 464: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 465; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 465: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 466; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 466: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 467; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 467: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 468; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 468: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 469; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 469: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 470; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 470: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 471; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 471: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 472; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 472: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 473; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 473: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 474; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 474: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 475; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 475: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 476; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 476: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 477; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 477: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 478; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 478: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 479; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 479: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 480; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 480: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 481; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 481: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 482; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 482: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 483; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 483: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 484; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 484: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 485; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 485: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 486; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 486: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 487; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 487: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 488; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 488: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 489; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 489: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 490; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 490: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 491; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 491: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 492; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 492: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 493; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 493: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 494; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 494: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 495; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 495: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 496; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 496: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 497; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 497: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 498; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 498: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 499; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 499: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 500; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 500: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 501; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 501: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 502; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 502: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 503; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 503: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 504; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 504: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 505; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 505: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 506; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 506: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 507; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 507: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 508; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 508: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 509; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 509: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 510; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 510: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 511; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 511: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 512; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 512: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 513; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 513: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 514; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 514: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 515; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 515: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 516; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 516: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 517; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 517: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 518; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 518: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 519; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 519: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 520; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 520: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 521; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 521: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 522; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 522: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 523; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 523: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 524; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 524: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 525; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 525: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 526; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 526: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 527; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 527: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 528; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 528: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 529; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 529: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 530; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 530: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 531; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 531: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 532; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 532: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 533; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 533: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 534; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 534: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 535; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 535: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 536; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 536: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 537; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 537: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 538; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 538: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 539; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 539: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 540; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 540: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 541; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 541: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 542; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 542: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 543; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 543: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 544; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 544: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 545; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 545: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 546; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 546: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 547; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 547: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 548; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 548: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 549; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 549: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 550; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 550: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 551; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 551: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 552; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 552: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 553; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 553: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 554; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 554: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 555; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 555: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 556; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 556: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 557; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 557: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 558; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 558: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 559; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 559: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 560; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 560: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 561; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 561: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 562; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 562: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 563; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 563: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 564; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 564: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 565; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 565: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 566; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 566: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 567; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 567: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 568; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 568: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 569; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 569: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 570; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 570: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 571; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 571: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 572; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 572: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 573; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 573: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 574; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 574: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), END_ELEMENT] */ + if (iso2ServiceParameterListType_ParameterSet_currArrayIndex < iso2ServiceParameterListType->ParameterSet.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2ServiceParameterListType->ParameterSet.array [iso2ServiceParameterListType_ParameterSet_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PMaxScheduleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":PMaxScheduleEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso2PMaxScheduleType(bitstream_t* stream, struct iso2PMaxScheduleType* iso2PMaxScheduleType) { + int grammarID = 575; + int done = 0; + + unsigned int iso2PMaxScheduleType_PMaxScheduleEntry_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 575: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxScheduleEntry)] */ + if (iso2PMaxScheduleType_PMaxScheduleEntry_currArrayIndex < iso2PMaxScheduleType->PMaxScheduleEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PMaxScheduleEntryType(stream, &iso2PMaxScheduleType->PMaxScheduleEntry.array [iso2PMaxScheduleType_PMaxScheduleEntry_currArrayIndex++]); + } + grammarID = 576; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 576: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */ + if (iso2PMaxScheduleType_PMaxScheduleEntry_currArrayIndex < iso2PMaxScheduleType->PMaxScheduleEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PMaxScheduleEntryType(stream, &iso2PMaxScheduleType->PMaxScheduleEntry.array [iso2PMaxScheduleType_PMaxScheduleEntry_currArrayIndex++]); + } + grammarID = 576; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertiesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignatureProperty{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso2SignaturePropertiesType(bitstream_t* stream, struct iso2SignaturePropertiesType* iso2SignaturePropertiesType) { + int grammarID = 577; + int done = 0; + + unsigned int iso2SignaturePropertiesType_SignatureProperty_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 577: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ + if ( iso2SignaturePropertiesType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SignaturePropertiesType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2SignaturePropertiesType->Id.characters, iso2SignaturePropertiesType->Id.charactersLen); + } + } + grammarID = 578; + } else if (iso2SignaturePropertiesType_SignatureProperty_currArrayIndex < iso2SignaturePropertiesType->SignatureProperty.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2SignaturePropertyType(stream, &iso2SignaturePropertiesType->SignatureProperty.array [iso2SignaturePropertiesType_SignatureProperty_currArrayIndex++]); + } + grammarID = 579; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 578: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ + if (iso2SignaturePropertiesType_SignatureProperty_currArrayIndex < iso2SignaturePropertiesType->SignatureProperty.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2SignaturePropertyType(stream, &iso2SignaturePropertiesType->SignatureProperty.array [iso2SignaturePropertiesType_SignatureProperty_currArrayIndex++]); + } + grammarID = 579; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 579: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */ + if (iso2SignaturePropertiesType_SignatureProperty_currArrayIndex < iso2SignaturePropertiesType->SignatureProperty.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SignaturePropertyType(stream, &iso2SignaturePropertiesType->SignatureProperty.array [iso2SignaturePropertiesType_SignatureProperty_currArrayIndex++]); + } + grammarID = 579; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":RelativeTimeInterval),("urn:iso:15118:2:2016:MsgDataTypes":PMax{1-3}))', derivedBy='EXTENSION'. */ +static int encode_iso2PMaxScheduleEntryType(bitstream_t* stream, struct iso2PMaxScheduleEntryType* iso2PMaxScheduleEntryType) { + int grammarID = 580; + int done = 0; + + unsigned int iso2PMaxScheduleEntryType_PMax_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 580: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RelativeTimeInterval)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2RelativeTimeIntervalType(stream, &iso2PMaxScheduleEntryType->RelativeTimeInterval ); + } + grammarID = 581; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 581: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMax)] */ + if (iso2PMaxScheduleEntryType_PMax_currArrayIndex < iso2PMaxScheduleEntryType->PMax.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2PMaxScheduleEntryType->PMax.array [iso2PMaxScheduleEntryType_PMax_currArrayIndex++]); + } + grammarID = 582; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 582: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMax), END_ELEMENT] */ + if (iso2PMaxScheduleEntryType_PMax_currArrayIndex < iso2PMaxScheduleEntryType->PMax.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2PMaxScheduleEntryType->PMax.array [iso2PMaxScheduleEntryType_PMax_currArrayIndex++]); + } + grammarID = 583; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 583: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMax), END_ELEMENT] */ + if (iso2PMaxScheduleEntryType_PMax_currArrayIndex < iso2PMaxScheduleEntryType->PMax.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2PMaxScheduleEntryType->PMax.array [iso2PMaxScheduleEntryType_PMax_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso2SignatureType(bitstream_t* stream, struct iso2SignatureType* iso2SignatureType) { + int grammarID = 584; + int done = 0; + + unsigned int iso2SignatureType_Object_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 584: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ + if ( iso2SignatureType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SignatureType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2SignatureType->Id.characters, iso2SignatureType->Id.charactersLen); + } + } + grammarID = 585; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2SignedInfoType(stream, &iso2SignatureType->SignedInfo ); + } + grammarID = 586; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 585: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2SignedInfoType(stream, &iso2SignatureType->SignedInfo ); + } + grammarID = 586; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 586: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2SignatureValueType(stream, &iso2SignatureType->SignatureValue ); + } + grammarID = 587; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 587: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ + if ( iso2SignatureType->KeyInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2KeyInfoType(stream, &iso2SignatureType->KeyInfo ); + } + grammarID = 588; + } else if (iso2SignatureType_Object_currArrayIndex < iso2SignatureType->Object.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2ObjectType(stream, &iso2SignatureType->Object.array [iso2SignatureType_Object_currArrayIndex++]); + } + grammarID = 588; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 588: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ + if (iso2SignatureType_Object_currArrayIndex < iso2SignatureType->Object.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ObjectType(stream, &iso2SignatureType->Object.array [iso2SignatureType_Object_currArrayIndex++]); + } + grammarID = 588; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,VehicleCheckInReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVCheckInStatus,"urn:iso:15118:2:2016:MsgBody":ParkingMethod{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso2VehicleCheckInReqType(bitstream_t* stream, struct iso2VehicleCheckInReqType* iso2VehicleCheckInReqType) { + int grammarID = 589; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 589: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCheckInStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2VehicleCheckInReqType->EVCheckInStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 590; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 590: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ParkingMethod), END_ELEMENT] */ + if ( iso2VehicleCheckInReqType->ParkingMethod_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2VehicleCheckInReqType->ParkingMethod); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ConnectChargingDeviceResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":EVSEElectricalChargingDeviceStatus,"urn:iso:15118:2:2016:MsgBody":EVSEMechanicalChargingDeviceStatus))', derivedBy='EXTENSION'. */ +static int encode_iso2ConnectChargingDeviceResType(bitstream_t* stream, struct iso2ConnectChargingDeviceResType* iso2ConnectChargingDeviceResType) { + int grammarID = 591; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 591: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2ConnectChargingDeviceResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 592; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 592: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( iso2ConnectChargingDeviceResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2ConnectChargingDeviceResType->EVSEStatus ); + } + grammarID = 593; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2ConnectChargingDeviceResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 594; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 593: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2ConnectChargingDeviceResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 594; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 594: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEElectricalChargingDeviceStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso2ConnectChargingDeviceResType->EVSEElectricalChargingDeviceStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 595; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 595: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMechanicalChargingDeviceStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2ConnectChargingDeviceResType->EVSEMechanicalChargingDeviceStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,WeldingDetectionResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage))', derivedBy='EXTENSION'. */ +static int encode_iso2WeldingDetectionResType(bitstream_t* stream, struct iso2WeldingDetectionResType* iso2WeldingDetectionResType) { + int grammarID = 596; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 596: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2WeldingDetectionResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 597; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 597: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentVoltage)] */ + if ( iso2WeldingDetectionResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2WeldingDetectionResType->EVSEStatus ); + } + grammarID = 598; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2WeldingDetectionResType->EVSEPresentVoltage ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 598: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2WeldingDetectionResType->EVSEPresentVoltage ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,SessionStopResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso2SessionStopResType(bitstream_t* stream, struct iso2SessionStopResType* iso2SessionStopResType) { + int grammarID = 599; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 599: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2SessionStopResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 600; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 600: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), END_ELEMENT] */ + if ( iso2SessionStopResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2SessionStopResType->EVSEStatus ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,VehicleCheckInResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":VehicleSpace,"urn:iso:15118:2:2016:MsgBody":TargetOffset{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2VehicleCheckInResType(bitstream_t* stream, struct iso2VehicleCheckInResType* iso2VehicleCheckInResType) { + int grammarID = 601; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 601: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2VehicleCheckInResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 602; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 602: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleSpace)] */ + if ( iso2VehicleCheckInResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2VehicleCheckInResType->EVSEStatus ); + } + grammarID = 603; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2VehicleCheckInResType->VehicleSpace); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 604; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 603: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleSpace)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2VehicleCheckInResType->VehicleSpace); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 604; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 604: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}TargetOffset), END_ELEMENT] */ + if ( iso2VehicleCheckInResType->TargetOffset_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2TargetPositionType(stream, &iso2VehicleCheckInResType->TargetOffset ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Service{1-8})', derivedBy='RESTRICTION'. */ +static int encode_iso2ServiceListType(bitstream_t* stream, struct iso2ServiceListType* iso2ServiceListType) { + int grammarID = 605; + int done = 0; + + unsigned int iso2ServiceListType_Service_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 605: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service)] */ + if (iso2ServiceListType_Service_currArrayIndex < iso2ServiceListType->Service.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2ServiceType(stream, &iso2ServiceListType->Service.array [iso2ServiceListType_Service_currArrayIndex++]); + } + grammarID = 606; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 606: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service), END_ELEMENT] */ + if (iso2ServiceListType_Service_currArrayIndex < iso2ServiceListType->Service.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ServiceType(stream, &iso2ServiceListType->Service.array [iso2ServiceListType_Service_currArrayIndex++]); + } + grammarID = 607; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 607: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service), END_ELEMENT] */ + if (iso2ServiceListType_Service_currArrayIndex < iso2ServiceListType->Service.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ServiceType(stream, &iso2ServiceListType->Service.array [iso2ServiceListType_Service_currArrayIndex++]); + } + grammarID = 608; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 608: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service), END_ELEMENT] */ + if (iso2ServiceListType_Service_currArrayIndex < iso2ServiceListType->Service.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ServiceType(stream, &iso2ServiceListType->Service.array [iso2ServiceListType_Service_currArrayIndex++]); + } + grammarID = 609; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 609: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service), END_ELEMENT] */ + if (iso2ServiceListType_Service_currArrayIndex < iso2ServiceListType->Service.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ServiceType(stream, &iso2ServiceListType->Service.array [iso2ServiceListType_Service_currArrayIndex++]); + } + grammarID = 610; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 610: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service), END_ELEMENT] */ + if (iso2ServiceListType_Service_currArrayIndex < iso2ServiceListType->Service.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ServiceType(stream, &iso2ServiceListType->Service.array [iso2ServiceListType_Service_currArrayIndex++]); + } + grammarID = 611; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 611: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service), END_ELEMENT] */ + if (iso2ServiceListType_Service_currArrayIndex < iso2ServiceListType->Service.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ServiceType(stream, &iso2ServiceListType->Service.array [iso2ServiceListType_Service_currArrayIndex++]); + } + grammarID = 612; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 612: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service), END_ELEMENT] */ + if (iso2ServiceListType_Service_currArrayIndex < iso2ServiceListType->Service.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ServiceType(stream, &iso2ServiceListType->Service.array [iso2ServiceListType_Service_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CertificateUpdateResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2016:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2016:MsgBody":DHpublickey,"urn:iso:15118:2:2016:MsgBody":eMAID,"urn:iso:15118:2:2016:MsgBody":RetryCounter{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2CertificateUpdateResType(bitstream_t* stream, struct iso2CertificateUpdateResType* iso2CertificateUpdateResType) { + int grammarID = 613; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 613: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2CertificateUpdateResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 614; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 614: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAProvisioningCertificateChain)] */ + if ( iso2CertificateUpdateResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2CertificateUpdateResType->EVSEStatus ); + } + grammarID = 615; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2CertificateChainType(stream, &iso2CertificateUpdateResType->SAProvisioningCertificateChain ); + } + grammarID = 616; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 615: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAProvisioningCertificateChain)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2CertificateChainType(stream, &iso2CertificateUpdateResType->SAProvisioningCertificateChain ); + } + grammarID = 616; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 616: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureCertChain)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2CertificateChainType(stream, &iso2CertificateUpdateResType->ContractSignatureCertChain ); + } + grammarID = 617; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 617: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureEncryptedPrivateKey)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2ContractSignatureEncryptedPrivateKeyType(stream, &iso2CertificateUpdateResType->ContractSignatureEncryptedPrivateKey ); + } + grammarID = 618; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 618: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DHpublickey)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2DiffieHellmanPublickeyType(stream, &iso2CertificateUpdateResType->DHpublickey ); + } + grammarID = 619; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 619: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}eMAID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2EMAIDType(stream, &iso2CertificateUpdateResType->eMAID ); + } + grammarID = 620; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 620: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}RetryCounter), END_ELEMENT] */ + if ( iso2CertificateUpdateResType->RetryCounter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, iso2CertificateUpdateResType->RetryCounter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,FinePositioningSetupResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgDataTypes":EVSEFinePositioningSetupParameters{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2FinePositioningSetupResType(bitstream_t* stream, struct iso2FinePositioningSetupResType* iso2FinePositioningSetupResType) { + int grammarID = 621; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 621: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2FinePositioningSetupResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 622; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 622: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningSetupParameters), END_ELEMENT] */ + if ( iso2FinePositioningSetupResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2FinePositioningSetupResType->EVSEStatus ); + } + grammarID = 623; + } else if ( iso2FinePositioningSetupResType->EVSEFinePositioningSetupParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2EVSEFinePositioningSetupParametersType(stream, &iso2FinePositioningSetupResType->EVSEFinePositioningSetupParameters ); + } + grammarID = 3; + } else if ( iso2FinePositioningSetupResType->LFA_EVSEFinePositioningSetupParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2LFA_EVSEFinePositioningSetupParametersType(stream, &iso2FinePositioningSetupResType->LFA_EVSEFinePositioningSetupParameters ); + } + grammarID = 3; + } else if ( iso2FinePositioningSetupResType->MV_EVSEFinePositioningSetupParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2MV_EVSEFinePositioningSetupParametersType(stream, &iso2FinePositioningSetupResType->MV_EVSEFinePositioningSetupParameters ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 623: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningSetupParameters), END_ELEMENT] */ + if ( iso2FinePositioningSetupResType->EVSEFinePositioningSetupParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2EVSEFinePositioningSetupParametersType(stream, &iso2FinePositioningSetupResType->EVSEFinePositioningSetupParameters ); + } + grammarID = 3; + } else if ( iso2FinePositioningSetupResType->LFA_EVSEFinePositioningSetupParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2LFA_EVSEFinePositioningSetupParametersType(stream, &iso2FinePositioningSetupResType->LFA_EVSEFinePositioningSetupParameters ); + } + grammarID = 3; + } else if ( iso2FinePositioningSetupResType->MV_EVSEFinePositioningSetupParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2MV_EVSEFinePositioningSetupParametersType(stream, &iso2FinePositioningSetupResType->MV_EVSEFinePositioningSetupParameters ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,AC_EVBidirectionalParameterType', base type name='AC_EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage)),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumDischargeCurrent))', derivedBy='EXTENSION'. */ +static int encode_iso2AC_EVBidirectionalParameterType(bitstream_t* stream, struct iso2AC_EVBidirectionalParameterType* iso2AC_EVBidirectionalParameterType) { + int grammarID = 624; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 624: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, iso2AC_EVBidirectionalParameterType->DepartureTime); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 625; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 625: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargePower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumChargePower ); + } + grammarID = 626; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 626: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumChargeCurrent ); + } + grammarID = 627; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 627: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMinimumChargeCurrent ); + } + grammarID = 628; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 628: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVTargetEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + if ( iso2AC_EVBidirectionalParameterType->EVTargetEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVTargetEnergyRequest ); + } + grammarID = 629; + } else if ( iso2AC_EVBidirectionalParameterType->EVMaximumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumEnergyRequest ); + } + grammarID = 630; + } else if ( iso2AC_EVBidirectionalParameterType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMinimumEnergyRequest ); + } + grammarID = 631; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumVoltage ); + } + grammarID = 632; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 629: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + if ( iso2AC_EVBidirectionalParameterType->EVMaximumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumEnergyRequest ); + } + grammarID = 630; + } else if ( iso2AC_EVBidirectionalParameterType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMinimumEnergyRequest ); + } + grammarID = 631; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumVoltage ); + } + grammarID = 632; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 630: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + if ( iso2AC_EVBidirectionalParameterType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMinimumEnergyRequest ); + } + grammarID = 631; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumVoltage ); + } + grammarID = 632; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 631: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumVoltage ); + } + grammarID = 632; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 632: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumDischargePower ); + } + grammarID = 633; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 633: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMaximumDischargeCurrent ); + } + grammarID = 634; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 634: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVBidirectionalParameterType->EVMinimumDischargeCurrent ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,DC_BidirectionalControlReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2016:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2016:MsgBody":EVMaximumVoltage,"urn:iso:15118:2:2016:MsgBody":EVMinimumVoltage,"urn:iso:15118:2:2016:MsgBody":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgBody":EVMaximumDischargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumDischargePower{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2DC_BidirectionalControlReqType(bitstream_t* stream, struct iso2DC_BidirectionalControlReqType* iso2DC_BidirectionalControlReqType) { + int grammarID = 635; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 635: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetEnergyRequest)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVTargetEnergyRequest ); + } + grammarID = 636; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 636: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent)] */ + if ( iso2DC_BidirectionalControlReqType->EVMaximumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMaximumEnergyRequest ); + } + grammarID = 637; + } else if ( iso2DC_BidirectionalControlReqType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMinimumEnergyRequest ); + } + grammarID = 638; + } else if ( iso2DC_BidirectionalControlReqType->DisplayParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &iso2DC_BidirectionalControlReqType->DisplayParameters ); + } + grammarID = 639; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVTargetCurrent ); + } + grammarID = 640; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 637: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent)] */ + if ( iso2DC_BidirectionalControlReqType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMinimumEnergyRequest ); + } + grammarID = 638; + } else if ( iso2DC_BidirectionalControlReqType->DisplayParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &iso2DC_BidirectionalControlReqType->DisplayParameters ); + } + grammarID = 639; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVTargetCurrent ); + } + grammarID = 640; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 638: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent)] */ + if ( iso2DC_BidirectionalControlReqType->DisplayParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &iso2DC_BidirectionalControlReqType->DisplayParameters ); + } + grammarID = 639; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVTargetCurrent ); + } + grammarID = 640; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 639: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVTargetCurrent ); + } + grammarID = 640; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 640: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVTargetVoltage ); + } + grammarID = 641; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 641: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMaximumVoltage ); + } + grammarID = 642; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 642: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMinimumVoltage ); + } + grammarID = 643; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 643: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMaximumChargeCurrent ); + } + grammarID = 644; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 644: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargePower), END_ELEMENT] */ + if ( iso2DC_BidirectionalControlReqType->EVMaximumDischargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMaximumDischargeCurrent ); + } + grammarID = 645; + } else if ( iso2DC_BidirectionalControlReqType->EVMaximumChargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMaximumChargePower ); + } + grammarID = 646; + } else if ( iso2DC_BidirectionalControlReqType->EVMaximumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMaximumDischargePower ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 645: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargePower), END_ELEMENT] */ + if ( iso2DC_BidirectionalControlReqType->EVMaximumChargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMaximumChargePower ); + } + grammarID = 646; + } else if ( iso2DC_BidirectionalControlReqType->EVMaximumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMaximumDischargePower ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 646: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargePower), END_ELEMENT] */ + if ( iso2DC_BidirectionalControlReqType->EVMaximumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_BidirectionalControlReqType->EVMaximumDischargePower ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CertificateUpdateReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2016:MsgBody":eMAID,"urn:iso:15118:2:2016:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */ +static int encode_iso2CertificateUpdateReqType(bitstream_t* stream, struct iso2CertificateUpdateReqType* iso2CertificateUpdateReqType) { + int grammarID = 647; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 647: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgBody}Id)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2CertificateUpdateReqType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2CertificateUpdateReqType->Id.characters, iso2CertificateUpdateReqType->Id.charactersLen); + } + } + grammarID = 648; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 648: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureCertChain)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2CertificateChainType(stream, &iso2CertificateUpdateReqType->ContractSignatureCertChain ); + } + grammarID = 649; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 649: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}eMAID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2CertificateUpdateReqType->eMAID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2CertificateUpdateReqType->eMAID.characters, iso2CertificateUpdateReqType->eMAID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 650; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 650: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ListOfRootCertificateIDs)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2ListOfRootCertificateIDsType(stream, &iso2CertificateUpdateReqType->ListOfRootCertificateIDs ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ConsumptionCostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":startValue,"urn:iso:15118:2:2016:MsgDataTypes":Cost{1-3})', derivedBy='RESTRICTION'. */ +static int encode_iso2ConsumptionCostType(bitstream_t* stream, struct iso2ConsumptionCostType* iso2ConsumptionCostType) { + int grammarID = 651; + int done = 0; + + unsigned int iso2ConsumptionCostType_Cost_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 651: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}startValue)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ConsumptionCostType->startValue ); + } + grammarID = 652; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 652: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Cost)] */ + if (iso2ConsumptionCostType_Cost_currArrayIndex < iso2ConsumptionCostType->Cost.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2CostType(stream, &iso2ConsumptionCostType->Cost.array [iso2ConsumptionCostType_Cost_currArrayIndex++]); + } + grammarID = 653; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 653: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Cost), END_ELEMENT] */ + if (iso2ConsumptionCostType_Cost_currArrayIndex < iso2ConsumptionCostType->Cost.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2CostType(stream, &iso2ConsumptionCostType->Cost.array [iso2ConsumptionCostType_Cost_currArrayIndex++]); + } + grammarID = 654; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 654: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Cost), END_ELEMENT] */ + if (iso2ConsumptionCostType_Cost_currArrayIndex < iso2ConsumptionCostType->Cost.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2CostType(stream, &iso2ConsumptionCostType->Cost.array [iso2ConsumptionCostType_Cost_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SAScheduleListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SAScheduleTuple{1-3})', derivedBy='RESTRICTION'. */ +static int encode_iso2SAScheduleListType(bitstream_t* stream, struct iso2SAScheduleListType* iso2SAScheduleListType) { + int grammarID = 655; + int done = 0; + + unsigned int iso2SAScheduleListType_SAScheduleTuple_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 655: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleTuple)] */ + if (iso2SAScheduleListType_SAScheduleTuple_currArrayIndex < iso2SAScheduleListType->SAScheduleTuple.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2SAScheduleTupleType(stream, &iso2SAScheduleListType->SAScheduleTuple.array [iso2SAScheduleListType_SAScheduleTuple_currArrayIndex++]); + } + grammarID = 656; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 656: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */ + if (iso2SAScheduleListType_SAScheduleTuple_currArrayIndex < iso2SAScheduleListType->SAScheduleTuple.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SAScheduleTupleType(stream, &iso2SAScheduleListType->SAScheduleTuple.array [iso2SAScheduleListType_SAScheduleTuple_currArrayIndex++]); + } + grammarID = 657; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 657: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */ + if (iso2SAScheduleListType_SAScheduleTuple_currArrayIndex < iso2SAScheduleListType->SAScheduleTuple.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SAScheduleTupleType(stream, &iso2SAScheduleListType->SAScheduleTuple.array [iso2SAScheduleListType_SAScheduleTuple_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MagneticVectorSetupType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":GAID,"urn:iso:15118:2:2016:MsgDataTypes":FrequencyChannel)', derivedBy='RESTRICTION'. */ +static int encode_iso2MagneticVectorSetupType(bitstream_t* stream, struct iso2MagneticVectorSetupType* iso2MagneticVectorSetupType) { + int grammarID = 658; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 658: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}GAID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2MagneticVectorSetupType->GAID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2MagneticVectorSetupType->GAID.characters, iso2MagneticVectorSetupType->GAID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 659; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 659: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FrequencyChannel)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, iso2MagneticVectorSetupType->FrequencyChannel); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,LFA_EVSEFinePositioningSetupParametersType', base type name='EVSEFinePositioningSetupParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NumberOfSensors,"urn:iso:15118:2:2016:MsgDataTypes":SensorList,"urn:iso:15118:2:2016:MsgDataTypes":SensorOrder,"urn:iso:15118:2:2016:MsgDataTypes":SignalPulseDuration,"urn:iso:15118:2:2016:MsgDataTypes":SignalSeparationTime,"urn:iso:15118:2:2016:MsgDataTypes":PackageSeparationTime,"urn:iso:15118:2:2016:MsgDataTypes":AlignmentOffset,"urn:iso:15118:2:2016:MsgDataTypes":SignalFrequency)', derivedBy='EXTENSION'. */ +static int encode_iso2LFA_EVSEFinePositioningSetupParametersType(bitstream_t* stream, struct iso2LFA_EVSEFinePositioningSetupParametersType* iso2LFA_EVSEFinePositioningSetupParametersType) { + int grammarID = 660; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 660: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSensors)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2LFA_EVSEFinePositioningSetupParametersType->NumberOfSensors - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 661; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 661: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorList)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2SensorListType(stream, &iso2LFA_EVSEFinePositioningSetupParametersType->SensorList ); + } + grammarID = 662; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 662: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorOrder)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2SensorOrderListType(stream, &iso2LFA_EVSEFinePositioningSetupParametersType->SensorOrder ); + } + grammarID = 663; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 663: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalPulseDuration)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2LFA_EVSEFinePositioningSetupParametersType->SignalPulseDuration - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 664; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 664: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalSeparationTime)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2LFA_EVSEFinePositioningSetupParametersType->SignalSeparationTime - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 665; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 665: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PackageSeparationTime)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2LFA_EVSEFinePositioningSetupParametersType->PackageSeparationTime - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 666; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 666: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AlignmentOffset)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2LFA_EVSEFinePositioningSetupParametersType->AlignmentOffset); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 667; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 667: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalFrequency)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2LFA_EVSEFinePositioningSetupParametersType->SignalFrequency); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PaymentOptionListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":PaymentOption{1-2})', derivedBy='RESTRICTION'. */ +static int encode_iso2PaymentOptionListType(bitstream_t* stream, struct iso2PaymentOptionListType* iso2PaymentOptionListType) { + int grammarID = 668; + int done = 0; + + unsigned int iso2PaymentOptionListType_PaymentOption_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 668: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PaymentOption)] */ + if (iso2PaymentOptionListType_PaymentOption_currArrayIndex < iso2PaymentOptionListType->PaymentOption.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso2PaymentOptionListType->PaymentOption.array[iso2PaymentOptionListType_PaymentOption_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 669; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 669: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PaymentOption), END_ELEMENT] */ + if (iso2PaymentOptionListType_PaymentOption_currArrayIndex < iso2PaymentOptionListType->PaymentOption.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso2PaymentOptionListType->PaymentOption.array[iso2PaymentOptionListType_PaymentOption_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,LFA_EVSEFinePositioningParametersType', base type name='EVSEFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NumberOfSignalPackages,"urn:iso:15118:2:2016:MsgDataTypes":SensorPackageList)', derivedBy='EXTENSION'. */ +static int encode_iso2LFA_EVSEFinePositioningParametersType(bitstream_t* stream, struct iso2LFA_EVSEFinePositioningParametersType* iso2LFA_EVSEFinePositioningParametersType) { + int grammarID = 670; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 670: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSignalPackages)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2LFA_EVSEFinePositioningParametersType->NumberOfSignalPackages - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 671; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 671: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackageList)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageListType(stream, &iso2LFA_EVSEFinePositioningParametersType->SensorPackageList ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,RelativeTimeIntervalType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":start,"urn:iso:15118:2:2016:MsgDataTypes":duration{0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso2RelativeTimeIntervalType(bitstream_t* stream, struct iso2RelativeTimeIntervalType* iso2RelativeTimeIntervalType) { + int grammarID = 672; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 672: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}start)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, iso2RelativeTimeIntervalType->start); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 673; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 673: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}duration), END_ELEMENT] */ + if ( iso2RelativeTimeIntervalType->duration_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, iso2RelativeTimeIntervalType->duration); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVFinePositioningParametersType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_iso2EVFinePositioningParametersType(bitstream_t* stream, struct iso2EVFinePositioningParametersType* iso2EVFinePositioningParametersType) { + int grammarID = 674; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 674: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,AlignmentCheckReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVProcessing,"urn:iso:15118:2:2016:MsgBody":AlignmentCheckParameters{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso2AlignmentCheckReqType(bitstream_t* stream, struct iso2AlignmentCheckReqType* iso2AlignmentCheckReqType) { + int grammarID = 675; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 675: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2AlignmentCheckReqType->EVProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 676; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 676: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckParameters), END_ELEMENT] */ + if ( iso2AlignmentCheckReqType->AlignmentCheckParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2AlignmentCheckReqType->AlignmentCheckParameters ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CertificateInstallationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":OEMProvisioningCert,"urn:iso:15118:2:2016:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */ +static int encode_iso2CertificateInstallationReqType(bitstream_t* stream, struct iso2CertificateInstallationReqType* iso2CertificateInstallationReqType) { + int grammarID = 677; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 677: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgBody}Id)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2CertificateInstallationReqType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2CertificateInstallationReqType->Id.characters, iso2CertificateInstallationReqType->Id.charactersLen); + } + } + grammarID = 678; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 678: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OEMProvisioningCert)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2CertificateInstallationReqType->OEMProvisioningCert.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2CertificateInstallationReqType->OEMProvisioningCert.bytes, iso2CertificateInstallationReqType->OEMProvisioningCert.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 650; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 650: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ListOfRootCertificateIDs)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2ListOfRootCertificateIDsType(stream, &iso2CertificateInstallationReqType->ListOfRootCertificateIDs ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso2TransformsType(bitstream_t* stream, struct iso2TransformsType* iso2TransformsType) { + int grammarID = 679; + int done = 0; + + unsigned int iso2TransformsType_Transform_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 679: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */ + if (iso2TransformsType_Transform_currArrayIndex < iso2TransformsType->Transform.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2TransformType(stream, &iso2TransformsType->Transform.array [iso2TransformsType_Transform_currArrayIndex++]); + } + grammarID = 680; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 680: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */ + if (iso2TransformsType_Transform_currArrayIndex < iso2TransformsType->Transform.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2TransformType(stream, &iso2TransformsType->Transform.array [iso2TransformsType_Transform_currArrayIndex++]); + } + grammarID = 680; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_iso2ObjectType(bitstream_t* stream, struct iso2ObjectType* iso2ObjectType) { + int grammarID = 681; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 681: + /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( iso2ObjectType->Encoding_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ObjectType->Encoding.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ObjectType->Encoding.characters, iso2ObjectType->Encoding.charactersLen); + } + } + grammarID = 682; + } else if ( iso2ObjectType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ObjectType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ObjectType->Id.characters, iso2ObjectType->Id.charactersLen); + } + } + grammarID = 683; + } else if ( iso2ObjectType->MimeType_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ObjectType->MimeType.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ObjectType->MimeType.characters, iso2ObjectType->MimeType.charactersLen); + } + } + grammarID = 684; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 685; + } else if ( iso2ObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso2ObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ObjectType->ANY.characters, iso2ObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 685; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 682: + /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( iso2ObjectType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ObjectType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ObjectType->Id.characters, iso2ObjectType->Id.charactersLen); + } + } + grammarID = 683; + } else if ( iso2ObjectType->MimeType_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ObjectType->MimeType.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ObjectType->MimeType.characters, iso2ObjectType->MimeType.charactersLen); + } + } + grammarID = 684; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 685; + } else if ( iso2ObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso2ObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ObjectType->ANY.characters, iso2ObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 685; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 683: + /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( iso2ObjectType->MimeType_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ObjectType->MimeType.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ObjectType->MimeType.characters, iso2ObjectType->MimeType.charactersLen); + } + } + grammarID = 684; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 685; + } else if ( iso2ObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso2ObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ObjectType->ANY.characters, iso2ObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 685; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 684: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 685; + } else if ( iso2ObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso2ObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ObjectType->ANY.characters, iso2ObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 685; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 685: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 685; + } else if ( iso2ObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso2ObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ObjectType->ANY.characters, iso2ObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 685; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorOrderListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SensorPosition{1-255})', derivedBy='RESTRICTION'. */ +static int encode_iso2SensorOrderListType(bitstream_t* stream, struct iso2SensorOrderListType* iso2SensorOrderListType) { + int grammarID = 686; + int done = 0; + + unsigned int iso2SensorOrderListType_SensorPosition_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 686: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition)] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 687; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 687: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 688; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 688: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 689; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 689: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 690; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 690: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 691; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 691: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 692; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 692: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 693; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 693: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 694; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 694: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 695; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 695: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 696; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 696: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 697; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 697: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 698; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 698: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 699; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 699: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 700; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 700: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 701; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 701: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 702; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 702: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 703; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 703: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 704; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 704: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 705; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 705: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 706; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 706: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 707; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 707: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 708; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 708: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 709; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 709: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 710; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 710: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 711; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 711: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 712; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 712: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 713; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 713: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 714; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 714: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 715; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 715: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 716; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 716: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 717; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 717: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 718; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 718: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 719; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 719: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 720; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 720: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 721; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 721: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 722; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 722: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 723; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 723: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 724; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 724: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 725; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 725: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 726; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 726: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 727; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 727: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 728; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 728: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 729; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 729: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 730; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 730: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 731; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 731: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 732; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 732: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 733; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 733: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 734; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 734: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 735; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 735: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 736; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 736: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 737; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 737: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 738; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 738: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 739; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 739: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 740; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 740: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 741; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 741: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 742; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 742: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 743; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 743: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 744; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 744: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 745; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 745: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 746; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 746: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 747; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 747: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 748; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 748: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 749; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 749: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 750; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 750: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 751; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 751: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 752; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 752: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 753; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 753: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 754; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 754: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 755; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 755: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 756; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 756: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 757; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 757: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 758; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 758: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 759; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 759: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 760; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 760: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 761; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 761: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 762; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 762: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 763; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 763: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 764; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 764: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 765; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 765: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 766; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 766: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 767; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 767: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 768; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 768: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 769; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 769: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 770; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 770: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 771; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 771: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 772; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 772: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 773; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 773: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 774; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 774: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 775; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 775: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 776; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 776: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 777; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 777: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 778; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 778: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 779; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 779: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 780; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 780: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 781; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 781: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 782; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 782: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 783; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 783: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 784; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 784: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 785; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 785: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 786; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 786: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 787; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 787: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 788; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 788: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 789; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 789: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 790; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 790: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 791; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 791: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 792; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 792: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 793; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 793: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 794; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 794: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 795; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 795: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 796; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 796: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 797; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 797: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 798; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 798: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 799; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 799: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 800; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 800: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 801; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 801: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 802; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 802: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 803; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 803: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 804; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 804: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 805; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 805: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 806; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 806: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 807; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 807: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 808; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 808: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 809; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 809: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 810; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 810: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 811; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 811: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 812; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 812: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 813; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 813: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 814; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 814: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 815; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 815: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 816; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 816: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 817; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 817: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 818; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 818: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 819; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 819: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 820; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 820: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 821; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 821: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 822; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 822: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 823; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 823: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 824; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 824: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 825; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 825: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 826; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 826: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 827; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 827: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 828; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 828: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 829; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 829: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 830; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 830: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 831; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 831: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 832; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 832: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 833; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 833: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 834; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 834: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 835; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 835: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 836; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 836: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 837; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 837: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 838; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 838: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 839; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 839: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 840; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 840: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 841; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 841: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 842; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 842: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 843; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 843: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 844; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 844: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 845; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 845: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 846; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 846: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 847; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 847: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 848; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 848: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 849; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 849: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 850; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 850: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 851; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 851: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 852; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 852: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 853; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 853: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 854; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 854: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 855; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 855: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 856; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 856: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 857; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 857: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 858; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 858: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 859; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 859: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 860; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 860: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 861; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 861: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 862; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 862: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 863; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 863: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 864; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 864: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 865; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 865: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 866; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 866: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 867; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 867: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 868; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 868: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 869; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 869: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 870; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 870: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 871; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 871: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 872; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 872: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 873; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 873: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 874; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 874: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 875; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 875: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 876; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 876: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 877; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 877: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 878; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 878: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 879; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 879: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 880; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 880: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 881; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 881: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 882; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 882: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 883; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 883: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 884; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 884: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 885; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 885: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 886; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 886: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 887; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 887: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 888; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 888: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 889; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 889: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 890; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 890: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 891; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 891: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 892; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 892: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 893; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 893: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 894; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 894: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 895; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 895: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 896; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 896: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 897; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 897: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 898; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 898: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 899; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 899: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 900; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 900: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 901; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 901: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 902; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 902: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 903; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 903: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 904; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 904: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 905; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 905: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 906; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 906: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 907; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 907: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 908; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 908: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 909; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 909: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 910; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 910: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 911; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 911: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 912; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 912: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 913; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 913: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 914; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 914: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 915; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 915: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 916; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 916: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 917; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 917: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 918; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 918: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 919; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 919: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 920; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 920: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 921; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 921: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 922; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 922: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 923; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 923: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 924; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 924: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 925; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 925: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 926; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 926: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 927; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 927: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 928; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 928: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 929; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 929: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 930; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 930: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 931; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 931: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 932; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 932: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 933; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 933: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 934; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 934: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 935; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 935: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 936; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 936: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 937; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 937: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 938; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 938: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 939; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 939: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 940; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 940: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), END_ELEMENT] */ + if (iso2SensorOrderListType_SensorPosition_currArrayIndex < iso2SensorOrderListType->SensorPosition.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorOrderListType->SensorPosition.array[iso2SensorOrderListType_SensorPosition_currArrayIndex++] - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ChargeParameterDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":MaxSupportingPoints{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVEnergyTransferParameter,"urn:iso:15118:2:2016:MsgBody":MinimumPMaxRequest{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso2ChargeParameterDiscoveryReqType(bitstream_t* stream, struct iso2ChargeParameterDiscoveryReqType* iso2ChargeParameterDiscoveryReqType) { + int grammarID = 941; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 941: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MaxSupportingPoints), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVEnergyTransferParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVChargeParameter)] */ + if ( iso2ChargeParameterDiscoveryReqType->MaxSupportingPoints_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 10, (uint32_t)(iso2ChargeParameterDiscoveryReqType->MaxSupportingPoints - 12)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 942; + } else if ( iso2ChargeParameterDiscoveryReqType->AC_EVBidirectionalParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2AC_EVBidirectionalParameterType(stream, &iso2ChargeParameterDiscoveryReqType->AC_EVBidirectionalParameter ); + } + grammarID = 943; + } else if ( iso2ChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2AC_EVChargeParameterType(stream, &iso2ChargeParameterDiscoveryReqType->AC_EVChargeParameter ); + } + grammarID = 943; + } else if ( iso2ChargeParameterDiscoveryReqType->DC_EVBidirectionalParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2DC_EVBidirectionalParameterType(stream, &iso2ChargeParameterDiscoveryReqType->DC_EVBidirectionalParameter ); + } + grammarID = 943; + } else if ( iso2ChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_iso2DC_EVChargeParameterType(stream, &iso2ChargeParameterDiscoveryReqType->DC_EVChargeParameter ); + } + grammarID = 943; + } else if ( iso2ChargeParameterDiscoveryReqType->EVEnergyTransferParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + errn = encode_iso2EVEnergyTransferParameterType(stream, &iso2ChargeParameterDiscoveryReqType->EVEnergyTransferParameter ); + } + grammarID = 943; + } else if ( iso2ChargeParameterDiscoveryReqType->WPT_EVChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 6); + if(errn == 0) { + errn = encode_iso2WPT_EVChargeParameterType(stream, &iso2ChargeParameterDiscoveryReqType->WPT_EVChargeParameter ); + } + grammarID = 943; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 942: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVEnergyTransferParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVChargeParameter)] */ + if ( iso2ChargeParameterDiscoveryReqType->AC_EVBidirectionalParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2AC_EVBidirectionalParameterType(stream, &iso2ChargeParameterDiscoveryReqType->AC_EVBidirectionalParameter ); + } + grammarID = 943; + } else if ( iso2ChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2AC_EVChargeParameterType(stream, &iso2ChargeParameterDiscoveryReqType->AC_EVChargeParameter ); + } + grammarID = 943; + } else if ( iso2ChargeParameterDiscoveryReqType->DC_EVBidirectionalParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2DC_EVBidirectionalParameterType(stream, &iso2ChargeParameterDiscoveryReqType->DC_EVBidirectionalParameter ); + } + grammarID = 943; + } else if ( iso2ChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2DC_EVChargeParameterType(stream, &iso2ChargeParameterDiscoveryReqType->DC_EVChargeParameter ); + } + grammarID = 943; + } else if ( iso2ChargeParameterDiscoveryReqType->EVEnergyTransferParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_iso2EVEnergyTransferParameterType(stream, &iso2ChargeParameterDiscoveryReqType->EVEnergyTransferParameter ); + } + grammarID = 943; + } else if ( iso2ChargeParameterDiscoveryReqType->WPT_EVChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + errn = encode_iso2WPT_EVChargeParameterType(stream, &iso2ChargeParameterDiscoveryReqType->WPT_EVChargeParameter ); + } + grammarID = 943; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 943: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MinimumPMaxRequest), END_ELEMENT] */ + if ( iso2ChargeParameterDiscoveryReqType->MinimumPMaxRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MinimumPMaxRequestType(stream, &iso2ChargeParameterDiscoveryReqType->MinimumPMaxRequest ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ParameterType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":boolValue|"urn:iso:15118:2:2016:MsgDataTypes":byteValue|"urn:iso:15118:2:2016:MsgDataTypes":shortValue|"urn:iso:15118:2:2016:MsgDataTypes":intValue|"urn:iso:15118:2:2016:MsgDataTypes":physicalValue|"urn:iso:15118:2:2016:MsgDataTypes":stringValue)', derivedBy='RESTRICTION'. */ +static int encode_iso2ParameterType(bitstream_t* stream, struct iso2ParameterType* iso2ParameterType) { + int grammarID = 944; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 944: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgDataTypes}Name)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ParameterType->Name.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ParameterType->Name.characters, iso2ParameterType->Name.charactersLen); + } + } + grammarID = 945; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 945: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}stringValue)] */ + if ( iso2ParameterType->boolValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2ParameterType->boolValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if ( iso2ParameterType->byteValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2ParameterType->byteValue + 128)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if ( iso2ParameterType->shortValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, iso2ParameterType->shortValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if ( iso2ParameterType->intValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger32(stream, iso2ParameterType->intValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if ( iso2ParameterType->physicalValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ParameterType->physicalValue ); + } + grammarID = 3; + } else if ( iso2ParameterType->stringValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ParameterType->stringValue.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ParameterType->stringValue.characters, iso2ParameterType->stringValue.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,SessionStopReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ChargingSession)', derivedBy='EXTENSION'. */ +static int encode_iso2SessionStopReqType(bitstream_t* stream, struct iso2SessionStopReqType* iso2SessionStopReqType) { + int grammarID = 946; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 946: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingSession)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso2SessionStopReqType->ChargingSession); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorMeasurementsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SensorID,"urn:iso:15118:2:2016:MsgDataTypes":EffectiveRadiatedPower,"urn:iso:15118:2:2016:MsgDataTypes":MeasurementDataList)', derivedBy='RESTRICTION'. */ +static int encode_iso2SensorMeasurementsType(bitstream_t* stream, struct iso2SensorMeasurementsType* iso2SensorMeasurementsType) { + int grammarID = 947; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 947: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorMeasurementsType->SensorID - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 948; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 948: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EffectiveRadiatedPower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorMeasurementsType->EffectiveRadiatedPower + 128)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 949; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 949: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementDataList)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2MeasurementDataListType(stream, &iso2SensorMeasurementsType->MeasurementDataList ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DC_EVSEChargeParameterType', base type name='EVSEEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2016:MsgDataTypes":EVSEEnergyToBeDelivered{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso2DC_EVSEChargeParameterType(bitstream_t* stream, struct iso2DC_EVSEChargeParameterType* iso2DC_EVSEChargeParameterType) { + int grammarID = 950; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 950: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargePower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEChargeParameterType->EVSEMaximumChargePower ); + } + grammarID = 951; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 951: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEChargeParameterType->EVSEMaximumChargeCurrent ); + } + grammarID = 952; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 952: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumChargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEChargeParameterType->EVSEMinimumChargeCurrent ); + } + grammarID = 953; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 953: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEChargeParameterType->EVSEMaximumVoltage ); + } + grammarID = 954; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 954: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEChargeParameterType->EVSEMinimumVoltage ); + } + grammarID = 955; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 955: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEPeakCurrentRipple)] */ + if ( iso2DC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEChargeParameterType->EVSECurrentRegulationTolerance ); + } + grammarID = 956; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEChargeParameterType->EVSEPeakCurrentRipple ); + } + grammarID = 957; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 956: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEPeakCurrentRipple)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEChargeParameterType->EVSEPeakCurrentRipple ); + } + grammarID = 957; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 957: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */ + if ( iso2DC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEChargeParameterType->EVSEEnergyToBeDelivered ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorPackageListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SensorPackage{1-255})', derivedBy='RESTRICTION'. */ +static int encode_iso2SensorPackageListType(bitstream_t* stream, struct iso2SensorPackageListType* iso2SensorPackageListType) { + int grammarID = 958; + int done = 0; + + unsigned int iso2SensorPackageListType_SensorPackage_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 958: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage)] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 959; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 959: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 960; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 960: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 961; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 961: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 962; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 962: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 963; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 963: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 964; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 964: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 965; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 965: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 966; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 966: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 967; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 967: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 968; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 968: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 969; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 969: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 970; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 970: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 971; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 971: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 972; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 972: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 973; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 973: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 974; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 974: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 975; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 975: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 976; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 976: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 977; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 977: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 978; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 978: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 979; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 979: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 980; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 980: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 981; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 981: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 982; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 982: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 983; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 983: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 984; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 984: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 985; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 985: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 986; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 986: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 987; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 987: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 988; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 988: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 989; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 989: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 990; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 990: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 991; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 991: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 992; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 992: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 993; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 993: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 994; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 994: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 995; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 995: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 996; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 996: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 997; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 997: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 998; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 998: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 999; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 999: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1000; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1000: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1001; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1001: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1002; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1002: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1003; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1003: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1004; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1004: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1005; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1005: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1006; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1006: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1007; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1007: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1008; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1008: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1009; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1009: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1010; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1010: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1011; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1011: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1012; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1012: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1013; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1013: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1014; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1014: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1015; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1015: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1016; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1016: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1017; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1017: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1018; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1018: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1019; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1019: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1020; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1020: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1021; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1021: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1022; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1022: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1023; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1023: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1024; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1024: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1025; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1025: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1026; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1026: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1027; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1027: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1028; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1028: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1029; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1029: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1030; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1030: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1031; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1031: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1032; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1032: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1033; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1033: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1034; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1034: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1035; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1035: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1036; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1036: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1037; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1037: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1038; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1038: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1039; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1039: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1040; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1040: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1041; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1041: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1042; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1042: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1043; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1043: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1044; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1044: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1045; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1045: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1046; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1046: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1047; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1047: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1048; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1048: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1049; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1049: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1050; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1050: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1051; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1051: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1052; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1052: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1053; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1053: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1054; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1054: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1055; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1055: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1056; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1056: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1057; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1057: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1058; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1058: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1059; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1059: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1060; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1060: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1061; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1061: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1062; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1062: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1063; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1063: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1064; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1064: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1065; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1065: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1066; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1066: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1067; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1067: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1068; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1068: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1069; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1069: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1070; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1070: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1071; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1071: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1072; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1072: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1073; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1073: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1074; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1074: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1075; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1075: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1076; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1076: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1077; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1077: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1078; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1078: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1079; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1079: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1080; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1080: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1081; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1081: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1082; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1082: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1083; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1083: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1084; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1084: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1085; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1085: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1086; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1086: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1087; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1087: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1088; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1088: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1089; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1089: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1090; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1090: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1091; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1091: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1092; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1092: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1093; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1093: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1094; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1094: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1095; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1095: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1096; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1096: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1097; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1097: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1098; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1098: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1099; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1099: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1100; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1100: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1101; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1101: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1102; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1102: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1103; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1103: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1104; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1104: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1105; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1105: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1106; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1106: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1107; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1107: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1108; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1108: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1109; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1109: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1110; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1110: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1111; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1111: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1112; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1112: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1113; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1113: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1114; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1114: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1115; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1115: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1116; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1116: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1117; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1117: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1118; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1118: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1119; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1119: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1120; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1120: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1121; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1121: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1122; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1122: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1123; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1123: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1124; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1124: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1125; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1125: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1126; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1126: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1127; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1127: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1128; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1128: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1129; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1129: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1130; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1130: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1131; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1131: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1132; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1132: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1133; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1133: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1134; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1134: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1135; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1135: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1136; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1136: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1137; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1137: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1138; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1138: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1139; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1139: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1140; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1140: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1141; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1141: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1142; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1142: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1143; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1143: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1144; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1144: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1145; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1145: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1146; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1146: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1147; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1147: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1148; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1148: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1149; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1149: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1150; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1150: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1151; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1151: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1152; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1152: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1153; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1153: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1154; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1154: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1155; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1155: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1156; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1156: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1157; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1157: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1158; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1158: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1159; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1159: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1160; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1160: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1161; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1161: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1162; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1162: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1163; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1163: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1164; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1164: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1165; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1165: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1166; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1166: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1167; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1167: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1168; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1168: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1169; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1169: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1170; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1170: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1171; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1171: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1172; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1172: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1173; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1173: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1174; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1174: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1175; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1175: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1176; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1176: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1177; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1177: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1178; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1178: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1179; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1179: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1180; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1180: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1181; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1181: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1182; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1182: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1183; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1183: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1184; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1184: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1185; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1185: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1186; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1186: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1187; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1187: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1188; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1188: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1189; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1189: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1190; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1190: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1191; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1191: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1192; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1192: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1193; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1193: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1194; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1194: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1195; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1195: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1196; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1196: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1197; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1197: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1198; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1198: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1199; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1199: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1200; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1200: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1201; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1201: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1202; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1202: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1203; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1203: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1204; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1204: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1205; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1205: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1206; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1206: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1207; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1207: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1208; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1208: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1209; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1209: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1210; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1210: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1211; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1211: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 1212; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1212: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), END_ELEMENT] */ + if (iso2SensorPackageListType_SensorPackage_currArrayIndex < iso2SensorPackageListType->SensorPackage.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &iso2SensorPackageListType->SensorPackage.array [iso2SensorPackageListType_SensorPackage_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MeasurementDataListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MeasurementData{1-255})', derivedBy='RESTRICTION'. */ +static int encode_iso2MeasurementDataListType(bitstream_t* stream, struct iso2MeasurementDataListType* iso2MeasurementDataListType) { + int grammarID = 1213; + int done = 0; + + unsigned int iso2MeasurementDataListType_MeasurementData_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 1213: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData)] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1214; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1214: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1215; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1215: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1216; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1216: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1217; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1217: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1218; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1218: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1219; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1219: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1220; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1220: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1221; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1221: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1222; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1222: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1223; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1223: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1224; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1224: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1225; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1225: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1226; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1226: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1227; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1227: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1228; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1228: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1229; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1229: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1230; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1230: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1231; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1231: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1232; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1232: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1233; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1233: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1234; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1234: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1235; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1235: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1236; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1236: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1237; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1237: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1238; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1238: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1239; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1239: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1240; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1240: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1241; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1241: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1242; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1242: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1243; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1243: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1244; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1244: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1245; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1245: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1246; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1246: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1247; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1247: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1248; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1248: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1249; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1249: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1250; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1250: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1251; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1251: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1252; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1252: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1253; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1253: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1254; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1254: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1255; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1255: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1256; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1256: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1257; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1257: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1258; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1258: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1259; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1259: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1260; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1260: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1261; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1261: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1262; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1262: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1263; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1263: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1264; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1264: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1265; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1265: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1266; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1266: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1267; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1267: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1268; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1268: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1269; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1269: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1270; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1270: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1271; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1271: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1272; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1272: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1273; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1273: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1274; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1274: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1275; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1275: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1276; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1276: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1277; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1277: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1278; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1278: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1279; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1279: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1280; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1280: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1281; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1281: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1282; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1282: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1283; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1283: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1284; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1284: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1285; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1285: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1286; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1286: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1287; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1287: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1288; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1288: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1289; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1289: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1290; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1290: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1291; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1291: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1292; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1292: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1293; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1293: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1294; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1294: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1295; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1295: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1296; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1296: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1297; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1297: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1298; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1298: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1299; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1299: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1300; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1300: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1301; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1301: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1302; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1302: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1303; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1303: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1304; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1304: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1305; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1305: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1306; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1306: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1307; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1307: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1308; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1308: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1309; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1309: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1310; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1310: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1311; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1311: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1312; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1312: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1313; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1313: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1314; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1314: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1315; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1315: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1316; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1316: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1317; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1317: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1318; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1318: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1319; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1319: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1320; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1320: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1321; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1321: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1322; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1322: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1323; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1323: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1324; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1324: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1325; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1325: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1326; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1326: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1327; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1327: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1328; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1328: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1329; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1329: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1330; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1330: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1331; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1331: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1332; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1332: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1333; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1333: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1334; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1334: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1335; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1335: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1336; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1336: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1337; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1337: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1338; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1338: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1339; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1339: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1340; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1340: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1341; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1341: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1342; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1342: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1343; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1343: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1344; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1344: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1345; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1345: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1346; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1346: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1347; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1347: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1348; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1348: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1349; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1349: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1350; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1350: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1351; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1351: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1352; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1352: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1353; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1353: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1354; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1354: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1355; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1355: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1356; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1356: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1357; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1357: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1358; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1358: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1359; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1359: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1360; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1360: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1361; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1361: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1362; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1362: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1363; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1363: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1364; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1364: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1365; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1365: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1366; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1366: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1367; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1367: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1368; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1368: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1369; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1369: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1370; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1370: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1371; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1371: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1372; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1372: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1373; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1373: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1374; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1374: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1375; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1375: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1376; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1376: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1377; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1377: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1378; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1378: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1379; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1379: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1380; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1380: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1381; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1381: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1382; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1382: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1383; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1383: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1384; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1384: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1385; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1385: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1386; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1386: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1387; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1387: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1388; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1388: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1389; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1389: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1390; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1390: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1391; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1391: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1392; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1392: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1393; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1393: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1394; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1394: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1395; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1395: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1396; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1396: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1397; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1397: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1398; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1398: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1399; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1399: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1400; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1400: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1401; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1401: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1402; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1402: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1403; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1403: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1404; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1404: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1405; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1405: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1406; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1406: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1407; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1407: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1408; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1408: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1409; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1409: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1410; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1410: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1411; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1411: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1412; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1412: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1413; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1413: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1414; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1414: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1415; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1415: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1416; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1416: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1417; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1417: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1418; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1418: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1419; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1419: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1420; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1420: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1421; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1421: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1422; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1422: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1423; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1423: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1424; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1424: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1425; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1425: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1426; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1426: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1427; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1427: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1428; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1428: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1429; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1429: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1430; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1430: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1431; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1431: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1432; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1432: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1433; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1433: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1434; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1434: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1435; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1435: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1436; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1436: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1437; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1437: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1438; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1438: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1439; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1439: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1440; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1440: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1441; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1441: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1442; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1442: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1443; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1443: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1444; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1444: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1445; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1445: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1446; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1446: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1447; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1447: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1448; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1448: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1449; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1449: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1450; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1450: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1451; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1451: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1452; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1452: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1453; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1453: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1454; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1454: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1455; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1455: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1456; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1456: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1457; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1457: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1458; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1458: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1459; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1459: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1460; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1460: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1461; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1461: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1462; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1462: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1463; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1463: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1464; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1464: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1465; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1465: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1466; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1466: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1467; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1467: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), END_ELEMENT] */ + if (iso2MeasurementDataListType_MeasurementData_currArrayIndex < iso2MeasurementDataListType->MeasurementData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MeasurementDataListType->MeasurementData.array[iso2MeasurementDataListType_MeasurementData_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Certificate,"urn:iso:15118:2:2016:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso2CertificateChainType(bitstream_t* stream, struct iso2CertificateChainType* iso2CertificateChainType) { + int grammarID = 1468; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1468: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate)] */ + if ( iso2CertificateChainType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2CertificateChainType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2CertificateChainType->Id.characters, iso2CertificateChainType->Id.charactersLen); + } + } + grammarID = 1469; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2CertificateChainType->Certificate.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2CertificateChainType->Certificate.bytes, iso2CertificateChainType->Certificate.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1470; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1469: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2CertificateChainType->Certificate.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2CertificateChainType->Certificate.bytes, iso2CertificateChainType->Certificate.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1470; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1470: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SubCertificates), END_ELEMENT] */ + if ( iso2CertificateChainType->SubCertificates_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SubCertificatesType(stream, &iso2CertificateChainType->SubCertificates ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_iso2SignaturePropertyType(bitstream_t* stream, struct iso2SignaturePropertyType* iso2SignaturePropertyType) { + int grammarID = 1471; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 1471: + /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */ + if ( iso2SignaturePropertyType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SignaturePropertyType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2SignaturePropertyType->Id.characters, iso2SignaturePropertyType->Id.charactersLen); + } + } + grammarID = 1472; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SignaturePropertyType->Target.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2SignaturePropertyType->Target.characters, iso2SignaturePropertyType->Target.charactersLen); + } + } + grammarID = 1473; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1472: + /* StartTag[ATTRIBUTE[STRING](Target)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SignaturePropertyType->Target.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2SignaturePropertyType->Target.characters, iso2SignaturePropertyType->Target.charactersLen); + } + } + grammarID = 1473; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1473: + /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 685; + } else if ( iso2SignaturePropertyType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SignaturePropertyType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2SignaturePropertyType->ANY.characters, iso2SignaturePropertyType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 1474; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 685: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 685; + } else if ( iso2SignaturePropertyType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso2SignaturePropertyType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SignaturePropertyType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2SignaturePropertyType->ANY.characters, iso2SignaturePropertyType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 685; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1474: + /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 685; + } else if ( iso2SignaturePropertyType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SignaturePropertyType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2SignaturePropertyType->ANY.characters, iso2SignaturePropertyType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 1474; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_iso2TransformType(bitstream_t* stream, struct iso2TransformType* iso2TransformType) { + int grammarID = 1475; + int done = 0; + int wcDone = 0; + + unsigned int iso2TransformType_XPath_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 1475: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2TransformType->Algorithm.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2TransformType->Algorithm.characters, iso2TransformType->Algorithm.charactersLen); + } + } + grammarID = 1476; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1476: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (iso2TransformType_XPath_currArrayIndex < iso2TransformType->XPath.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2TransformType->XPath.array[iso2TransformType_XPath_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2TransformType->XPath.array[iso2TransformType_XPath_currArrayIndex].characters, iso2TransformType->XPath.array[iso2TransformType_XPath_currArrayIndex].charactersLen); + iso2TransformType_XPath_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1477; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 1477; + } else if ( iso2TransformType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso2TransformType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2TransformType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2TransformType->ANY.characters, iso2TransformType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 1477; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1477: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (iso2TransformType_XPath_currArrayIndex < iso2TransformType->XPath.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2TransformType->XPath.array[iso2TransformType_XPath_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2TransformType->XPath.array[iso2TransformType_XPath_currArrayIndex].characters, iso2TransformType->XPath.array[iso2TransformType_XPath_currArrayIndex].charactersLen); + iso2TransformType_XPath_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1477; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 1477; + } else if ( iso2TransformType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso2TransformType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2TransformType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2TransformType->ANY.characters, iso2TransformType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 1477; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EMAIDType', base type name='eMAIDType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int encode_iso2EMAIDType(bitstream_t* stream, struct iso2EMAIDType* iso2EMAIDType) { + int grammarID = 1478; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1478: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgDataTypes}Id)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2EMAIDType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2EMAIDType->Id.characters, iso2EMAIDType->Id.charactersLen); + } + } + grammarID = 1479; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1479: + /* StartTag[CHARACTERS[STRING]] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2EMAIDType->CONTENT.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2EMAIDType->CONTENT.characters, iso2EMAIDType->CONTENT.charactersLen); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso2DSAKeyValueType(bitstream_t* stream, struct iso2DSAKeyValueType* iso2DSAKeyValueType) { + int grammarID = 1480; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1480: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + if ( iso2DSAKeyValueType->P_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DSAKeyValueType->P.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2DSAKeyValueType->P.bytes, iso2DSAKeyValueType->P.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1481; + } else if ( iso2DSAKeyValueType->G_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DSAKeyValueType->G.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2DSAKeyValueType->G.bytes, iso2DSAKeyValueType->G.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1482; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DSAKeyValueType->Y.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2DSAKeyValueType->Y.bytes, iso2DSAKeyValueType->Y.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1483; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1481: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */ + if ( iso2DSAKeyValueType->Q_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DSAKeyValueType->Q.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2DSAKeyValueType->Q.bytes, iso2DSAKeyValueType->Q.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1484; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1484: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + if ( iso2DSAKeyValueType->G_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DSAKeyValueType->G.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2DSAKeyValueType->G.bytes, iso2DSAKeyValueType->G.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1482; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DSAKeyValueType->Y.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2DSAKeyValueType->Y.bytes, iso2DSAKeyValueType->Y.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1483; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1482: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DSAKeyValueType->Y.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2DSAKeyValueType->Y.bytes, iso2DSAKeyValueType->Y.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1483; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1483: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ + if ( iso2DSAKeyValueType->J_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DSAKeyValueType->J.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2DSAKeyValueType->J.bytes, iso2DSAKeyValueType->J.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1485; + } else if ( iso2DSAKeyValueType->Seed_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DSAKeyValueType->Seed.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2DSAKeyValueType->Seed.bytes, iso2DSAKeyValueType->Seed.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1486; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1485: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ + if ( iso2DSAKeyValueType->Seed_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DSAKeyValueType->Seed.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2DSAKeyValueType->Seed.bytes, iso2DSAKeyValueType->Seed.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1486; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1486: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */ + if ( iso2DSAKeyValueType->PgenCounter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DSAKeyValueType->PgenCounter.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2DSAKeyValueType->PgenCounter.bytes, iso2DSAKeyValueType->PgenCounter.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EntryType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":RelativeTimeInterval)', derivedBy='RESTRICTION'. */ +static int encode_iso2EntryType(bitstream_t* stream, struct iso2EntryType* iso2EntryType) { + int grammarID = 1487; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1487: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RelativeTimeInterval)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2RelativeTimeIntervalType(stream, &iso2EntryType->RelativeTimeInterval ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgHeader,MessageHeaderType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgHeader":SessionID,"http://www.w3.org/2000/09/xmldsig#":Signature{0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso2MessageHeaderType(bitstream_t* stream, struct iso2MessageHeaderType* iso2MessageHeaderType) { + int grammarID = 1488; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1488: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgHeader}SessionID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2MessageHeaderType->SessionID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2MessageHeaderType->SessionID.bytes, iso2MessageHeaderType->SessionID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1489; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1489: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ + if ( iso2MessageHeaderType->Signature_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SignatureType(stream, &iso2MessageHeaderType->Signature ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,WPT_EVChargeParameterType', base type name='EVEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumPower,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumPower,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2WPT_EVChargeParameterType(bitstream_t* stream, struct iso2WPT_EVChargeParameterType* iso2WPT_EVChargeParameterType) { + int grammarID = 1490; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1490: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, iso2WPT_EVChargeParameterType->DepartureTime); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1491; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1491: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumPower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2WPT_EVChargeParameterType->EVMaximumPower ); + } + grammarID = 1492; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1492: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumPower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2WPT_EVChargeParameterType->EVMinimumPower ); + } + grammarID = 1493; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1493: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVTargetEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), END_ELEMENT] */ + if ( iso2WPT_EVChargeParameterType->EVTargetEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2WPT_EVChargeParameterType->EVTargetEnergyRequest ); + } + grammarID = 1494; + } else if ( iso2WPT_EVChargeParameterType->EVMaximumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2WPT_EVChargeParameterType->EVMaximumEnergyRequest ); + } + grammarID = 1495; + } else if ( iso2WPT_EVChargeParameterType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2WPT_EVChargeParameterType->EVMinimumEnergyRequest ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1494: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), END_ELEMENT] */ + if ( iso2WPT_EVChargeParameterType->EVMaximumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2WPT_EVChargeParameterType->EVMaximumEnergyRequest ); + } + grammarID = 1495; + } else if ( iso2WPT_EVChargeParameterType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2WPT_EVChargeParameterType->EVMinimumEnergyRequest ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1495: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), END_ELEMENT] */ + if ( iso2WPT_EVChargeParameterType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2WPT_EVChargeParameterType->EVMinimumEnergyRequest ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,DisconnectChargingDeviceReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVElectricalChargingDeviceStatus,"urn:iso:15118:2:2016:MsgBody":EVMechanicalChargingDeviceStatus)', derivedBy='EXTENSION'. */ +static int encode_iso2DisconnectChargingDeviceReqType(bitstream_t* stream, struct iso2DisconnectChargingDeviceReqType* iso2DisconnectChargingDeviceReqType) { + int grammarID = 1496; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1496: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVElectricalChargingDeviceStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso2DisconnectChargingDeviceReqType->EVElectricalChargingDeviceStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1497; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1497: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMechanicalChargingDeviceStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2DisconnectChargingDeviceReqType->EVMechanicalChargingDeviceStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ChargeLoopReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso2ChargeLoopReqType(bitstream_t* stream, struct iso2ChargeLoopReqType* iso2ChargeLoopReqType) { + int grammarID = 1498; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1498: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetEnergyRequest)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargeLoopReqType->EVTargetEnergyRequest ); + } + grammarID = 1499; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1499: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), END_ELEMENT] */ + if ( iso2ChargeLoopReqType->EVMaximumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargeLoopReqType->EVMaximumEnergyRequest ); + } + grammarID = 1500; + } else if ( iso2ChargeLoopReqType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargeLoopReqType->EVMinimumEnergyRequest ); + } + grammarID = 1501; + } else if ( iso2ChargeLoopReqType->DisplayParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &iso2ChargeLoopReqType->DisplayParameters ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1500: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), END_ELEMENT] */ + if ( iso2ChargeLoopReqType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargeLoopReqType->EVMinimumEnergyRequest ); + } + grammarID = 1501; + } else if ( iso2ChargeLoopReqType->DisplayParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &iso2ChargeLoopReqType->DisplayParameters ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1501: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), END_ELEMENT] */ + if ( iso2ChargeLoopReqType->DisplayParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &iso2ChargeLoopReqType->DisplayParameters ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,V2GRequestType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_iso2V2GRequestType(bitstream_t* stream, struct iso2V2GRequestType* iso2V2GRequestType) { + int grammarID = 674; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 674: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,MeteringReceiptResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso2MeteringReceiptResType(bitstream_t* stream, struct iso2MeteringReceiptResType* iso2MeteringReceiptResType) { + int grammarID = 599; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 599: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2MeteringReceiptResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 600; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 600: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), END_ELEMENT] */ + if ( iso2MeteringReceiptResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2MeteringReceiptResType->EVSEStatus ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,SessionSetupResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":EVSETimeStamp{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2SessionSetupResType(bitstream_t* stream, struct iso2SessionSetupResType* iso2SessionSetupResType) { + int grammarID = 1502; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1502: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2SessionSetupResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1503; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1503: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + if ( iso2SessionSetupResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2SessionSetupResType->EVSEStatus ); + } + grammarID = 1504; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SessionSetupResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2SessionSetupResType->EVSEID.characters, iso2SessionSetupResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1505; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1504: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SessionSetupResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2SessionSetupResType->EVSEID.characters, iso2SessionSetupResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1505; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1505: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETimeStamp), END_ELEMENT] */ + if ( iso2SessionSetupResType->EVSETimeStamp_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, iso2SessionSetupResType->EVSETimeStamp); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,AC_BidirectionalControlReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVOperation{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumChargePower,"urn:iso:15118:2:2016:MsgBody":EVMaximumDischargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgBody":EVMaximumDischargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgBody":EVMinimumDischargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVPresentActivePower,"urn:iso:15118:2:2016:MsgBody":EVPresentReactivePower))', derivedBy='EXTENSION'. */ +static int encode_iso2AC_BidirectionalControlReqType(bitstream_t* stream, struct iso2AC_BidirectionalControlReqType* iso2AC_BidirectionalControlReqType) { + int grammarID = 1506; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1506: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetEnergyRequest)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVTargetEnergyRequest ); + } + grammarID = 1507; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1507: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower)] */ + if ( iso2AC_BidirectionalControlReqType->EVMaximumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumEnergyRequest ); + } + grammarID = 1508; + } else if ( iso2AC_BidirectionalControlReqType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMinimumEnergyRequest ); + } + grammarID = 1509; + } else if ( iso2AC_BidirectionalControlReqType->DisplayParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &iso2AC_BidirectionalControlReqType->DisplayParameters ); + } + grammarID = 1510; + } else if ( iso2AC_BidirectionalControlReqType->EVOperation_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso2AC_BidirectionalControlReqType->EVOperation); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1511; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumChargePower ); + } + grammarID = 1512; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1508: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower)] */ + if ( iso2AC_BidirectionalControlReqType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMinimumEnergyRequest ); + } + grammarID = 1509; + } else if ( iso2AC_BidirectionalControlReqType->DisplayParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &iso2AC_BidirectionalControlReqType->DisplayParameters ); + } + grammarID = 1510; + } else if ( iso2AC_BidirectionalControlReqType->EVOperation_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso2AC_BidirectionalControlReqType->EVOperation); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1511; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumChargePower ); + } + grammarID = 1512; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1509: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower)] */ + if ( iso2AC_BidirectionalControlReqType->DisplayParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &iso2AC_BidirectionalControlReqType->DisplayParameters ); + } + grammarID = 1510; + } else if ( iso2AC_BidirectionalControlReqType->EVOperation_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso2AC_BidirectionalControlReqType->EVOperation); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1511; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumChargePower ); + } + grammarID = 1512; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1510: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower)] */ + if ( iso2AC_BidirectionalControlReqType->EVOperation_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso2AC_BidirectionalControlReqType->EVOperation); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1511; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumChargePower ); + } + grammarID = 1512; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1511: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumChargePower ); + } + grammarID = 1512; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1512: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent)] */ + if ( iso2AC_BidirectionalControlReqType->EVMaximumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumDischargePower ); + } + grammarID = 1513; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumChargeCurrent ); + } + grammarID = 1514; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1513: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumChargeCurrent ); + } + grammarID = 1514; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1514: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent)] */ + if ( iso2AC_BidirectionalControlReqType->EVMaximumDischargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMaximumDischargeCurrent ); + } + grammarID = 1515; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMinimumChargeCurrent ); + } + grammarID = 1516; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1515: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMinimumChargeCurrent ); + } + grammarID = 1516; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1516: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVPresentActivePower)] */ + if ( iso2AC_BidirectionalControlReqType->EVMinimumDischargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVMinimumDischargeCurrent ); + } + grammarID = 1517; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVPresentActivePower ); + } + grammarID = 1518; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1517: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVPresentActivePower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVPresentActivePower ); + } + grammarID = 1518; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1518: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVPresentReactivePower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlReqType->EVPresentReactivePower ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MV_EVSEFinePositioningParametersType', base type name='EVSEFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MagneticVectorList)', derivedBy='EXTENSION'. */ +static int encode_iso2MV_EVSEFinePositioningParametersType(bitstream_t* stream, struct iso2MV_EVSEFinePositioningParametersType* iso2MV_EVSEFinePositioningParametersType) { + int grammarID = 1519; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1519: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorList)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorListType(stream, &iso2MV_EVSEFinePositioningParametersType->MagneticVectorList ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ +static int encode_iso2ReferenceType(bitstream_t* stream, struct iso2ReferenceType* iso2ReferenceType) { + int grammarID = 1520; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1520: + /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( iso2ReferenceType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ReferenceType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ReferenceType->Id.characters, iso2ReferenceType->Id.charactersLen); + } + } + grammarID = 1521; + } else if ( iso2ReferenceType->Type_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ReferenceType->Type.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ReferenceType->Type.characters, iso2ReferenceType->Type.charactersLen); + } + } + grammarID = 1522; + } else if ( iso2ReferenceType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ReferenceType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ReferenceType->URI.characters, iso2ReferenceType->URI.charactersLen); + } + } + grammarID = 1523; + } else if ( iso2ReferenceType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2TransformsType(stream, &iso2ReferenceType->Transforms ); + } + grammarID = 1524; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_iso2DigestMethodType(stream, &iso2ReferenceType->DigestMethod ); + } + grammarID = 1525; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1521: + /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( iso2ReferenceType->Type_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ReferenceType->Type.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ReferenceType->Type.characters, iso2ReferenceType->Type.charactersLen); + } + } + grammarID = 1522; + } else if ( iso2ReferenceType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ReferenceType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ReferenceType->URI.characters, iso2ReferenceType->URI.charactersLen); + } + } + grammarID = 1523; + } else if ( iso2ReferenceType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2TransformsType(stream, &iso2ReferenceType->Transforms ); + } + grammarID = 1524; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2DigestMethodType(stream, &iso2ReferenceType->DigestMethod ); + } + grammarID = 1525; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1522: + /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( iso2ReferenceType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ReferenceType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ReferenceType->URI.characters, iso2ReferenceType->URI.charactersLen); + } + } + grammarID = 1523; + } else if ( iso2ReferenceType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2TransformsType(stream, &iso2ReferenceType->Transforms ); + } + grammarID = 1524; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso2DigestMethodType(stream, &iso2ReferenceType->DigestMethod ); + } + grammarID = 1525; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1523: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( iso2ReferenceType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2TransformsType(stream, &iso2ReferenceType->Transforms ); + } + grammarID = 1524; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2DigestMethodType(stream, &iso2ReferenceType->DigestMethod ); + } + grammarID = 1525; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1524: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2DigestMethodType(stream, &iso2ReferenceType->DigestMethod ); + } + grammarID = 1525; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1525: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ReferenceType->DigestValue.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2ReferenceType->DigestValue.bytes, iso2ReferenceType->DigestValue.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEEnergyTransferParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_iso2EVSEEnergyTransferParameterType(bitstream_t* stream, struct iso2EVSEEnergyTransferParameterType* iso2EVSEEnergyTransferParameterType) { + int grammarID = 674; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 674: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,MeteringReceiptReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":SessionID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo)', derivedBy='EXTENSION'. */ +static int encode_iso2MeteringReceiptReqType(bitstream_t* stream, struct iso2MeteringReceiptReqType* iso2MeteringReceiptReqType) { + int grammarID = 1526; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1526: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgBody}Id)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2MeteringReceiptReqType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2MeteringReceiptReqType->Id.characters, iso2MeteringReceiptReqType->Id.charactersLen); + } + } + grammarID = 1527; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1527: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2MeteringReceiptReqType->SessionID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2MeteringReceiptReqType->SessionID.bytes, iso2MeteringReceiptReqType->SessionID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1528; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1528: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo)] */ + if ( iso2MeteringReceiptReqType->SAScheduleTupleID_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2MeteringReceiptReqType->SAScheduleTupleID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1529; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2MeterInfoType(stream, &iso2MeteringReceiptReqType->MeterInfo ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1529: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2MeterInfoType(stream, &iso2MeteringReceiptReqType->MeterInfo ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */ +static int encode_iso2KeyValueType(bitstream_t* stream, struct iso2KeyValueType* iso2KeyValueType) { + int grammarID = 1530; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 1530: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if ( iso2KeyValueType->DSAKeyValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2DSAKeyValueType(stream, &iso2KeyValueType->DSAKeyValue ); + } + grammarID = 1531; + } else if ( iso2KeyValueType->RSAKeyValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2RSAKeyValueType(stream, &iso2KeyValueType->RSAKeyValue ); + } + grammarID = 1531; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 1531; + } else if ( iso2KeyValueType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2KeyValueType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2KeyValueType->ANY.characters, iso2KeyValueType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 1532; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1531: + /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( iso2KeyValueType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso2KeyValueType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2KeyValueType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2KeyValueType->ANY.characters, iso2KeyValueType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 1531; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1532: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if ( iso2KeyValueType->DSAKeyValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2DSAKeyValueType(stream, &iso2KeyValueType->DSAKeyValue ); + } + grammarID = 1531; + } else if ( iso2KeyValueType->RSAKeyValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2RSAKeyValueType(stream, &iso2KeyValueType->RSAKeyValue ); + } + grammarID = 1531; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 1531; + } else if ( iso2KeyValueType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2KeyValueType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2KeyValueType->ANY.characters, iso2KeyValueType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 1532; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Sensor{1-255})', derivedBy='RESTRICTION'. */ +static int encode_iso2SensorListType(bitstream_t* stream, struct iso2SensorListType* iso2SensorListType) { + int grammarID = 1533; + int done = 0; + + unsigned int iso2SensorListType_Sensor_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 1533: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor)] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1534; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1534: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1535; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1535: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1536; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1536: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1537; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1537: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1538; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1538: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1539; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1539: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1540; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1540: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1541; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1541: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1542; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1542: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1543; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1543: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1544; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1544: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1545; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1545: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1546; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1546: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1547; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1547: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1548; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1548: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1549; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1549: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1550; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1550: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1551; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1551: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1552; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1552: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1553; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1553: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1554; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1554: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1555; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1555: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1556; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1556: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1557; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1557: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1558; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1558: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1559; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1559: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1560; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1560: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1561; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1561: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1562; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1562: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1563; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1563: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1564; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1564: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1565; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1565: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1566; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1566: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1567; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1567: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1568; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1568: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1569; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1569: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1570; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1570: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1571; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1571: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1572; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1572: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1573; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1573: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1574; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1574: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1575; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1575: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1576; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1576: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1577; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1577: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1578; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1578: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1579; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1579: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1580; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1580: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1581; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1581: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1582; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1582: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1583; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1583: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1584; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1584: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1585; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1585: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1586; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1586: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1587; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1587: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1588; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1588: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1589; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1589: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1590; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1590: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1591; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1591: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1592; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1592: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1593; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1593: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1594; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1594: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1595; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1595: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1596; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1596: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1597; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1597: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1598; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1598: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1599; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1599: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1600; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1600: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1601; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1601: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1602; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1602: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1603; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1603: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1604; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1604: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1605; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1605: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1606; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1606: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1607; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1607: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1608; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1608: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1609; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1609: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1610; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1610: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1611; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1611: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1612; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1612: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1613; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1613: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1614; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1614: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1615; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1615: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1616; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1616: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1617; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1617: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1618; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1618: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1619; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1619: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1620; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1620: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1621; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1621: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1622; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1622: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1623; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1623: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1624; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1624: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1625; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1625: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1626; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1626: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1627; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1627: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1628; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1628: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1629; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1629: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1630; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1630: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1631; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1631: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1632; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1632: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1633; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1633: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1634; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1634: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1635; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1635: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1636; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1636: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1637; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1637: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1638; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1638: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1639; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1639: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1640; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1640: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1641; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1641: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1642; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1642: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1643; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1643: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1644; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1644: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1645; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1645: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1646; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1646: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1647; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1647: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1648; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1648: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1649; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1649: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1650; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1650: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1651; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1651: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1652; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1652: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1653; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1653: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1654; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1654: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1655; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1655: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1656; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1656: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1657; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1657: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1658; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1658: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1659; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1659: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1660; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1660: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1661; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1661: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1662; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1662: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1663; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1663: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1664; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1664: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1665; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1665: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1666; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1666: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1667; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1667: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1668; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1668: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1669; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1669: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1670; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1670: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1671; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1671: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1672; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1672: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1673; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1673: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1674; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1674: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1675; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1675: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1676; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1676: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1677; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1677: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1678; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1678: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1679; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1679: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1680; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1680: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1681; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1681: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1682; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1682: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1683; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1683: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1684; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1684: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1685; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1685: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1686; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1686: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1687; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1687: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1688; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1688: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1689; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1689: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1690; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1690: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1691; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1691: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1692; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1692: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1693; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1693: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1694; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1694: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1695; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1695: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1696; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1696: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1697; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1697: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1698; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1698: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1699; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1699: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1700; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1700: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1701; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1701: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1702; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1702: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1703; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1703: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1704; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1704: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1705; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1705: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1706; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1706: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1707; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1707: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1708; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1708: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1709; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1709: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1710; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1710: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1711; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1711: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1712; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1712: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1713; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1713: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1714; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1714: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1715; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1715: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1716; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1716: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1717; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1717: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1718; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1718: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1719; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1719: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1720; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1720: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1721; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1721: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1722; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1722: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1723; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1723: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1724; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1724: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1725; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1725: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1726; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1726: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1727; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1727: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1728; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1728: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1729; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1729: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1730; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1730: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1731; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1731: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1732; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1732: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1733; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1733: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1734; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1734: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1735; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1735: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1736; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1736: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1737; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1737: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1738; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1738: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1739; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1739: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1740; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1740: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1741; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1741: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1742; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1742: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1743; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1743: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1744; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1744: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1745; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1745: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1746; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1746: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1747; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1747: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1748; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1748: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1749; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1749: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1750; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1750: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1751; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1751: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1752; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1752: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1753; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1753: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1754; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1754: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1755; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1755: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1756; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1756: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1757; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1757: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1758; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1758: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1759; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1759: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1760; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1760: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1761; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1761: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1762; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1762: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1763; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1763: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1764; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1764: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1765; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1765: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1766; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1766: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1767; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1767: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1768; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1768: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1769; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1769: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1770; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1770: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1771; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1771: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1772; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1772: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1773; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1773: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1774; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1774: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1775; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1775: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1776; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1776: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1777; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1777: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1778; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1778: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1779; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1779: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1780; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1780: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1781; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1781: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1782; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1782: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1783; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1783: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1784; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1784: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1785; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1785: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1786; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1786: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 1787; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1787: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), END_ELEMENT] */ + if (iso2SensorListType_Sensor_currArrayIndex < iso2SensorListType->Sensor.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &iso2SensorListType->Sensor.array [iso2SensorListType_Sensor_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CurrentDemandReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2016:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2016:MsgBody":EVMaximumCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumPower{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumVoltage{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2CurrentDemandReqType(bitstream_t* stream, struct iso2CurrentDemandReqType* iso2CurrentDemandReqType) { + int grammarID = 1788; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1788: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetEnergyRequest)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVTargetEnergyRequest ); + } + grammarID = 1789; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1789: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent)] */ + if ( iso2CurrentDemandReqType->EVMaximumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVMaximumEnergyRequest ); + } + grammarID = 1790; + } else if ( iso2CurrentDemandReqType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVMinimumEnergyRequest ); + } + grammarID = 1791; + } else if ( iso2CurrentDemandReqType->DisplayParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &iso2CurrentDemandReqType->DisplayParameters ); + } + grammarID = 1792; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVTargetCurrent ); + } + grammarID = 1793; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1790: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent)] */ + if ( iso2CurrentDemandReqType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVMinimumEnergyRequest ); + } + grammarID = 1791; + } else if ( iso2CurrentDemandReqType->DisplayParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &iso2CurrentDemandReqType->DisplayParameters ); + } + grammarID = 1792; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVTargetCurrent ); + } + grammarID = 1793; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1791: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent)] */ + if ( iso2CurrentDemandReqType->DisplayParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &iso2CurrentDemandReqType->DisplayParameters ); + } + grammarID = 1792; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVTargetCurrent ); + } + grammarID = 1793; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1792: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVTargetCurrent ); + } + grammarID = 1793; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1793: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVTargetVoltage ); + } + grammarID = 1794; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1794: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumVoltage), END_ELEMENT] */ + if ( iso2CurrentDemandReqType->EVMaximumCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVMaximumCurrent ); + } + grammarID = 1795; + } else if ( iso2CurrentDemandReqType->EVMaximumPower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVMaximumPower ); + } + grammarID = 1796; + } else if ( iso2CurrentDemandReqType->EVMaximumVoltage_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVMaximumVoltage ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1795: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumVoltage), END_ELEMENT] */ + if ( iso2CurrentDemandReqType->EVMaximumPower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVMaximumPower ); + } + grammarID = 1796; + } else if ( iso2CurrentDemandReqType->EVMaximumVoltage_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVMaximumVoltage ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1796: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumVoltage), END_ELEMENT] */ + if ( iso2CurrentDemandReqType->EVMaximumVoltage_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandReqType->EVMaximumVoltage ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,FinePositioningSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":EVFinePositioningSetupParameters{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso2FinePositioningSetupReqType(bitstream_t* stream, struct iso2FinePositioningSetupReqType* iso2FinePositioningSetupReqType) { + int grammarID = 1797; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1797: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningSetupParameters), END_ELEMENT] */ + if ( iso2FinePositioningSetupReqType->EVFinePositioningSetupParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVFinePositioningSetupParametersType(stream, &iso2FinePositioningSetupReqType->EVFinePositioningSetupParameters ); + } + grammarID = 3; + } else if ( iso2FinePositioningSetupReqType->LFA_EVFinePositioningSetupParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2LFA_EVFinePositioningSetupParametersType(stream, &iso2FinePositioningSetupReqType->LFA_EVFinePositioningSetupParameters ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,LFA_EVFinePositioningSetupParametersType', base type name='EVFinePositioningSetupParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NumberOfSensors,"urn:iso:15118:2:2016:MsgDataTypes":SensorList,"urn:iso:15118:2:2016:MsgDataTypes":SensorOrder,"urn:iso:15118:2:2016:MsgDataTypes":SignalPulseDuration,"urn:iso:15118:2:2016:MsgDataTypes":SignalSeparationTime,"urn:iso:15118:2:2016:MsgDataTypes":PackageSeparationTime,"urn:iso:15118:2:2016:MsgDataTypes":AlignmentOffset)', derivedBy='EXTENSION'. */ +static int encode_iso2LFA_EVFinePositioningSetupParametersType(bitstream_t* stream, struct iso2LFA_EVFinePositioningSetupParametersType* iso2LFA_EVFinePositioningSetupParametersType) { + int grammarID = 1798; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1798: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSensors)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2LFA_EVFinePositioningSetupParametersType->NumberOfSensors - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1799; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1799: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorList)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2SensorListType(stream, &iso2LFA_EVFinePositioningSetupParametersType->SensorList ); + } + grammarID = 1800; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1800: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorOrder)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2SensorOrderListType(stream, &iso2LFA_EVFinePositioningSetupParametersType->SensorOrder ); + } + grammarID = 1801; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1801: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalPulseDuration)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2LFA_EVFinePositioningSetupParametersType->SignalPulseDuration - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1802; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1802: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalSeparationTime)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2LFA_EVFinePositioningSetupParametersType->SignalSeparationTime - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1803; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1803: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PackageSeparationTime)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2LFA_EVFinePositioningSetupParametersType->PackageSeparationTime - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1804; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1804: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AlignmentOffset)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2LFA_EVFinePositioningSetupParametersType->AlignmentOffset); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SAScheduleTupleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2016:MsgDataTypes":PMaxSchedule,"urn:iso:15118:2:2016:MsgDataTypes":PMaxDischargeSchedule{0-1},"urn:iso:15118:2:2016:MsgDataTypes":SalesTariff{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BuyBackTariff{0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso2SAScheduleTupleType(bitstream_t* stream, struct iso2SAScheduleTupleType* iso2SAScheduleTupleType) { + int grammarID = 1805; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1805: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleTupleID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SAScheduleTupleType->SAScheduleTupleID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1806; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1806: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxSchedule)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PMaxScheduleType(stream, &iso2SAScheduleTupleType->PMaxSchedule ); + } + grammarID = 1807; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1807: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxDischargeSchedule), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BuyBackTariff), END_ELEMENT] */ + if ( iso2SAScheduleTupleType->PMaxDischargeSchedule_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PMaxScheduleType(stream, &iso2SAScheduleTupleType->PMaxDischargeSchedule ); + } + grammarID = 1808; + } else if ( iso2SAScheduleTupleType->SalesTariff_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2SalesTariffType(stream, &iso2SAScheduleTupleType->SalesTariff ); + } + grammarID = 1809; + } else if ( iso2SAScheduleTupleType->BuyBackTariff_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2SalesTariffType(stream, &iso2SAScheduleTupleType->BuyBackTariff ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1808: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BuyBackTariff), END_ELEMENT] */ + if ( iso2SAScheduleTupleType->SalesTariff_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SalesTariffType(stream, &iso2SAScheduleTupleType->SalesTariff ); + } + grammarID = 1809; + } else if ( iso2SAScheduleTupleType->BuyBackTariff_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2SalesTariffType(stream, &iso2SAScheduleTupleType->BuyBackTariff ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1809: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BuyBackTariff), END_ELEMENT] */ + if ( iso2SAScheduleTupleType->BuyBackTariff_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SalesTariffType(stream, &iso2SAScheduleTupleType->BuyBackTariff ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,WPT_EVSEChargeParameterType', base type name='EVSEEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumPower,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumPower)', derivedBy='EXTENSION'. */ +static int encode_iso2WPT_EVSEChargeParameterType(bitstream_t* stream, struct iso2WPT_EVSEChargeParameterType* iso2WPT_EVSEChargeParameterType) { + int grammarID = 1810; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1810: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumPower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2WPT_EVSEChargeParameterType->EVSEMaximumPower ); + } + grammarID = 1811; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1811: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumPower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2WPT_EVSEChargeParameterType->EVSEMinimumPower ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,FinePositioningResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgDataTypes":EVSEFinePositioningParameters{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2FinePositioningResType(bitstream_t* stream, struct iso2FinePositioningResType* iso2FinePositioningResType) { + int grammarID = 1812; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1812: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2FinePositioningResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1813; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1813: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( iso2FinePositioningResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2FinePositioningResType->EVSEStatus ); + } + grammarID = 1814; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2FinePositioningResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1815; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1814: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2FinePositioningResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1815; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1815: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVSEFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningParameters), END_ELEMENT] */ + if ( iso2FinePositioningResType->EVSEFinePositioningParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2EVSEFinePositioningParametersType(stream, &iso2FinePositioningResType->EVSEFinePositioningParameters ); + } + grammarID = 3; + } else if ( iso2FinePositioningResType->Generic_EVSEFinePositioningParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2Generic_EVSEFinePositioningParametersType(stream, &iso2FinePositioningResType->Generic_EVSEFinePositioningParameters ); + } + grammarID = 3; + } else if ( iso2FinePositioningResType->LFA_EVSEFinePositioningParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2LFA_EVSEFinePositioningParametersType(stream, &iso2FinePositioningResType->LFA_EVSEFinePositioningParameters ); + } + grammarID = 3; + } else if ( iso2FinePositioningResType->MV_EVSEFinePositioningParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2MV_EVSEFinePositioningParametersType(stream, &iso2FinePositioningResType->MV_EVSEFinePositioningParameters ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,BodyBaseType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_iso2BodyBaseType(bitstream_t* stream, struct iso2BodyBaseType* iso2BodyBaseType) { + int grammarID = 674; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 674: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ServiceDetailResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":ServiceID,"urn:iso:15118:2:2016:MsgBody":ServiceParameterList{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2ServiceDetailResType(bitstream_t* stream, struct iso2ServiceDetailResType* iso2ServiceDetailResType) { + int grammarID = 1816; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1816: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2ServiceDetailResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1817; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1817: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceID)] */ + if ( iso2ServiceDetailResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2ServiceDetailResType->EVSEStatus ); + } + grammarID = 1818; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2ServiceDetailResType->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1819; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1818: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2ServiceDetailResType->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1819; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1819: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceParameterList), END_ELEMENT] */ + if ( iso2ServiceDetailResType->ServiceParameterList_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ServiceParameterListType(stream, &iso2ServiceDetailResType->ServiceParameterList ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PowerDeliveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ChargeProgress,"urn:iso:15118:2:2016:MsgBody":EVOperation{0-1},"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":ChargingProfile{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso2PowerDeliveryReqType(bitstream_t* stream, struct iso2PowerDeliveryReqType* iso2PowerDeliveryReqType) { + int grammarID = 1820; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1820: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeProgress)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2PowerDeliveryReqType->ChargeProgress); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1821; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1821: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingProfile), END_ELEMENT] */ + if ( iso2PowerDeliveryReqType->EVOperation_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso2PowerDeliveryReqType->EVOperation); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1822; + } else if ( iso2PowerDeliveryReqType->SAScheduleTupleID_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2PowerDeliveryReqType->SAScheduleTupleID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1823; + } else if ( iso2PowerDeliveryReqType->ChargingProfile_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2ChargingProfileType(stream, &iso2PowerDeliveryReqType->ChargingProfile ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1822: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingProfile), END_ELEMENT] */ + if ( iso2PowerDeliveryReqType->SAScheduleTupleID_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2PowerDeliveryReqType->SAScheduleTupleID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1823; + } else if ( iso2PowerDeliveryReqType->ChargingProfile_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2ChargingProfileType(stream, &iso2PowerDeliveryReqType->ChargingProfile ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1823: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingProfile), END_ELEMENT] */ + if ( iso2PowerDeliveryReqType->ChargingProfile_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ChargingProfileType(stream, &iso2PowerDeliveryReqType->ChargingProfile ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PairingResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":PairingParameters{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2PairingResType(bitstream_t* stream, struct iso2PairingResType* iso2PairingResType) { + int grammarID = 1824; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1824: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2PairingResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1825; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1825: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( iso2PairingResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2PairingResType->EVSEStatus ); + } + grammarID = 1826; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2PairingResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1827; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1826: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2PairingResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1827; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1827: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingParameters), END_ELEMENT] */ + if ( iso2PairingResType->PairingParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2PairingResType->PairingParameters ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,AuthorizationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":GenChallenge{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso2AuthorizationReqType(bitstream_t* stream, struct iso2AuthorizationReqType* iso2AuthorizationReqType) { + int grammarID = 1828; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1828: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}GenChallenge), END_ELEMENT] */ + if ( iso2AuthorizationReqType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2AuthorizationReqType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2AuthorizationReqType->Id.characters, iso2AuthorizationReqType->Id.charactersLen); + } + } + grammarID = 1829; + } else if ( iso2AuthorizationReqType->GenChallenge_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2AuthorizationReqType->GenChallenge.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2AuthorizationReqType->GenChallenge.bytes, iso2AuthorizationReqType->GenChallenge.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1829: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}GenChallenge), END_ELEMENT] */ + if ( iso2AuthorizationReqType->GenChallenge_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2AuthorizationReqType->GenChallenge.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2AuthorizationReqType->GenChallenge.bytes, iso2AuthorizationReqType->GenChallenge.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2016:MsgDataTypes":Parameter{1-16})', derivedBy='RESTRICTION'. */ +static int encode_iso2ParameterSetType(bitstream_t* stream, struct iso2ParameterSetType* iso2ParameterSetType) { + int grammarID = 1830; + int done = 0; + + unsigned int iso2ParameterSetType_Parameter_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 1830: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSetID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2ParameterSetType->ParameterSetID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1831; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1831: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter)] */ + if (iso2ParameterSetType_Parameter_currArrayIndex < iso2ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array [iso2ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 1832; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1832: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso2ParameterSetType_Parameter_currArrayIndex < iso2ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array [iso2ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 1833; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1833: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso2ParameterSetType_Parameter_currArrayIndex < iso2ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array [iso2ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 1834; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1834: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso2ParameterSetType_Parameter_currArrayIndex < iso2ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array [iso2ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 1835; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1835: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso2ParameterSetType_Parameter_currArrayIndex < iso2ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array [iso2ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 1836; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1836: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso2ParameterSetType_Parameter_currArrayIndex < iso2ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array [iso2ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 1837; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1837: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso2ParameterSetType_Parameter_currArrayIndex < iso2ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array [iso2ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 1838; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1838: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso2ParameterSetType_Parameter_currArrayIndex < iso2ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array [iso2ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 1839; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1839: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso2ParameterSetType_Parameter_currArrayIndex < iso2ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array [iso2ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 1840; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1840: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso2ParameterSetType_Parameter_currArrayIndex < iso2ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array [iso2ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 1841; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1841: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso2ParameterSetType_Parameter_currArrayIndex < iso2ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array [iso2ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 1842; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1842: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso2ParameterSetType_Parameter_currArrayIndex < iso2ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array [iso2ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 1843; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1843: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso2ParameterSetType_Parameter_currArrayIndex < iso2ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array [iso2ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 1844; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1844: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso2ParameterSetType_Parameter_currArrayIndex < iso2ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array [iso2ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 1845; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1845: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso2ParameterSetType_Parameter_currArrayIndex < iso2ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array [iso2ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 1846; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1846: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), END_ELEMENT] */ + if (iso2ParameterSetType_Parameter_currArrayIndex < iso2ParameterSetType->Parameter.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterType(stream, &iso2ParameterSetType->Parameter.array [iso2ParameterSetType_Parameter_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_iso2SPKIDataType(bitstream_t* stream, struct iso2SPKIDataType* iso2SPKIDataType) { + int grammarID = 1847; + int done = 0; + int wcDone = 0; + + unsigned int iso2SPKIDataType_SPKISexp_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 1847: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */ + if (iso2SPKIDataType_SPKISexp_currArrayIndex < iso2SPKIDataType->SPKISexp.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType_SPKISexp_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType_SPKISexp_currArrayIndex].bytes, iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType_SPKISexp_currArrayIndex].bytesLen); + iso2SPKIDataType_SPKISexp_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1848; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1848: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */ + if (iso2SPKIDataType_SPKISexp_currArrayIndex < iso2SPKIDataType->SPKISexp.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType_SPKISexp_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType_SPKISexp_currArrayIndex].bytes, iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType_SPKISexp_currArrayIndex].bytesLen); + iso2SPKIDataType_SPKISexp_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1848; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 1849; + } else if ( iso2SPKIDataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1849: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */ + if (iso2SPKIDataType_SPKISexp_currArrayIndex < iso2SPKIDataType->SPKISexp.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType_SPKISexp_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType_SPKISexp_currArrayIndex].bytes, iso2SPKIDataType->SPKISexp.array[iso2SPKIDataType_SPKISexp_currArrayIndex].bytesLen); + iso2SPKIDataType_SPKISexp_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1848; + } else if ( iso2SPKIDataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PaymentDetailsResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":GenChallenge,"urn:iso:15118:2:2016:MsgBody":EVSETimeStamp))', derivedBy='EXTENSION'. */ +static int encode_iso2PaymentDetailsResType(bitstream_t* stream, struct iso2PaymentDetailsResType* iso2PaymentDetailsResType) { + int grammarID = 1850; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1850: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2PaymentDetailsResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1851; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1851: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}GenChallenge)] */ + if ( iso2PaymentDetailsResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2PaymentDetailsResType->EVSEStatus ); + } + grammarID = 1852; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2PaymentDetailsResType->GenChallenge.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2PaymentDetailsResType->GenChallenge.bytes, iso2PaymentDetailsResType->GenChallenge.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1853; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1852: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}GenChallenge)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2PaymentDetailsResType->GenChallenge.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2PaymentDetailsResType->GenChallenge.bytes, iso2PaymentDetailsResType->GenChallenge.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1853; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1853: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETimeStamp)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, iso2PaymentDetailsResType->EVSETimeStamp); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso2SignatureMethodType(bitstream_t* stream, struct iso2SignatureMethodType* iso2SignatureMethodType) { + int grammarID = 1854; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 1854: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SignatureMethodType->Algorithm.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2SignatureMethodType->Algorithm.characters, iso2SignatureMethodType->Algorithm.charactersLen); + } + } + grammarID = 1855; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1855: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( iso2SignatureMethodType->HMACOutputLength_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, iso2SignatureMethodType->HMACOutputLength); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 685; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 685; + } else if ( iso2SignatureMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso2SignatureMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SignatureMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2SignatureMethodType->ANY.characters, iso2SignatureMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 1856; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 685: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 685; + } else if ( iso2SignatureMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso2SignatureMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SignatureMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2SignatureMethodType->ANY.characters, iso2SignatureMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 685; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1856: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( iso2SignatureMethodType->HMACOutputLength_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, iso2SignatureMethodType->HMACOutputLength); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 685; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 685; + } else if ( iso2SignatureMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso2SignatureMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SignatureMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2SignatureMethodType->ANY.characters, iso2SignatureMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 1856; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,AC_BidirectionalControlResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":EVSETargetPower,"urn:iso:15118:2:2016:MsgBody":EVSETargetReactivePower,"urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2AC_BidirectionalControlResType(bitstream_t* stream, struct iso2AC_BidirectionalControlResType* iso2AC_BidirectionalControlResType) { + int grammarID = 1857; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1857: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2AC_BidirectionalControlResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1858; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1858: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( iso2AC_BidirectionalControlResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2AC_BidirectionalControlResType->EVSEStatus ); + } + grammarID = 1859; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2AC_BidirectionalControlResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1860; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1859: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2AC_BidirectionalControlResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1860; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1860: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetPower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlResType->EVSETargetPower ); + } + grammarID = 1861; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1861: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetReactivePower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_BidirectionalControlResType->EVSETargetReactivePower ); + } + grammarID = 27; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 27: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2AC_BidirectionalControlResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2AC_BidirectionalControlResType->EVSEID.characters, iso2AC_BidirectionalControlResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 28; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 28: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), END_ELEMENT] */ + if ( iso2AC_BidirectionalControlResType->SAScheduleTupleID_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2AC_BidirectionalControlResType->SAScheduleTupleID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 29; + } else if ( iso2AC_BidirectionalControlResType->MeterInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2MeterInfoType(stream, &iso2AC_BidirectionalControlResType->MeterInfo ); + } + grammarID = 30; + } else if ( iso2AC_BidirectionalControlResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2AC_BidirectionalControlResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 29: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), END_ELEMENT] */ + if ( iso2AC_BidirectionalControlResType->MeterInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MeterInfoType(stream, &iso2AC_BidirectionalControlResType->MeterInfo ); + } + grammarID = 30; + } else if ( iso2AC_BidirectionalControlResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2AC_BidirectionalControlResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 30: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), END_ELEMENT] */ + if ( iso2AC_BidirectionalControlResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2AC_BidirectionalControlResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,VehicleCheckOutReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVCheckOutStatus,"urn:iso:15118:2:2016:MsgBody":CheckOutTime)', derivedBy='EXTENSION'. */ +static int encode_iso2VehicleCheckOutReqType(bitstream_t* stream, struct iso2VehicleCheckOutReqType* iso2VehicleCheckOutReqType) { + int grammarID = 1862; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1862: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCheckOutStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2VehicleCheckOutReqType->EVCheckOutStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1863; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1863: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CheckOutTime)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger64(stream, iso2VehicleCheckOutReqType->CheckOutTime); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,WeldingDetectionReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int encode_iso2WeldingDetectionReqType(bitstream_t* stream, struct iso2WeldingDetectionReqType* iso2WeldingDetectionReqType) { + int grammarID = 674; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 674: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,AlignmentCheckResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":AlignmentCheckParameters{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2AlignmentCheckResType(bitstream_t* stream, struct iso2AlignmentCheckResType* iso2AlignmentCheckResType) { + int grammarID = 1864; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1864: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2AlignmentCheckResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1865; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1865: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( iso2AlignmentCheckResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2AlignmentCheckResType->EVSEStatus ); + } + grammarID = 1866; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2AlignmentCheckResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 676; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1866: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2AlignmentCheckResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 676; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 676: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckParameters), END_ELEMENT] */ + if ( iso2AlignmentCheckResType->AlignmentCheckParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2AlignmentCheckResType->AlignmentCheckParameters ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PowerDemandReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVTargetPower,"urn:iso:15118:2:2016:MsgBody":EVInputPower,"urn:iso:15118:2:2016:MsgBody":PowerDemandParameters{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2PowerDemandReqType(bitstream_t* stream, struct iso2PowerDemandReqType* iso2PowerDemandReqType) { + int grammarID = 1867; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1867: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetEnergyRequest)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2PowerDemandReqType->EVTargetEnergyRequest ); + } + grammarID = 1868; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1868: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetPower)] */ + if ( iso2PowerDemandReqType->EVMaximumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2PowerDemandReqType->EVMaximumEnergyRequest ); + } + grammarID = 1869; + } else if ( iso2PowerDemandReqType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2PowerDemandReqType->EVMinimumEnergyRequest ); + } + grammarID = 1870; + } else if ( iso2PowerDemandReqType->DisplayParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &iso2PowerDemandReqType->DisplayParameters ); + } + grammarID = 1871; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2PowerDemandReqType->EVTargetPower ); + } + grammarID = 1872; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1869: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetPower)] */ + if ( iso2PowerDemandReqType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2PowerDemandReqType->EVMinimumEnergyRequest ); + } + grammarID = 1870; + } else if ( iso2PowerDemandReqType->DisplayParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &iso2PowerDemandReqType->DisplayParameters ); + } + grammarID = 1871; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2PowerDemandReqType->EVTargetPower ); + } + grammarID = 1872; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1870: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetPower)] */ + if ( iso2PowerDemandReqType->DisplayParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &iso2PowerDemandReqType->DisplayParameters ); + } + grammarID = 1871; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2PowerDemandReqType->EVTargetPower ); + } + grammarID = 1872; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1871: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetPower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2PowerDemandReqType->EVTargetPower ); + } + grammarID = 1872; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1872: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVInputPower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2PowerDemandReqType->EVInputPower ); + } + grammarID = 1873; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1873: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandParameters), END_ELEMENT] */ + if ( iso2PowerDemandReqType->PowerDemandParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2PowerDemandReqType->PowerDemandParameters ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MinimumPMaxRequestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MinimumPMaxScheduleEntry{1-3})', derivedBy='RESTRICTION'. */ +static int encode_iso2MinimumPMaxRequestType(bitstream_t* stream, struct iso2MinimumPMaxRequestType* iso2MinimumPMaxRequestType) { + int grammarID = 1874; + int done = 0; + + unsigned int iso2MinimumPMaxRequestType_MinimumPMaxScheduleEntry_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 1874: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumPMaxScheduleEntry)] */ + if (iso2MinimumPMaxRequestType_MinimumPMaxScheduleEntry_currArrayIndex < iso2MinimumPMaxRequestType->MinimumPMaxScheduleEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PMaxScheduleEntryType(stream, &iso2MinimumPMaxRequestType->MinimumPMaxScheduleEntry.array [iso2MinimumPMaxRequestType_MinimumPMaxScheduleEntry_currArrayIndex++]); + } + grammarID = 1875; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1875: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumPMaxScheduleEntry), END_ELEMENT] */ + if (iso2MinimumPMaxRequestType_MinimumPMaxScheduleEntry_currArrayIndex < iso2MinimumPMaxRequestType->MinimumPMaxScheduleEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PMaxScheduleEntryType(stream, &iso2MinimumPMaxRequestType->MinimumPMaxScheduleEntry.array [iso2MinimumPMaxRequestType_MinimumPMaxScheduleEntry_currArrayIndex++]); + } + grammarID = 1876; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1876: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumPMaxScheduleEntry), END_ELEMENT] */ + if (iso2MinimumPMaxRequestType_MinimumPMaxScheduleEntry_currArrayIndex < iso2MinimumPMaxRequestType->MinimumPMaxScheduleEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PMaxScheduleEntryType(stream, &iso2MinimumPMaxRequestType->MinimumPMaxScheduleEntry.array [iso2MinimumPMaxRequestType_MinimumPMaxScheduleEntry_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,DisconnectChargingDeviceResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":EVSEElectricalChargingDeviceStatus,"urn:iso:15118:2:2016:MsgBody":EVSEMechanicalChargingDeviceStatus))', derivedBy='EXTENSION'. */ +static int encode_iso2DisconnectChargingDeviceResType(bitstream_t* stream, struct iso2DisconnectChargingDeviceResType* iso2DisconnectChargingDeviceResType) { + int grammarID = 591; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 591: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2DisconnectChargingDeviceResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 592; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 592: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( iso2DisconnectChargingDeviceResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2DisconnectChargingDeviceResType->EVSEStatus ); + } + grammarID = 593; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2DisconnectChargingDeviceResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 594; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 593: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2DisconnectChargingDeviceResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 594; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 594: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEElectricalChargingDeviceStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso2DisconnectChargingDeviceResType->EVSEElectricalChargingDeviceStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 595; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 595: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMechanicalChargingDeviceStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2DisconnectChargingDeviceResType->EVSEMechanicalChargingDeviceStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,SessionSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVCCID)', derivedBy='EXTENSION'. */ +static int encode_iso2SessionSetupReqType(bitstream_t* stream, struct iso2SessionSetupReqType* iso2SessionSetupReqType) { + int grammarID = 1877; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1877: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCCID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SessionSetupReqType->EVCCID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2SessionSetupReqType->EVCCID.bytes, iso2SessionSetupReqType->EVCCID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PaymentDetailsReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":eMAID,"urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain)', derivedBy='EXTENSION'. */ +static int encode_iso2PaymentDetailsReqType(bitstream_t* stream, struct iso2PaymentDetailsReqType* iso2PaymentDetailsReqType) { + int grammarID = 1878; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1878: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}eMAID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2PaymentDetailsReqType->eMAID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2PaymentDetailsReqType->eMAID.characters, iso2PaymentDetailsReqType->eMAID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1879; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1879: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureCertChain)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2CertificateChainType(stream, &iso2PaymentDetailsReqType->ContractSignatureCertChain ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,Generic_EVFinePositioningParametersType', base type name='EVFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":GenericParameters)', derivedBy='EXTENSION'. */ +static int encode_iso2Generic_EVFinePositioningParametersType(bitstream_t* stream, struct iso2Generic_EVFinePositioningParametersType* iso2Generic_EVFinePositioningParametersType) { + int grammarID = 1880; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1880: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}GenericParameters)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2Generic_EVFinePositioningParametersType->GenericParameters ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ConnectChargingDeviceReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVElectricalChargingDeviceStatus,"urn:iso:15118:2:2016:MsgBody":EVMechanicalChargingDeviceStatus)', derivedBy='EXTENSION'. */ +static int encode_iso2ConnectChargingDeviceReqType(bitstream_t* stream, struct iso2ConnectChargingDeviceReqType* iso2ConnectChargingDeviceReqType) { + int grammarID = 1496; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1496: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVElectricalChargingDeviceStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso2ConnectChargingDeviceReqType->EVElectricalChargingDeviceStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1497; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1497: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMechanicalChargingDeviceStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2ConnectChargingDeviceReqType->EVMechanicalChargingDeviceStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,AC_EVSEChargeParameterType', base type name='EVSEEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSENominalFrequency)', derivedBy='EXTENSION'. */ +static int encode_iso2AC_EVSEChargeParameterType(bitstream_t* stream, struct iso2AC_EVSEChargeParameterType* iso2AC_EVSEChargeParameterType) { + int grammarID = 1881; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1881: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVSEChargeParameterType->EVSEMaximumChargeCurrent ); + } + grammarID = 1882; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1882: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENominalVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVSEChargeParameterType->EVSENominalVoltage ); + } + grammarID = 58; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 58: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENominalFrequency)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2AC_EVSEChargeParameterType->EVSENominalFrequency ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SalesTariffEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":RelativeTimeInterval),("urn:iso:15118:2:2016:MsgDataTypes":EPriceLevel{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ConsumptionCost{0-3}))', derivedBy='EXTENSION'. */ +static int encode_iso2SalesTariffEntryType(bitstream_t* stream, struct iso2SalesTariffEntryType* iso2SalesTariffEntryType) { + int grammarID = 1883; + int done = 0; + + unsigned int iso2SalesTariffEntryType_ConsumptionCost_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 1883: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RelativeTimeInterval)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2RelativeTimeIntervalType(stream, &iso2SalesTariffEntryType->RelativeTimeInterval ); + } + grammarID = 1884; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1884: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ + if ( iso2SalesTariffEntryType->EPriceLevel_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SalesTariffEntryType->EPriceLevel - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1885; + } else if (iso2SalesTariffEntryType_ConsumptionCost_currArrayIndex < iso2SalesTariffEntryType->ConsumptionCost.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2ConsumptionCostType(stream, &iso2SalesTariffEntryType->ConsumptionCost.array [iso2SalesTariffEntryType_ConsumptionCost_currArrayIndex++]); + } + grammarID = 1886; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1885: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ + if (iso2SalesTariffEntryType_ConsumptionCost_currArrayIndex < iso2SalesTariffEntryType->ConsumptionCost.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ConsumptionCostType(stream, &iso2SalesTariffEntryType->ConsumptionCost.array [iso2SalesTariffEntryType_ConsumptionCost_currArrayIndex++]); + } + grammarID = 1886; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1886: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ + if (iso2SalesTariffEntryType_ConsumptionCost_currArrayIndex < iso2SalesTariffEntryType->ConsumptionCost.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ConsumptionCostType(stream, &iso2SalesTariffEntryType->ConsumptionCost.array [iso2SalesTariffEntryType_ConsumptionCost_currArrayIndex++]); + } + grammarID = 1887; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1887: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ + if (iso2SalesTariffEntryType_ConsumptionCost_currArrayIndex < iso2SalesTariffEntryType->ConsumptionCost.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ConsumptionCostType(stream, &iso2SalesTariffEntryType->ConsumptionCost.array [iso2SalesTariffEntryType_ConsumptionCost_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DC_EVSEBidirectionalParameterType', base type name='DC_EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2016:MsgDataTypes":EVSEEnergyToBeDelivered{0-1}),("urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumDischargePower,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMaximumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVSEMinimumDischargeCurrent))', derivedBy='EXTENSION'. */ +static int encode_iso2DC_EVSEBidirectionalParameterType(bitstream_t* stream, struct iso2DC_EVSEBidirectionalParameterType* iso2DC_EVSEBidirectionalParameterType) { + int grammarID = 1888; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1888: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargePower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEMaximumChargePower ); + } + grammarID = 1889; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1889: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEMaximumChargeCurrent ); + } + grammarID = 1890; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1890: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumChargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEMinimumChargeCurrent ); + } + grammarID = 1891; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1891: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEMaximumVoltage ); + } + grammarID = 1892; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1892: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEMinimumVoltage ); + } + grammarID = 1893; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1893: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEPeakCurrentRipple)] */ + if ( iso2DC_EVSEBidirectionalParameterType->EVSECurrentRegulationTolerance_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSECurrentRegulationTolerance ); + } + grammarID = 1894; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEPeakCurrentRipple ); + } + grammarID = 1895; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1894: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEPeakCurrentRipple)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEPeakCurrentRipple ); + } + grammarID = 1895; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1895: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumDischargePower)] */ + if ( iso2DC_EVSEBidirectionalParameterType->EVSEEnergyToBeDelivered_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEEnergyToBeDelivered ); + } + grammarID = 1896; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEMaximumDischargePower ); + } + grammarID = 1897; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1896: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumDischargePower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEMaximumDischargePower ); + } + grammarID = 1897; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1897: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumDischargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEMaximumDischargeCurrent ); + } + grammarID = 1898; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1898: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumDischargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVSEBidirectionalParameterType->EVSEMinimumDischargeCurrent ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso2CanonicalizationMethodType(bitstream_t* stream, struct iso2CanonicalizationMethodType* iso2CanonicalizationMethodType) { + int grammarID = 1899; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 1899: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2CanonicalizationMethodType->Algorithm.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2CanonicalizationMethodType->Algorithm.characters, iso2CanonicalizationMethodType->Algorithm.charactersLen); + } + } + grammarID = 684; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 684: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 685; + } else if ( iso2CanonicalizationMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso2CanonicalizationMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2CanonicalizationMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2CanonicalizationMethodType->ANY.characters, iso2CanonicalizationMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 685; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 685: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 685; + } else if ( iso2CanonicalizationMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso2CanonicalizationMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2CanonicalizationMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2CanonicalizationMethodType->ANY.characters, iso2CanonicalizationMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 685; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DisplayParametersType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":CurrentRange{0-1},"urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":MinimumSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ChargingPerformance{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToTargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToBulkSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":RemainingTimeToMinimumSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":ChargingComplete{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2016:MsgDataTypes":InletHot{0-1})', derivedBy='RESTRICTION'. */ +static int encode_iso2DisplayParametersType(bitstream_t* stream, struct iso2DisplayParametersType* iso2DisplayParametersType) { + int grammarID = 1900; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1900: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentRange), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingPerformance), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + if ( iso2DisplayParametersType->CurrentRange_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2DisplayParametersType->CurrentRange); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1901; + } else if ( iso2DisplayParametersType->CurrentSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->CurrentSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1902; + } else if ( iso2DisplayParametersType->TargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->TargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1903; + } else if ( iso2DisplayParametersType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1904; + } else if ( iso2DisplayParametersType->MinimumSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->MinimumSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1905; + } else if ( iso2DisplayParametersType->ChargingPerformance_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DisplayParametersType->ChargingPerformance ); + } + grammarID = 1906; + } else if ( iso2DisplayParametersType->RemainingTimeToTargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToTargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1907; + } else if ( iso2DisplayParametersType->RemainingTimeToBulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 7); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToBulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1908; + } else if ( iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 8); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToMinimumSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1909; + } else if ( iso2DisplayParametersType->ChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 9); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1910; + } else if ( iso2DisplayParametersType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 10); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1911; + } else if ( iso2DisplayParametersType->InletHot_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 11); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->InletHot); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 4, 12); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1901: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingPerformance), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + if ( iso2DisplayParametersType->CurrentSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->CurrentSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1902; + } else if ( iso2DisplayParametersType->TargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->TargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1903; + } else if ( iso2DisplayParametersType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1904; + } else if ( iso2DisplayParametersType->MinimumSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->MinimumSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1905; + } else if ( iso2DisplayParametersType->ChargingPerformance_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DisplayParametersType->ChargingPerformance ); + } + grammarID = 1906; + } else if ( iso2DisplayParametersType->RemainingTimeToTargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToTargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1907; + } else if ( iso2DisplayParametersType->RemainingTimeToBulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToBulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1908; + } else if ( iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 7); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToMinimumSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1909; + } else if ( iso2DisplayParametersType->ChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 8); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1910; + } else if ( iso2DisplayParametersType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 9); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1911; + } else if ( iso2DisplayParametersType->InletHot_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 10); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->InletHot); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 4, 11); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1902: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingPerformance), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + if ( iso2DisplayParametersType->TargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->TargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1903; + } else if ( iso2DisplayParametersType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1904; + } else if ( iso2DisplayParametersType->MinimumSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->MinimumSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1905; + } else if ( iso2DisplayParametersType->ChargingPerformance_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DisplayParametersType->ChargingPerformance ); + } + grammarID = 1906; + } else if ( iso2DisplayParametersType->RemainingTimeToTargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToTargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1907; + } else if ( iso2DisplayParametersType->RemainingTimeToBulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToBulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1908; + } else if ( iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToMinimumSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1909; + } else if ( iso2DisplayParametersType->ChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 7); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1910; + } else if ( iso2DisplayParametersType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 8); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1911; + } else if ( iso2DisplayParametersType->InletHot_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 9); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->InletHot); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 4, 10); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1903: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingPerformance), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + if ( iso2DisplayParametersType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1904; + } else if ( iso2DisplayParametersType->MinimumSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->MinimumSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1905; + } else if ( iso2DisplayParametersType->ChargingPerformance_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DisplayParametersType->ChargingPerformance ); + } + grammarID = 1906; + } else if ( iso2DisplayParametersType->RemainingTimeToTargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToTargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1907; + } else if ( iso2DisplayParametersType->RemainingTimeToBulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToBulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1908; + } else if ( iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToMinimumSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1909; + } else if ( iso2DisplayParametersType->ChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1910; + } else if ( iso2DisplayParametersType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 7); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1911; + } else if ( iso2DisplayParametersType->InletHot_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 8); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->InletHot); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 4, 9); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1904: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingPerformance), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + if ( iso2DisplayParametersType->MinimumSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->MinimumSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1905; + } else if ( iso2DisplayParametersType->ChargingPerformance_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DisplayParametersType->ChargingPerformance ); + } + grammarID = 1906; + } else if ( iso2DisplayParametersType->RemainingTimeToTargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToTargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1907; + } else if ( iso2DisplayParametersType->RemainingTimeToBulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToBulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1908; + } else if ( iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToMinimumSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1909; + } else if ( iso2DisplayParametersType->ChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1910; + } else if ( iso2DisplayParametersType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1911; + } else if ( iso2DisplayParametersType->InletHot_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 7); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->InletHot); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 4, 8); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1905: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingPerformance), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + if ( iso2DisplayParametersType->ChargingPerformance_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DisplayParametersType->ChargingPerformance ); + } + grammarID = 1906; + } else if ( iso2DisplayParametersType->RemainingTimeToTargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToTargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1907; + } else if ( iso2DisplayParametersType->RemainingTimeToBulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToBulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1908; + } else if ( iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToMinimumSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1909; + } else if ( iso2DisplayParametersType->ChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1910; + } else if ( iso2DisplayParametersType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1911; + } else if ( iso2DisplayParametersType->InletHot_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->InletHot); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 4, 7); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1906: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + if ( iso2DisplayParametersType->RemainingTimeToTargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToTargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1907; + } else if ( iso2DisplayParametersType->RemainingTimeToBulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToBulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1908; + } else if ( iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToMinimumSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1909; + } else if ( iso2DisplayParametersType->ChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1910; + } else if ( iso2DisplayParametersType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1911; + } else if ( iso2DisplayParametersType->InletHot_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->InletHot); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 6); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1907: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + if ( iso2DisplayParametersType->RemainingTimeToBulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToBulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1908; + } else if ( iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToMinimumSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1909; + } else if ( iso2DisplayParametersType->ChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1910; + } else if ( iso2DisplayParametersType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1911; + } else if ( iso2DisplayParametersType->InletHot_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->InletHot); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1908: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + if ( iso2DisplayParametersType->RemainingTimeToMinimumSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DisplayParametersType->RemainingTimeToMinimumSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1909; + } else if ( iso2DisplayParametersType->ChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1910; + } else if ( iso2DisplayParametersType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1911; + } else if ( iso2DisplayParametersType->InletHot_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->InletHot); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1909: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + if ( iso2DisplayParametersType->ChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1910; + } else if ( iso2DisplayParametersType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1911; + } else if ( iso2DisplayParametersType->InletHot_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->InletHot); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1910: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + if ( iso2DisplayParametersType->BulkChargingComplete_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1911; + } else if ( iso2DisplayParametersType->InletHot_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->InletHot); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1911: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), END_ELEMENT] */ + if ( iso2DisplayParametersType->InletHot_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2DisplayParametersType->InletHot); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DC_EVBidirectionalParameterType', base type name='DC_EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkSOC{0-1})),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumDischargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumDischargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":MinimumSOC{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2DC_EVBidirectionalParameterType(bitstream_t* stream, struct iso2DC_EVBidirectionalParameterType* iso2DC_EVBidirectionalParameterType) { + int grammarID = 1912; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1912: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, iso2DC_EVBidirectionalParameterType->DepartureTime); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1913; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1913: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent)] */ + if ( iso2DC_EVBidirectionalParameterType->EVMaximumChargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumChargePower ); + } + grammarID = 1914; + } else if ( iso2DC_EVBidirectionalParameterType->EVMinimumChargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumChargePower ); + } + grammarID = 1915; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumChargeCurrent ); + } + grammarID = 1916; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1914: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent)] */ + if ( iso2DC_EVBidirectionalParameterType->EVMinimumChargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumChargePower ); + } + grammarID = 1915; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumChargeCurrent ); + } + grammarID = 1916; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1915: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumChargeCurrent ); + } + grammarID = 1916; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1916: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumChargeCurrent ); + } + grammarID = 1917; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1917: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumVoltage ); + } + grammarID = 1918; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1918: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVTargetEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + if ( iso2DC_EVBidirectionalParameterType->EVTargetEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVTargetEnergyRequest ); + } + grammarID = 1919; + } else if ( iso2DC_EVBidirectionalParameterType->EVMaximumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumEnergyRequest ); + } + grammarID = 1920; + } else if ( iso2DC_EVBidirectionalParameterType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumEnergyRequest ); + } + grammarID = 1921; + } else if ( iso2DC_EVBidirectionalParameterType->CurrentSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVBidirectionalParameterType->CurrentSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1922; + } else if ( iso2DC_EVBidirectionalParameterType->TargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVBidirectionalParameterType->TargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1923; + } else if ( iso2DC_EVBidirectionalParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVBidirectionalParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1924; + } else if ( iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower ); + } + grammarID = 1925; + } else if ( iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 7); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower ); + } + grammarID = 1926; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 4, 8); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargeCurrent ); + } + grammarID = 1927; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1919: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + if ( iso2DC_EVBidirectionalParameterType->EVMaximumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumEnergyRequest ); + } + grammarID = 1920; + } else if ( iso2DC_EVBidirectionalParameterType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumEnergyRequest ); + } + grammarID = 1921; + } else if ( iso2DC_EVBidirectionalParameterType->CurrentSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVBidirectionalParameterType->CurrentSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1922; + } else if ( iso2DC_EVBidirectionalParameterType->TargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVBidirectionalParameterType->TargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1923; + } else if ( iso2DC_EVBidirectionalParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVBidirectionalParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1924; + } else if ( iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower ); + } + grammarID = 1925; + } else if ( iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower ); + } + grammarID = 1926; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 4, 7); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargeCurrent ); + } + grammarID = 1927; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1920: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + if ( iso2DC_EVBidirectionalParameterType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumEnergyRequest ); + } + grammarID = 1921; + } else if ( iso2DC_EVBidirectionalParameterType->CurrentSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVBidirectionalParameterType->CurrentSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1922; + } else if ( iso2DC_EVBidirectionalParameterType->TargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVBidirectionalParameterType->TargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1923; + } else if ( iso2DC_EVBidirectionalParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVBidirectionalParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1924; + } else if ( iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower ); + } + grammarID = 1925; + } else if ( iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower ); + } + grammarID = 1926; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 6); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargeCurrent ); + } + grammarID = 1927; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1921: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + if ( iso2DC_EVBidirectionalParameterType->CurrentSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVBidirectionalParameterType->CurrentSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1922; + } else if ( iso2DC_EVBidirectionalParameterType->TargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVBidirectionalParameterType->TargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1923; + } else if ( iso2DC_EVBidirectionalParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVBidirectionalParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1924; + } else if ( iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower ); + } + grammarID = 1925; + } else if ( iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower ); + } + grammarID = 1926; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargeCurrent ); + } + grammarID = 1927; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1922: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + if ( iso2DC_EVBidirectionalParameterType->TargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVBidirectionalParameterType->TargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1923; + } else if ( iso2DC_EVBidirectionalParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVBidirectionalParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1924; + } else if ( iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower ); + } + grammarID = 1925; + } else if ( iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower ); + } + grammarID = 1926; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargeCurrent ); + } + grammarID = 1927; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1923: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + if ( iso2DC_EVBidirectionalParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVBidirectionalParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1924; + } else if ( iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower ); + } + grammarID = 1925; + } else if ( iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower ); + } + grammarID = 1926; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargeCurrent ); + } + grammarID = 1927; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1924: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + if ( iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargePower ); + } + grammarID = 1925; + } else if ( iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower ); + } + grammarID = 1926; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargeCurrent ); + } + grammarID = 1927; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1925: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + if ( iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumDischargePower ); + } + grammarID = 1926; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargeCurrent ); + } + grammarID = 1927; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1926: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMaximumDischargeCurrent ); + } + grammarID = 1927; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1927: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumDischargeCurrent ); + } + grammarID = 1928; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1928: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVBidirectionalParameterType->EVMinimumVoltage ); + } + grammarID = 1929; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1929: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC), END_ELEMENT] */ + if ( iso2DC_EVBidirectionalParameterType->MinimumSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVBidirectionalParameterType->MinimumSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PaymentServiceSelectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":SelectedPaymentOption,"urn:iso:15118:2:2016:MsgBody":SelectedEnergyTransferService,"urn:iso:15118:2:2016:MsgBody":SelectedVASList{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso2PaymentServiceSelectionReqType(bitstream_t* stream, struct iso2PaymentServiceSelectionReqType* iso2PaymentServiceSelectionReqType) { + int grammarID = 1930; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1930: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedPaymentOption)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso2PaymentServiceSelectionReqType->SelectedPaymentOption); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1931; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1931: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedEnergyTransferService)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &iso2PaymentServiceSelectionReqType->SelectedEnergyTransferService ); + } + grammarID = 1932; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1932: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedVASList), END_ELEMENT] */ + if ( iso2PaymentServiceSelectionReqType->SelectedVASList_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SelectedServiceListType(stream, &iso2PaymentServiceSelectionReqType->SelectedVASList ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MagneticVectorType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":GAID,"urn:iso:15118:2:2016:MsgDataTypes":Distance,"urn:iso:15118:2:2016:MsgDataTypes":AngleGAtoVA,"urn:iso:15118:2:2016:MsgDataTypes":RotationVAtoGA,"urn:iso:15118:2:2016:MsgDataTypes":FODStatus)', derivedBy='RESTRICTION'. */ +static int encode_iso2MagneticVectorType(bitstream_t* stream, struct iso2MagneticVectorType* iso2MagneticVectorType) { + int grammarID = 1933; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1933: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}GAID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2MagneticVectorType->GAID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2MagneticVectorType->GAID.characters, iso2MagneticVectorType->GAID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1934; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1934: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Distance)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2MagneticVectorType->Distance); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1935; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1935: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AngleGAtoVA)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2MagneticVectorType->AngleGAtoVA ); + } + grammarID = 1936; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1936: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RotationVAtoGA)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2MagneticVectorType->RotationVAtoGA ); + } + grammarID = 1937; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1937: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FODStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2MagneticVectorType->FODStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Exponent,"urn:iso:15118:2:2016:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */ +static int encode_iso2PhysicalValueType(bitstream_t* stream, struct iso2PhysicalValueType* iso2PhysicalValueType) { + int grammarID = 1938; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1938: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Exponent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 3, (uint32_t)(iso2PhysicalValueType->Exponent + 3)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1939; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1939: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Value)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, iso2PhysicalValueType->Value); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,SystemStatusReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":OperationMode,"urn:iso:15118:2:2016:MsgBody":EVMechanicalChargingDeviceStatus)', derivedBy='EXTENSION'. */ +static int encode_iso2SystemStatusReqType(bitstream_t* stream, struct iso2SystemStatusReqType* iso2SystemStatusReqType) { + int grammarID = 1940; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1940: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OperationMode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso2SystemStatusReqType->OperationMode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1497; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1497: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMechanicalChargingDeviceStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2SystemStatusReqType->EVMechanicalChargingDeviceStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,SystemStatusResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":OperationMode,"urn:iso:15118:2:2016:MsgBody":EVSEMechanicalChargingDeviceStatus))', derivedBy='EXTENSION'. */ +static int encode_iso2SystemStatusResType(bitstream_t* stream, struct iso2SystemStatusResType* iso2SystemStatusResType) { + int grammarID = 1941; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1941: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2SystemStatusResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1942; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1942: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OperationMode)] */ + if ( iso2SystemStatusResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2SystemStatusResType->EVSEStatus ); + } + grammarID = 1943; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso2SystemStatusResType->OperationMode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 595; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1943: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OperationMode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso2SystemStatusResType->OperationMode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 595; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 595: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMechanicalChargingDeviceStatus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2SystemStatusResType->EVSEMechanicalChargingDeviceStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEFinePositioningSetupParametersType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_iso2EVSEFinePositioningSetupParametersType(bitstream_t* stream, struct iso2EVSEFinePositioningSetupParametersType* iso2EVSEFinePositioningSetupParametersType) { + int grammarID = 674; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 674: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,V2GResponseType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso2V2GResponseType(bitstream_t* stream, struct iso2V2GResponseType* iso2V2GResponseType) { + int grammarID = 599; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 599: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2V2GResponseType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 600; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 600: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), END_ELEMENT] */ + if ( iso2V2GResponseType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2V2GResponseType->EVSEStatus ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,BodyType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":BodyElement)', derivedBy='RESTRICTION'. */ +static int encode_iso2BodyType(bitstream_t* stream, struct iso2BodyType* iso2BodyType) { + int grammarID = 1944; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1944: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GResponse), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionRes)] */ + if ( iso2BodyType->AC_BidirectionalControlReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 0); + if(errn == 0) { + errn = encode_iso2AC_BidirectionalControlReqType(stream, &iso2BodyType->AC_BidirectionalControlReq ); + } + grammarID = 3; + } else if ( iso2BodyType->AC_BidirectionalControlRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 1); + if(errn == 0) { + errn = encode_iso2AC_BidirectionalControlResType(stream, &iso2BodyType->AC_BidirectionalControlRes ); + } + grammarID = 3; + } else if ( iso2BodyType->AlignmentCheckReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 2); + if(errn == 0) { + errn = encode_iso2AlignmentCheckReqType(stream, &iso2BodyType->AlignmentCheckReq ); + } + grammarID = 3; + } else if ( iso2BodyType->AlignmentCheckRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 3); + if(errn == 0) { + errn = encode_iso2AlignmentCheckResType(stream, &iso2BodyType->AlignmentCheckRes ); + } + grammarID = 3; + } else if ( iso2BodyType->AuthorizationReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 4); + if(errn == 0) { + errn = encode_iso2AuthorizationReqType(stream, &iso2BodyType->AuthorizationReq ); + } + grammarID = 3; + } else if ( iso2BodyType->AuthorizationRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 5); + if(errn == 0) { + errn = encode_iso2AuthorizationResType(stream, &iso2BodyType->AuthorizationRes ); + } + grammarID = 3; + } else if ( iso2BodyType->BodyElement_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 6); + if(errn == 0) { + errn = encode_iso2BodyBaseType(stream, &iso2BodyType->BodyElement ); + } + grammarID = 3; + } else if ( iso2BodyType->CableCheckReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 7); + if(errn == 0) { + errn = encode_iso2CableCheckReqType(stream, &iso2BodyType->CableCheckReq ); + } + grammarID = 3; + } else if ( iso2BodyType->CableCheckRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 8); + if(errn == 0) { + errn = encode_iso2CableCheckResType(stream, &iso2BodyType->CableCheckRes ); + } + grammarID = 3; + } else if ( iso2BodyType->CertificateInstallationReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 9); + if(errn == 0) { + errn = encode_iso2CertificateInstallationReqType(stream, &iso2BodyType->CertificateInstallationReq ); + } + grammarID = 3; + } else if ( iso2BodyType->CertificateInstallationRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 10); + if(errn == 0) { + errn = encode_iso2CertificateInstallationResType(stream, &iso2BodyType->CertificateInstallationRes ); + } + grammarID = 3; + } else if ( iso2BodyType->CertificateUpdateReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 11); + if(errn == 0) { + errn = encode_iso2CertificateUpdateReqType(stream, &iso2BodyType->CertificateUpdateReq ); + } + grammarID = 3; + } else if ( iso2BodyType->CertificateUpdateRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 12); + if(errn == 0) { + errn = encode_iso2CertificateUpdateResType(stream, &iso2BodyType->CertificateUpdateRes ); + } + grammarID = 3; + } else if ( iso2BodyType->ChargeParameterDiscoveryReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 13); + if(errn == 0) { + errn = encode_iso2ChargeParameterDiscoveryReqType(stream, &iso2BodyType->ChargeParameterDiscoveryReq ); + } + grammarID = 3; + } else if ( iso2BodyType->ChargeParameterDiscoveryRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 14); + if(errn == 0) { + errn = encode_iso2ChargeParameterDiscoveryResType(stream, &iso2BodyType->ChargeParameterDiscoveryRes ); + } + grammarID = 3; + } else if ( iso2BodyType->ChargingStatusReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 15); + if(errn == 0) { + errn = encode_iso2ChargingStatusReqType(stream, &iso2BodyType->ChargingStatusReq ); + } + grammarID = 3; + } else if ( iso2BodyType->ChargingStatusRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 16); + if(errn == 0) { + errn = encode_iso2ChargingStatusResType(stream, &iso2BodyType->ChargingStatusRes ); + } + grammarID = 3; + } else if ( iso2BodyType->ConnectChargingDeviceReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 17); + if(errn == 0) { + errn = encode_iso2ConnectChargingDeviceReqType(stream, &iso2BodyType->ConnectChargingDeviceReq ); + } + grammarID = 3; + } else if ( iso2BodyType->ConnectChargingDeviceRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 18); + if(errn == 0) { + errn = encode_iso2ConnectChargingDeviceResType(stream, &iso2BodyType->ConnectChargingDeviceRes ); + } + grammarID = 3; + } else if ( iso2BodyType->CurrentDemandReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 19); + if(errn == 0) { + errn = encode_iso2CurrentDemandReqType(stream, &iso2BodyType->CurrentDemandReq ); + } + grammarID = 3; + } else if ( iso2BodyType->CurrentDemandRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 20); + if(errn == 0) { + errn = encode_iso2CurrentDemandResType(stream, &iso2BodyType->CurrentDemandRes ); + } + grammarID = 3; + } else if ( iso2BodyType->DC_BidirectionalControlReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 21); + if(errn == 0) { + errn = encode_iso2DC_BidirectionalControlReqType(stream, &iso2BodyType->DC_BidirectionalControlReq ); + } + grammarID = 3; + } else if ( iso2BodyType->DC_BidirectionalControlRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 22); + if(errn == 0) { + errn = encode_iso2DC_BidirectionalControlResType(stream, &iso2BodyType->DC_BidirectionalControlRes ); + } + grammarID = 3; + } else if ( iso2BodyType->DisconnectChargingDeviceReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 23); + if(errn == 0) { + errn = encode_iso2DisconnectChargingDeviceReqType(stream, &iso2BodyType->DisconnectChargingDeviceReq ); + } + grammarID = 3; + } else if ( iso2BodyType->DisconnectChargingDeviceRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 24); + if(errn == 0) { + errn = encode_iso2DisconnectChargingDeviceResType(stream, &iso2BodyType->DisconnectChargingDeviceRes ); + } + grammarID = 3; + } else if ( iso2BodyType->FinePositioningReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 25); + if(errn == 0) { + errn = encode_iso2FinePositioningReqType(stream, &iso2BodyType->FinePositioningReq ); + } + grammarID = 3; + } else if ( iso2BodyType->FinePositioningRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 26); + if(errn == 0) { + errn = encode_iso2FinePositioningResType(stream, &iso2BodyType->FinePositioningRes ); + } + grammarID = 3; + } else if ( iso2BodyType->FinePositioningSetupReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 27); + if(errn == 0) { + errn = encode_iso2FinePositioningSetupReqType(stream, &iso2BodyType->FinePositioningSetupReq ); + } + grammarID = 3; + } else if ( iso2BodyType->FinePositioningSetupRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 28); + if(errn == 0) { + errn = encode_iso2FinePositioningSetupResType(stream, &iso2BodyType->FinePositioningSetupRes ); + } + grammarID = 3; + } else if ( iso2BodyType->MeteringReceiptReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 29); + if(errn == 0) { + errn = encode_iso2MeteringReceiptReqType(stream, &iso2BodyType->MeteringReceiptReq ); + } + grammarID = 3; + } else if ( iso2BodyType->MeteringReceiptRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 30); + if(errn == 0) { + errn = encode_iso2MeteringReceiptResType(stream, &iso2BodyType->MeteringReceiptRes ); + } + grammarID = 3; + } else if ( iso2BodyType->PairingReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 31); + if(errn == 0) { + errn = encode_iso2PairingReqType(stream, &iso2BodyType->PairingReq ); + } + grammarID = 3; + } else if ( iso2BodyType->PairingRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 32); + if(errn == 0) { + errn = encode_iso2PairingResType(stream, &iso2BodyType->PairingRes ); + } + grammarID = 3; + } else if ( iso2BodyType->PaymentDetailsReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 33); + if(errn == 0) { + errn = encode_iso2PaymentDetailsReqType(stream, &iso2BodyType->PaymentDetailsReq ); + } + grammarID = 3; + } else if ( iso2BodyType->PaymentDetailsRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 34); + if(errn == 0) { + errn = encode_iso2PaymentDetailsResType(stream, &iso2BodyType->PaymentDetailsRes ); + } + grammarID = 3; + } else if ( iso2BodyType->PaymentServiceSelectionReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 35); + if(errn == 0) { + errn = encode_iso2PaymentServiceSelectionReqType(stream, &iso2BodyType->PaymentServiceSelectionReq ); + } + grammarID = 3; + } else if ( iso2BodyType->PaymentServiceSelectionRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 36); + if(errn == 0) { + errn = encode_iso2PaymentServiceSelectionResType(stream, &iso2BodyType->PaymentServiceSelectionRes ); + } + grammarID = 3; + } else if ( iso2BodyType->PowerDeliveryReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 37); + if(errn == 0) { + errn = encode_iso2PowerDeliveryReqType(stream, &iso2BodyType->PowerDeliveryReq ); + } + grammarID = 3; + } else if ( iso2BodyType->PowerDeliveryRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 38); + if(errn == 0) { + errn = encode_iso2PowerDeliveryResType(stream, &iso2BodyType->PowerDeliveryRes ); + } + grammarID = 3; + } else if ( iso2BodyType->PowerDemandReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 39); + if(errn == 0) { + errn = encode_iso2PowerDemandReqType(stream, &iso2BodyType->PowerDemandReq ); + } + grammarID = 3; + } else if ( iso2BodyType->PowerDemandRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 40); + if(errn == 0) { + errn = encode_iso2PowerDemandResType(stream, &iso2BodyType->PowerDemandRes ); + } + grammarID = 3; + } else if ( iso2BodyType->PreChargeReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 41); + if(errn == 0) { + errn = encode_iso2PreChargeReqType(stream, &iso2BodyType->PreChargeReq ); + } + grammarID = 3; + } else if ( iso2BodyType->PreChargeRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 42); + if(errn == 0) { + errn = encode_iso2PreChargeResType(stream, &iso2BodyType->PreChargeRes ); + } + grammarID = 3; + } else if ( iso2BodyType->ServiceDetailReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 43); + if(errn == 0) { + errn = encode_iso2ServiceDetailReqType(stream, &iso2BodyType->ServiceDetailReq ); + } + grammarID = 3; + } else if ( iso2BodyType->ServiceDetailRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 44); + if(errn == 0) { + errn = encode_iso2ServiceDetailResType(stream, &iso2BodyType->ServiceDetailRes ); + } + grammarID = 3; + } else if ( iso2BodyType->ServiceDiscoveryReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 45); + if(errn == 0) { + errn = encode_iso2ServiceDiscoveryReqType(stream, &iso2BodyType->ServiceDiscoveryReq ); + } + grammarID = 3; + } else if ( iso2BodyType->ServiceDiscoveryRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 46); + if(errn == 0) { + errn = encode_iso2ServiceDiscoveryResType(stream, &iso2BodyType->ServiceDiscoveryRes ); + } + grammarID = 3; + } else if ( iso2BodyType->SessionSetupReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 47); + if(errn == 0) { + errn = encode_iso2SessionSetupReqType(stream, &iso2BodyType->SessionSetupReq ); + } + grammarID = 3; + } else if ( iso2BodyType->SessionSetupRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 48); + if(errn == 0) { + errn = encode_iso2SessionSetupResType(stream, &iso2BodyType->SessionSetupRes ); + } + grammarID = 3; + } else if ( iso2BodyType->SessionStopReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 49); + if(errn == 0) { + errn = encode_iso2SessionStopReqType(stream, &iso2BodyType->SessionStopReq ); + } + grammarID = 3; + } else if ( iso2BodyType->SessionStopRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 50); + if(errn == 0) { + errn = encode_iso2SessionStopResType(stream, &iso2BodyType->SessionStopRes ); + } + grammarID = 3; + } else if ( iso2BodyType->SystemStatusReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 51); + if(errn == 0) { + errn = encode_iso2SystemStatusReqType(stream, &iso2BodyType->SystemStatusReq ); + } + grammarID = 3; + } else if ( iso2BodyType->SystemStatusRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 52); + if(errn == 0) { + errn = encode_iso2SystemStatusResType(stream, &iso2BodyType->SystemStatusRes ); + } + grammarID = 3; + } else if ( iso2BodyType->V2GRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 53); + if(errn == 0) { + errn = encode_iso2BodyBaseType(stream, &iso2BodyType->V2GRequest ); + } + grammarID = 3; + } else if ( iso2BodyType->V2GResponse_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 54); + if(errn == 0) { + errn = encode_iso2V2GResponseType(stream, &iso2BodyType->V2GResponse ); + } + grammarID = 3; + } else if ( iso2BodyType->VehicleCheckInReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 55); + if(errn == 0) { + errn = encode_iso2VehicleCheckInReqType(stream, &iso2BodyType->VehicleCheckInReq ); + } + grammarID = 3; + } else if ( iso2BodyType->VehicleCheckInRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 56); + if(errn == 0) { + errn = encode_iso2VehicleCheckInResType(stream, &iso2BodyType->VehicleCheckInRes ); + } + grammarID = 3; + } else if ( iso2BodyType->VehicleCheckOutReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 57); + if(errn == 0) { + errn = encode_iso2VehicleCheckOutReqType(stream, &iso2BodyType->VehicleCheckOutReq ); + } + grammarID = 3; + } else if ( iso2BodyType->VehicleCheckOutRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 58); + if(errn == 0) { + errn = encode_iso2VehicleCheckOutResType(stream, &iso2BodyType->VehicleCheckOutRes ); + } + grammarID = 3; + } else if ( iso2BodyType->WeldingDetectionReq_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 59); + if(errn == 0) { + errn = encode_iso2WeldingDetectionReqType(stream, &iso2BodyType->WeldingDetectionReq ); + } + grammarID = 3; + } else if ( iso2BodyType->WeldingDetectionRes_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 6, 60); + if(errn == 0) { + errn = encode_iso2WeldingDetectionResType(stream, &iso2BodyType->WeldingDetectionRes ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PreChargeResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage))', derivedBy='EXTENSION'. */ +static int encode_iso2PreChargeResType(bitstream_t* stream, struct iso2PreChargeResType* iso2PreChargeResType) { + int grammarID = 596; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 596: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2PreChargeResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 597; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 597: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentVoltage)] */ + if ( iso2PreChargeResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2PreChargeResType->EVSEStatus ); + } + grammarID = 598; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2PreChargeResType->EVSEPresentVoltage ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 598: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2PreChargeResType->EVSEPresentVoltage ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEFinePositioningParametersType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_iso2EVSEFinePositioningParametersType(bitstream_t* stream, struct iso2EVSEFinePositioningParametersType* iso2EVSEFinePositioningParametersType) { + int grammarID = 674; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 674: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PaymentServiceSelectionResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso2PaymentServiceSelectionResType(bitstream_t* stream, struct iso2PaymentServiceSelectionResType* iso2PaymentServiceSelectionResType) { + int grammarID = 599; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 599: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2PaymentServiceSelectionResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 600; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 600: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), END_ELEMENT] */ + if ( iso2PaymentServiceSelectionResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2PaymentServiceSelectionResType->EVSEStatus ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso2DigestMethodType(bitstream_t* stream, struct iso2DigestMethodType* iso2DigestMethodType) { + int grammarID = 1899; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 1899: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DigestMethodType->Algorithm.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2DigestMethodType->Algorithm.characters, iso2DigestMethodType->Algorithm.charactersLen); + } + } + grammarID = 684; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 684: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 685; + } else if ( iso2DigestMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso2DigestMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DigestMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2DigestMethodType->ANY.characters, iso2DigestMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 685; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 685: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 685; + } else if ( iso2DigestMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso2DigestMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DigestMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2DigestMethodType->ANY.characters, iso2DigestMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 685; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,TargetPositionType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":TargetOffsetX,"urn:iso:15118:2:2016:MsgDataTypes":TargetOffsetY)', derivedBy='RESTRICTION'. */ +static int encode_iso2TargetPositionType(bitstream_t* stream, struct iso2TargetPositionType* iso2TargetPositionType) { + int grammarID = 1945; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1945: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetOffsetX)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2TargetPositionType->TargetOffsetX); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1946; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1946: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetOffsetY)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2TargetPositionType->TargetOffsetY); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,LFA_EVFinePositioningParametersType', base type name='EVFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NumberOfSignalPackages,"urn:iso:15118:2:2016:MsgDataTypes":SensorPackageList)', derivedBy='EXTENSION'. */ +static int encode_iso2LFA_EVFinePositioningParametersType(bitstream_t* stream, struct iso2LFA_EVFinePositioningParametersType* iso2LFA_EVFinePositioningParametersType) { + int grammarID = 670; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 670: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSignalPackages)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2LFA_EVFinePositioningParametersType->NumberOfSignalPackages - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 671; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 671: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackageList)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2SensorPackageListType(stream, &iso2LFA_EVFinePositioningParametersType->SensorPackageList ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DC_EVChargeParameterType', base type name='EVEnergyTransferParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime),("urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargePower{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumChargeCurrent,"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumVoltage,"urn:iso:15118:2:2016:MsgDataTypes":EVTargetEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgDataTypes":CurrentSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":TargetSOC{0-1},"urn:iso:15118:2:2016:MsgDataTypes":BulkSOC{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2DC_EVChargeParameterType(bitstream_t* stream, struct iso2DC_EVChargeParameterType* iso2DC_EVChargeParameterType) { + int grammarID = 1947; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1947: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, iso2DC_EVChargeParameterType->DepartureTime); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1948; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1948: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent)] */ + if ( iso2DC_EVChargeParameterType->EVMaximumChargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMaximumChargePower ); + } + grammarID = 1949; + } else if ( iso2DC_EVChargeParameterType->EVMinimumChargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMinimumChargePower ); + } + grammarID = 1950; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMaximumChargeCurrent ); + } + grammarID = 1951; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1949: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent)] */ + if ( iso2DC_EVChargeParameterType->EVMinimumChargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMinimumChargePower ); + } + grammarID = 1950; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMaximumChargeCurrent ); + } + grammarID = 1951; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1950: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMaximumChargeCurrent ); + } + grammarID = 1951; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1951: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargeCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMinimumChargeCurrent ); + } + grammarID = 1952; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1952: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMaximumVoltage ); + } + grammarID = 1953; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1953: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVTargetEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), END_ELEMENT] */ + if ( iso2DC_EVChargeParameterType->EVTargetEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVTargetEnergyRequest ); + } + grammarID = 1954; + } else if ( iso2DC_EVChargeParameterType->EVMaximumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMaximumEnergyRequest ); + } + grammarID = 1955; + } else if ( iso2DC_EVChargeParameterType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMinimumEnergyRequest ); + } + grammarID = 1956; + } else if ( iso2DC_EVChargeParameterType->CurrentSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVChargeParameterType->CurrentSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1957; + } else if ( iso2DC_EVChargeParameterType->TargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVChargeParameterType->TargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1958; + } else if ( iso2DC_EVChargeParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVChargeParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 6); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1954: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), END_ELEMENT] */ + if ( iso2DC_EVChargeParameterType->EVMaximumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMaximumEnergyRequest ); + } + grammarID = 1955; + } else if ( iso2DC_EVChargeParameterType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMinimumEnergyRequest ); + } + grammarID = 1956; + } else if ( iso2DC_EVChargeParameterType->CurrentSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVChargeParameterType->CurrentSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1957; + } else if ( iso2DC_EVChargeParameterType->TargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVChargeParameterType->TargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1958; + } else if ( iso2DC_EVChargeParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVChargeParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1955: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), END_ELEMENT] */ + if ( iso2DC_EVChargeParameterType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2DC_EVChargeParameterType->EVMinimumEnergyRequest ); + } + grammarID = 1956; + } else if ( iso2DC_EVChargeParameterType->CurrentSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVChargeParameterType->CurrentSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1957; + } else if ( iso2DC_EVChargeParameterType->TargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVChargeParameterType->TargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1958; + } else if ( iso2DC_EVChargeParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVChargeParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1956: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), END_ELEMENT] */ + if ( iso2DC_EVChargeParameterType->CurrentSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVChargeParameterType->CurrentSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1957; + } else if ( iso2DC_EVChargeParameterType->TargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVChargeParameterType->TargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1958; + } else if ( iso2DC_EVChargeParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVChargeParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1957: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), END_ELEMENT] */ + if ( iso2DC_EVChargeParameterType->TargetSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVChargeParameterType->TargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1958; + } else if ( iso2DC_EVChargeParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVChargeParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1958: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), END_ELEMENT] */ + if ( iso2DC_EVChargeParameterType->BulkSOC_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso2DC_EVChargeParameterType->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ServiceDetailReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":ServiceID)', derivedBy='EXTENSION'. */ +static int encode_iso2ServiceDetailReqType(bitstream_t* stream, struct iso2ServiceDetailReqType* iso2ServiceDetailReqType) { + int grammarID = 1959; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1959: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2ServiceDetailReqType->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PreChargeReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2016:MsgBody":EVTargetCurrent)', derivedBy='EXTENSION'. */ +static int encode_iso2PreChargeReqType(bitstream_t* stream, struct iso2PreChargeReqType* iso2PreChargeReqType) { + int grammarID = 1960; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1960: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2PreChargeReqType->EVTargetVoltage ); + } + grammarID = 1961; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1961: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2PreChargeReqType->EVTargetCurrent ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ManifestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso2ManifestType(bitstream_t* stream, struct iso2ManifestType* iso2ManifestType) { + int grammarID = 1962; + int done = 0; + + unsigned int iso2ManifestType_Reference_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 1962: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + if ( iso2ManifestType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ManifestType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ManifestType->Id.characters, iso2ManifestType->Id.charactersLen); + } + } + grammarID = 1963; + } else if (iso2ManifestType_Reference_currArrayIndex < iso2ManifestType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2ReferenceType(stream, &iso2ManifestType->Reference.array [iso2ManifestType_Reference_currArrayIndex++]); + } + grammarID = 1964; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1963: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + if (iso2ManifestType_Reference_currArrayIndex < iso2ManifestType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2ReferenceType(stream, &iso2ManifestType->Reference.array [iso2ManifestType_Reference_currArrayIndex++]); + } + grammarID = 1964; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1964: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ + if (iso2ManifestType_Reference_currArrayIndex < iso2ManifestType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ReferenceType(stream, &iso2ManifestType->Reference.array [iso2ManifestType_Reference_currArrayIndex++]); + } + grammarID = 1964; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDef,#AnonType_V2G_Message', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDef":Header,"urn:iso:15118:2:2016:MsgDef":Body)', derivedBy='RESTRICTION'. */ +static int encode_iso2AnonType_V2G_Message(bitstream_t* stream, struct iso2AnonType_V2G_Message* iso2AnonType_V2G_Message) { + int grammarID = 1965; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1965: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDef}Header)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2MessageHeaderType(stream, &iso2AnonType_V2G_Message->Header ); + } + grammarID = 1966; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1966: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDef}Body)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2BodyType(stream, &iso2AnonType_V2G_Message->Body ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SelectedServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SelectedService{1-16})', derivedBy='RESTRICTION'. */ +static int encode_iso2SelectedServiceListType(bitstream_t* stream, struct iso2SelectedServiceListType* iso2SelectedServiceListType) { + int grammarID = 1967; + int done = 0; + + unsigned int iso2SelectedServiceListType_SelectedService_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 1967: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService)] */ + if (iso2SelectedServiceListType_SelectedService_currArrayIndex < iso2SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array [iso2SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 1968; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1968: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso2SelectedServiceListType_SelectedService_currArrayIndex < iso2SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array [iso2SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 1969; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1969: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso2SelectedServiceListType_SelectedService_currArrayIndex < iso2SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array [iso2SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 1970; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1970: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso2SelectedServiceListType_SelectedService_currArrayIndex < iso2SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array [iso2SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 1971; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1971: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso2SelectedServiceListType_SelectedService_currArrayIndex < iso2SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array [iso2SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 1972; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1972: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso2SelectedServiceListType_SelectedService_currArrayIndex < iso2SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array [iso2SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 1973; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1973: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso2SelectedServiceListType_SelectedService_currArrayIndex < iso2SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array [iso2SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 1974; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1974: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso2SelectedServiceListType_SelectedService_currArrayIndex < iso2SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array [iso2SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 1975; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1975: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso2SelectedServiceListType_SelectedService_currArrayIndex < iso2SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array [iso2SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 1976; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1976: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso2SelectedServiceListType_SelectedService_currArrayIndex < iso2SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array [iso2SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 1977; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1977: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso2SelectedServiceListType_SelectedService_currArrayIndex < iso2SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array [iso2SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 1978; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1978: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso2SelectedServiceListType_SelectedService_currArrayIndex < iso2SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array [iso2SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 1979; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1979: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso2SelectedServiceListType_SelectedService_currArrayIndex < iso2SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array [iso2SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 1980; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1980: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso2SelectedServiceListType_SelectedService_currArrayIndex < iso2SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array [iso2SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 1981; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1981: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso2SelectedServiceListType_SelectedService_currArrayIndex < iso2SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array [iso2SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 1982; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1982: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), END_ELEMENT] */ + if (iso2SelectedServiceListType_SelectedService_currArrayIndex < iso2SelectedServiceListType->SelectedService.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &iso2SelectedServiceListType->SelectedService.array [iso2SelectedServiceListType_SelectedService_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,Generic_EVSEFinePositioningParametersType', base type name='EVSEFinePositioningParametersType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":GenericParameters)', derivedBy='EXTENSION'. */ +static int encode_iso2Generic_EVSEFinePositioningParametersType(bitstream_t* stream, struct iso2Generic_EVSEFinePositioningParametersType* iso2Generic_EVSEFinePositioningParametersType) { + int grammarID = 1880; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1880: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}GenericParameters)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2Generic_EVSEFinePositioningParametersType->GenericParameters ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,CartesianCoordinatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":XCoordinate,"urn:iso:15118:2:2016:MsgDataTypes":YCoordinate,"urn:iso:15118:2:2016:MsgDataTypes":ZCoordinate)', derivedBy='RESTRICTION'. */ +static int encode_iso2CartesianCoordinatesType(bitstream_t* stream, struct iso2CartesianCoordinatesType* iso2CartesianCoordinatesType) { + int grammarID = 1983; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 1983: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}XCoordinate)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, iso2CartesianCoordinatesType->XCoordinate); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1984; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1984: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}YCoordinate)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, iso2CartesianCoordinatesType->YCoordinate); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1985; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1985: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ZCoordinate)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, iso2CartesianCoordinatesType->ZCoordinate); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_iso2KeyInfoType(bitstream_t* stream, struct iso2KeyInfoType* iso2KeyInfoType) { + int grammarID = 1986; + int done = 0; + int wcDone = 0; + + unsigned int iso2KeyInfoType_KeyName_currArrayIndex = 0; + unsigned int iso2KeyInfoType_KeyValue_currArrayIndex = 0; + unsigned int iso2KeyInfoType_RetrievalMethod_currArrayIndex = 0; + unsigned int iso2KeyInfoType_X509Data_currArrayIndex = 0; + unsigned int iso2KeyInfoType_PGPData_currArrayIndex = 0; + unsigned int iso2KeyInfoType_SPKIData_currArrayIndex = 0; + unsigned int iso2KeyInfoType_MgmtData_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 1986: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if ( iso2KeyInfoType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2KeyInfoType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2KeyInfoType->Id.characters, iso2KeyInfoType->Id.charactersLen); + } + } + grammarID = 1987; + } else if (iso2KeyInfoType_KeyName_currArrayIndex < iso2KeyInfoType->KeyName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2KeyInfoType->KeyName.array[iso2KeyInfoType_KeyName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2KeyInfoType->KeyName.array[iso2KeyInfoType_KeyName_currArrayIndex].characters, iso2KeyInfoType->KeyName.array[iso2KeyInfoType_KeyName_currArrayIndex].charactersLen); + iso2KeyInfoType_KeyName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1988; + } else if (iso2KeyInfoType_KeyValue_currArrayIndex < iso2KeyInfoType->KeyValue.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + errn = encode_iso2KeyValueType(stream, &iso2KeyInfoType->KeyValue.array [iso2KeyInfoType_KeyValue_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_RetrievalMethod_currArrayIndex < iso2KeyInfoType->RetrievalMethod.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + errn = encode_iso2RetrievalMethodType(stream, &iso2KeyInfoType->RetrievalMethod.array [iso2KeyInfoType_RetrievalMethod_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_X509Data_currArrayIndex < iso2KeyInfoType->X509Data.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + errn = encode_iso2X509DataType(stream, &iso2KeyInfoType->X509Data.array [iso2KeyInfoType_X509Data_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_PGPData_currArrayIndex < iso2KeyInfoType->PGPData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + errn = encode_iso2PGPDataType(stream, &iso2KeyInfoType->PGPData.array [iso2KeyInfoType_PGPData_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_SPKIData_currArrayIndex < iso2KeyInfoType->SPKIData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + errn = encode_iso2SPKIDataType(stream, &iso2KeyInfoType->SPKIData.array [iso2KeyInfoType_SPKIData_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_MgmtData_currArrayIndex < iso2KeyInfoType->MgmtData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 7); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2KeyInfoType->MgmtData.array[iso2KeyInfoType_MgmtData_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2KeyInfoType->MgmtData.array[iso2KeyInfoType_MgmtData_currArrayIndex].characters, iso2KeyInfoType->MgmtData.array[iso2KeyInfoType_MgmtData_currArrayIndex].charactersLen); + iso2KeyInfoType_MgmtData_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1988; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 1988; + } else if ( iso2KeyInfoType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 9); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2KeyInfoType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2KeyInfoType->ANY.characters, iso2KeyInfoType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 1989; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1987: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if (iso2KeyInfoType_KeyName_currArrayIndex < iso2KeyInfoType->KeyName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2KeyInfoType->KeyName.array[iso2KeyInfoType_KeyName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2KeyInfoType->KeyName.array[iso2KeyInfoType_KeyName_currArrayIndex].characters, iso2KeyInfoType->KeyName.array[iso2KeyInfoType_KeyName_currArrayIndex].charactersLen); + iso2KeyInfoType_KeyName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1988; + } else if (iso2KeyInfoType_KeyValue_currArrayIndex < iso2KeyInfoType->KeyValue.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + errn = encode_iso2KeyValueType(stream, &iso2KeyInfoType->KeyValue.array [iso2KeyInfoType_KeyValue_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_RetrievalMethod_currArrayIndex < iso2KeyInfoType->RetrievalMethod.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + errn = encode_iso2RetrievalMethodType(stream, &iso2KeyInfoType->RetrievalMethod.array [iso2KeyInfoType_RetrievalMethod_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_X509Data_currArrayIndex < iso2KeyInfoType->X509Data.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + errn = encode_iso2X509DataType(stream, &iso2KeyInfoType->X509Data.array [iso2KeyInfoType_X509Data_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_PGPData_currArrayIndex < iso2KeyInfoType->PGPData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + errn = encode_iso2PGPDataType(stream, &iso2KeyInfoType->PGPData.array [iso2KeyInfoType_PGPData_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_SPKIData_currArrayIndex < iso2KeyInfoType->SPKIData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + errn = encode_iso2SPKIDataType(stream, &iso2KeyInfoType->SPKIData.array [iso2KeyInfoType_SPKIData_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_MgmtData_currArrayIndex < iso2KeyInfoType->MgmtData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2KeyInfoType->MgmtData.array[iso2KeyInfoType_MgmtData_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2KeyInfoType->MgmtData.array[iso2KeyInfoType_MgmtData_currArrayIndex].characters, iso2KeyInfoType->MgmtData.array[iso2KeyInfoType_MgmtData_currArrayIndex].charactersLen); + iso2KeyInfoType_MgmtData_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1988; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 1988; + } else if ( iso2KeyInfoType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 8); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2KeyInfoType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2KeyInfoType->ANY.characters, iso2KeyInfoType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 1989; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1988: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (iso2KeyInfoType_KeyName_currArrayIndex < iso2KeyInfoType->KeyName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2KeyInfoType->KeyName.array[iso2KeyInfoType_KeyName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2KeyInfoType->KeyName.array[iso2KeyInfoType_KeyName_currArrayIndex].characters, iso2KeyInfoType->KeyName.array[iso2KeyInfoType_KeyName_currArrayIndex].charactersLen); + iso2KeyInfoType_KeyName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1988; + } else if (iso2KeyInfoType_KeyValue_currArrayIndex < iso2KeyInfoType->KeyValue.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + errn = encode_iso2KeyValueType(stream, &iso2KeyInfoType->KeyValue.array [iso2KeyInfoType_KeyValue_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_RetrievalMethod_currArrayIndex < iso2KeyInfoType->RetrievalMethod.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + errn = encode_iso2RetrievalMethodType(stream, &iso2KeyInfoType->RetrievalMethod.array [iso2KeyInfoType_RetrievalMethod_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_X509Data_currArrayIndex < iso2KeyInfoType->X509Data.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + errn = encode_iso2X509DataType(stream, &iso2KeyInfoType->X509Data.array [iso2KeyInfoType_X509Data_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_PGPData_currArrayIndex < iso2KeyInfoType->PGPData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + errn = encode_iso2PGPDataType(stream, &iso2KeyInfoType->PGPData.array [iso2KeyInfoType_PGPData_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_SPKIData_currArrayIndex < iso2KeyInfoType->SPKIData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + errn = encode_iso2SPKIDataType(stream, &iso2KeyInfoType->SPKIData.array [iso2KeyInfoType_SPKIData_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_MgmtData_currArrayIndex < iso2KeyInfoType->MgmtData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2KeyInfoType->MgmtData.array[iso2KeyInfoType_MgmtData_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2KeyInfoType->MgmtData.array[iso2KeyInfoType_MgmtData_currArrayIndex].characters, iso2KeyInfoType->MgmtData.array[iso2KeyInfoType_MgmtData_currArrayIndex].charactersLen); + iso2KeyInfoType_MgmtData_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1988; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 1988; + } else if ( iso2KeyInfoType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 4, 8); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else if ( iso2KeyInfoType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 9); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2KeyInfoType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2KeyInfoType->ANY.characters, iso2KeyInfoType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 1988; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1989: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if (iso2KeyInfoType_KeyName_currArrayIndex < iso2KeyInfoType->KeyName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2KeyInfoType->KeyName.array[iso2KeyInfoType_KeyName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2KeyInfoType->KeyName.array[iso2KeyInfoType_KeyName_currArrayIndex].characters, iso2KeyInfoType->KeyName.array[iso2KeyInfoType_KeyName_currArrayIndex].charactersLen); + iso2KeyInfoType_KeyName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1988; + } else if (iso2KeyInfoType_KeyValue_currArrayIndex < iso2KeyInfoType->KeyValue.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + errn = encode_iso2KeyValueType(stream, &iso2KeyInfoType->KeyValue.array [iso2KeyInfoType_KeyValue_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_RetrievalMethod_currArrayIndex < iso2KeyInfoType->RetrievalMethod.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + errn = encode_iso2RetrievalMethodType(stream, &iso2KeyInfoType->RetrievalMethod.array [iso2KeyInfoType_RetrievalMethod_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_X509Data_currArrayIndex < iso2KeyInfoType->X509Data.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + errn = encode_iso2X509DataType(stream, &iso2KeyInfoType->X509Data.array [iso2KeyInfoType_X509Data_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_PGPData_currArrayIndex < iso2KeyInfoType->PGPData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + errn = encode_iso2PGPDataType(stream, &iso2KeyInfoType->PGPData.array [iso2KeyInfoType_PGPData_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_SPKIData_currArrayIndex < iso2KeyInfoType->SPKIData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + errn = encode_iso2SPKIDataType(stream, &iso2KeyInfoType->SPKIData.array [iso2KeyInfoType_SPKIData_currArrayIndex++]); + } + grammarID = 1988; + } else if (iso2KeyInfoType_MgmtData_currArrayIndex < iso2KeyInfoType->MgmtData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2KeyInfoType->MgmtData.array[iso2KeyInfoType_MgmtData_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2KeyInfoType->MgmtData.array[iso2KeyInfoType_MgmtData_currArrayIndex].characters, iso2KeyInfoType->MgmtData.array[iso2KeyInfoType_MgmtData_currArrayIndex].charactersLen); + iso2KeyInfoType_MgmtData_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1988; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 1988; + } else if ( iso2KeyInfoType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 8); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2KeyInfoType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2KeyInfoType->ANY.characters, iso2KeyInfoType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 1989; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SubCertificatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":Certificate{1-4})', derivedBy='RESTRICTION'. */ +static int encode_iso2SubCertificatesType(bitstream_t* stream, struct iso2SubCertificatesType* iso2SubCertificatesType) { + int grammarID = 1990; + int done = 0; + + unsigned int iso2SubCertificatesType_Certificate_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 1990: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate)] */ + if (iso2SubCertificatesType_Certificate_currArrayIndex < iso2SubCertificatesType->Certificate.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType_Certificate_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType_Certificate_currArrayIndex].bytes, iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType_Certificate_currArrayIndex].bytesLen); + iso2SubCertificatesType_Certificate_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1991; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1991: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate), END_ELEMENT] */ + if (iso2SubCertificatesType_Certificate_currArrayIndex < iso2SubCertificatesType->Certificate.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType_Certificate_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType_Certificate_currArrayIndex].bytes, iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType_Certificate_currArrayIndex].bytesLen); + iso2SubCertificatesType_Certificate_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1992; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1992: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate), END_ELEMENT] */ + if (iso2SubCertificatesType_Certificate_currArrayIndex < iso2SubCertificatesType->Certificate.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType_Certificate_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType_Certificate_currArrayIndex].bytes, iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType_Certificate_currArrayIndex].bytesLen); + iso2SubCertificatesType_Certificate_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1993; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1993: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate), END_ELEMENT] */ + if (iso2SubCertificatesType_Certificate_currArrayIndex < iso2SubCertificatesType->Certificate.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType_Certificate_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType_Certificate_currArrayIndex].bytes, iso2SubCertificatesType->Certificate.array[iso2SubCertificatesType_Certificate_currArrayIndex].bytesLen); + iso2SubCertificatesType_Certificate_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":RootCertificateID{1-20})', derivedBy='RESTRICTION'. */ +static int encode_iso2ListOfRootCertificateIDsType(bitstream_t* stream, struct iso2ListOfRootCertificateIDsType* iso2ListOfRootCertificateIDsType) { + int grammarID = 1994; + int done = 0; + + unsigned int iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 1994: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID)] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 1995; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1995: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 1996; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1996: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 1997; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1997: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 1998; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1998: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 1999; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1999: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 2000; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2000: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 2001; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2001: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 2002; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2002: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 2003; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2003: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 2004; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2004: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 2005; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2005: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 2006; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2006: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 2007; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2007: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 2008; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2008: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 2009; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2009: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 2010; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2010: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 2011; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2011: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 2012; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2012: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 2013; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2013: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), END_ELEMENT] */ + if (iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso2ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &iso2ListOfRootCertificateIDsType->RootCertificateID.array [iso2ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVEnergyTransferParameterType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":DepartureTime)', derivedBy='RESTRICTION'. */ +static int encode_iso2EVEnergyTransferParameterType(bitstream_t* stream, struct iso2EVEnergyTransferParameterType* iso2EVEnergyTransferParameterType) { + int grammarID = 2014; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 2014: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, iso2EVEnergyTransferParameterType->DepartureTime); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ContractSignatureEncryptedPrivateKeyType', base type name='encryptedPrivateKeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int encode_iso2ContractSignatureEncryptedPrivateKeyType(bitstream_t* stream, struct iso2ContractSignatureEncryptedPrivateKeyType* iso2ContractSignatureEncryptedPrivateKeyType) { + int grammarID = 2015; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 2015: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgDataTypes}Id)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ContractSignatureEncryptedPrivateKeyType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2ContractSignatureEncryptedPrivateKeyType->Id.characters, iso2ContractSignatureEncryptedPrivateKeyType->Id.charactersLen); + } + } + grammarID = 2016; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2016: + /* StartTag[CHARACTERS[BINARY_BASE64]] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2ContractSignatureEncryptedPrivateKeyType->CONTENT.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2ContractSignatureEncryptedPrivateKeyType->CONTENT.bytes, iso2ContractSignatureEncryptedPrivateKeyType->CONTENT.bytesLen); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,MagneticVectorSetupListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":MagneticVectorSetup{1-255})', derivedBy='RESTRICTION'. */ +static int encode_iso2MagneticVectorSetupListType(bitstream_t* stream, struct iso2MagneticVectorSetupListType* iso2MagneticVectorSetupListType) { + int grammarID = 2017; + int done = 0; + + unsigned int iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 2017: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup)] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2018; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2018: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2019; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2019: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2020; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2020: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2021; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2021: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2022; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2022: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2023; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2023: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2024; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2024: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2025; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2025: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2026; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2026: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2027; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2027: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2028; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2028: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2029; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2029: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2030; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2030: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2031; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2031: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2032; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2032: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2033; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2033: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2034; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2034: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2035; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2035: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2036; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2036: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2037; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2037: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2038; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2038: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2039; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2039: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2040; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2040: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2041; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2041: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2042; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2042: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2043; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2043: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2044; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2044: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2045; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2045: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2046; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2046: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2047; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2047: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2048; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2048: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2049; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2049: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2050; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2050: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2051; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2051: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2052; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2052: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2053; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2053: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2054; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2054: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2055; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2055: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2056; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2056: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2057; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2057: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2058; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2058: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2059; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2059: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2060; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2060: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2061; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2061: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2062; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2062: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2063; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2063: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2064; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2064: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2065; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2065: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2066; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2066: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2067; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2067: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2068; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2068: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2069; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2069: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2070; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2070: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2071; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2071: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2072; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2072: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2073; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2073: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2074; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2074: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2075; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2075: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2076; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2076: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2077; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2077: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2078; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2078: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2079; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2079: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2080; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2080: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2081; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2081: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2082; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2082: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2083; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2083: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2084; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2084: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2085; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2085: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2086; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2086: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2087; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2087: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2088; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2088: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2089; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2089: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2090; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2090: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2091; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2091: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2092; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2092: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2093; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2093: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2094; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2094: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2095; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2095: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2096; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2096: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2097; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2097: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2098; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2098: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2099; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2099: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2100; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2100: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2101; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2101: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2102; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2102: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2103; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2103: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2104; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2104: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2105; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2105: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2106; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2106: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2107; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2107: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2108; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2108: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2109; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2109: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2110; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2110: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2111; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2111: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2112; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2112: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2113; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2113: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2114; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2114: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2115; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2115: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2116; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2116: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2117; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2117: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2118; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2118: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2119; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2119: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2120; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2120: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2121; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2121: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2122; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2122: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2123; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2123: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2124; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2124: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2125; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2125: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2126; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2126: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2127; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2127: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2128; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2128: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2129; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2129: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2130; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2130: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2131; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2131: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2132; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2132: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2133; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2133: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2134; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2134: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2135; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2135: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2136; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2136: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2137; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2137: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2138; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2138: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2139; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2139: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2140; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2140: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2141; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2141: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2142; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2142: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2143; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2143: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2144; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2144: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2145; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2145: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2146; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2146: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2147; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2147: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2148; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2148: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2149; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2149: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2150; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2150: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2151; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2151: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2152; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2152: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2153; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2153: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2154; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2154: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2155; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2155: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2156; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2156: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2157; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2157: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2158; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2158: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2159; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2159: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2160; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2160: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2161; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2161: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2162; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2162: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2163; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2163: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2164; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2164: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2165; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2165: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2166; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2166: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2167; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2167: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2168; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2168: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2169; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2169: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2170; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2170: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2171; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2171: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2172; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2172: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2173; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2173: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2174; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2174: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2175; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2175: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2176; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2176: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2177; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2177: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2178; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2178: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2179; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2179: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2180; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2180: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2181; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2181: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2182; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2182: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2183; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2183: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2184; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2184: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2185; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2185: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2186; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2186: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2187; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2187: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2188; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2188: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2189; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2189: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2190; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2190: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2191; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2191: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2192; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2192: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2193; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2193: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2194; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2194: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2195; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2195: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2196; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2196: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2197; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2197: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2198; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2198: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2199; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2199: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2200; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2200: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2201; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2201: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2202; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2202: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2203; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2203: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2204; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2204: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2205; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2205: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2206; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2206: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2207; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2207: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2208; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2208: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2209; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2209: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2210; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2210: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2211; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2211: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2212; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2212: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2213; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2213: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2214; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2214: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2215; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2215: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2216; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2216: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2217; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2217: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2218; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2218: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2219; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2219: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2220; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2220: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2221; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2221: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2222; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2222: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2223; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2223: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2224; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2224: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2225; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2225: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2226; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2226: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2227; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2227: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2228; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2228: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2229; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2229: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2230; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2230: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2231; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2231: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2232; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2232: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2233; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2233: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2234; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2234: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2235; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2235: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2236; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2236: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2237; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2237: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2238; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2238: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2239; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2239: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2240; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2240: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2241; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2241: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2242; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2242: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2243; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2243: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2244; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2244: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2245; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2245: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2246; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2246: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2247; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2247: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2248; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2248: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2249; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2249: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2250; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2250: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2251; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2251: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2252; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2252: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2253; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2253: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2254; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2254: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2255; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2255: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2256; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2256: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2257; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2257: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2258; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2258: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2259; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2259: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2260; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2260: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2261; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2261: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2262; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2262: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2263; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2263: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2264; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2264: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2265; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2265: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2266; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2266: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2267; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2267: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2268; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2268: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2269; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2269: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2270; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2270: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 2271; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2271: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), END_ELEMENT] */ + if (iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex < iso2MagneticVectorSetupListType->MagneticVectorSetup.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &iso2MagneticVectorSetupListType->MagneticVectorSetup.array [iso2MagneticVectorSetupListType_MagneticVectorSetup_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PairingReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVProcessing,"urn:iso:15118:2:2016:MsgBody":PairingParameters{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso2PairingReqType(bitstream_t* stream, struct iso2PairingReqType* iso2PairingReqType) { + int grammarID = 2272; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 2272: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2PairingReqType->EVProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1827; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1827: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingParameters), END_ELEMENT] */ + if ( iso2PairingReqType->PairingParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2PairingReqType->PairingParameters ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CurrentDemandResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2016:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2016:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2016:MsgBody":EVSEMaximumPower{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEMaximumVoltage{0-1},"urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2CurrentDemandResType(bitstream_t* stream, struct iso2CurrentDemandResType* iso2CurrentDemandResType) { + int grammarID = 2273; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 2273: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2CurrentDemandResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2274; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2274: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentCurrent)] */ + if ( iso2CurrentDemandResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2CurrentDemandResType->EVSEStatus ); + } + grammarID = 2275; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandResType->EVSEPresentCurrent ); + } + grammarID = 2276; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2275: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentCurrent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandResType->EVSEPresentCurrent ); + } + grammarID = 2276; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2276: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentVoltage)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandResType->EVSEPresentVoltage ); + } + grammarID = 2277; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2277: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPowerLimitAchieved)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2CurrentDemandResType->EVSEPowerLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2278; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2278: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECurrentLimitAchieved)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2CurrentDemandResType->EVSECurrentLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2279; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2279: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEVoltageLimitAchieved)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2CurrentDemandResType->EVSEVoltageLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2280; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2280: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + if ( iso2CurrentDemandResType->EVSEMaximumPower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandResType->EVSEMaximumPower ); + } + grammarID = 2281; + } else if ( iso2CurrentDemandResType->EVSEMaximumCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandResType->EVSEMaximumCurrent ); + } + grammarID = 2282; + } else if ( iso2CurrentDemandResType->EVSEMaximumVoltage_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandResType->EVSEMaximumVoltage ); + } + grammarID = 27; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2CurrentDemandResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2CurrentDemandResType->EVSEID.characters, iso2CurrentDemandResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 28; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2281: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + if ( iso2CurrentDemandResType->EVSEMaximumCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandResType->EVSEMaximumCurrent ); + } + grammarID = 2282; + } else if ( iso2CurrentDemandResType->EVSEMaximumVoltage_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandResType->EVSEMaximumVoltage ); + } + grammarID = 27; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2CurrentDemandResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2CurrentDemandResType->EVSEID.characters, iso2CurrentDemandResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 28; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2282: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + if ( iso2CurrentDemandResType->EVSEMaximumVoltage_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2CurrentDemandResType->EVSEMaximumVoltage ); + } + grammarID = 27; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2CurrentDemandResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2CurrentDemandResType->EVSEID.characters, iso2CurrentDemandResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 28; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 27: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2CurrentDemandResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2CurrentDemandResType->EVSEID.characters, iso2CurrentDemandResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 28; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 28: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), END_ELEMENT] */ + if ( iso2CurrentDemandResType->SAScheduleTupleID_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2CurrentDemandResType->SAScheduleTupleID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 29; + } else if ( iso2CurrentDemandResType->MeterInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2MeterInfoType(stream, &iso2CurrentDemandResType->MeterInfo ); + } + grammarID = 30; + } else if ( iso2CurrentDemandResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2CurrentDemandResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 29: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), END_ELEMENT] */ + if ( iso2CurrentDemandResType->MeterInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2MeterInfoType(stream, &iso2CurrentDemandResType->MeterInfo ); + } + grammarID = 30; + } else if ( iso2CurrentDemandResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2CurrentDemandResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 30: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), END_ELEMENT] */ + if ( iso2CurrentDemandResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2CurrentDemandResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */ +static int encode_iso2X509IssuerSerialType(bitstream_t* stream, struct iso2X509IssuerSerialType* iso2X509IssuerSerialType) { + int grammarID = 2283; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 2283: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2X509IssuerSerialType->X509IssuerName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2X509IssuerSerialType->X509IssuerName.characters, iso2X509IssuerSerialType->X509IssuerName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2284; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2284: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, iso2X509IssuerSerialType->X509SerialNumber); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ChargingStatusReqType', base type name='ChargeLoopReqType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":EVTargetEnergyRequest,"urn:iso:15118:2:2016:MsgBody":EVMaximumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumEnergyRequest{0-1},"urn:iso:15118:2:2016:MsgBody":DisplayParameters{0-1}),("urn:iso:15118:2:2016:MsgBody":EVMaximumChargePower{0-1},"urn:iso:15118:2:2016:MsgBody":EVMaximumChargeCurrent{0-1},"urn:iso:15118:2:2016:MsgBody":EVMinimumChargeCurrent{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2ChargingStatusReqType(bitstream_t* stream, struct iso2ChargingStatusReqType* iso2ChargingStatusReqType) { + int grammarID = 2285; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 2285: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetEnergyRequest)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVTargetEnergyRequest ); + } + grammarID = 2286; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2286: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent), END_ELEMENT] */ + if ( iso2ChargingStatusReqType->EVMaximumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumEnergyRequest ); + } + grammarID = 2287; + } else if ( iso2ChargingStatusReqType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMinimumEnergyRequest ); + } + grammarID = 2288; + } else if ( iso2ChargingStatusReqType->DisplayParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &iso2ChargingStatusReqType->DisplayParameters ); + } + grammarID = 2289; + } else if ( iso2ChargingStatusReqType->EVMaximumChargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumChargePower ); + } + grammarID = 2290; + } else if ( iso2ChargingStatusReqType->EVMaximumChargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumChargeCurrent ); + } + grammarID = 2291; + } else if ( iso2ChargingStatusReqType->EVMinimumChargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMinimumChargeCurrent ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 6); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2287: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent), END_ELEMENT] */ + if ( iso2ChargingStatusReqType->EVMinimumEnergyRequest_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMinimumEnergyRequest ); + } + grammarID = 2288; + } else if ( iso2ChargingStatusReqType->DisplayParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &iso2ChargingStatusReqType->DisplayParameters ); + } + grammarID = 2289; + } else if ( iso2ChargingStatusReqType->EVMaximumChargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumChargePower ); + } + grammarID = 2290; + } else if ( iso2ChargingStatusReqType->EVMaximumChargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumChargeCurrent ); + } + grammarID = 2291; + } else if ( iso2ChargingStatusReqType->EVMinimumChargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMinimumChargeCurrent ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2288: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent), END_ELEMENT] */ + if ( iso2ChargingStatusReqType->DisplayParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &iso2ChargingStatusReqType->DisplayParameters ); + } + grammarID = 2289; + } else if ( iso2ChargingStatusReqType->EVMaximumChargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumChargePower ); + } + grammarID = 2290; + } else if ( iso2ChargingStatusReqType->EVMaximumChargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumChargeCurrent ); + } + grammarID = 2291; + } else if ( iso2ChargingStatusReqType->EVMinimumChargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMinimumChargeCurrent ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2289: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent), END_ELEMENT] */ + if ( iso2ChargingStatusReqType->EVMaximumChargePower_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumChargePower ); + } + grammarID = 2290; + } else if ( iso2ChargingStatusReqType->EVMaximumChargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumChargeCurrent ); + } + grammarID = 2291; + } else if ( iso2ChargingStatusReqType->EVMinimumChargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMinimumChargeCurrent ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2290: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent), END_ELEMENT] */ + if ( iso2ChargingStatusReqType->EVMaximumChargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMaximumChargeCurrent ); + } + grammarID = 2291; + } else if ( iso2ChargingStatusReqType->EVMinimumChargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMinimumChargeCurrent ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2291: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent), END_ELEMENT] */ + if ( iso2ChargingStatusReqType->EVMinimumChargeCurrent_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2ChargingStatusReqType->EVMinimumChargeCurrent ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CertificateInstallationResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2016:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2016:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2016:MsgBody":DHpublickey,"urn:iso:15118:2:2016:MsgBody":eMAID))', derivedBy='EXTENSION'. */ +static int encode_iso2CertificateInstallationResType(bitstream_t* stream, struct iso2CertificateInstallationResType* iso2CertificateInstallationResType) { + int grammarID = 2292; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 2292: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2CertificateInstallationResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2293; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2293: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAProvisioningCertificateChain)] */ + if ( iso2CertificateInstallationResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2CertificateInstallationResType->EVSEStatus ); + } + grammarID = 2294; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2CertificateChainType(stream, &iso2CertificateInstallationResType->SAProvisioningCertificateChain ); + } + grammarID = 2295; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2294: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAProvisioningCertificateChain)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2CertificateChainType(stream, &iso2CertificateInstallationResType->SAProvisioningCertificateChain ); + } + grammarID = 2295; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2295: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureCertChain)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2CertificateChainType(stream, &iso2CertificateInstallationResType->ContractSignatureCertChain ); + } + grammarID = 2296; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2296: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureEncryptedPrivateKey)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2ContractSignatureEncryptedPrivateKeyType(stream, &iso2CertificateInstallationResType->ContractSignatureEncryptedPrivateKey ); + } + grammarID = 2297; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2297: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DHpublickey)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2DiffieHellmanPublickeyType(stream, &iso2CertificateInstallationResType->DHpublickey ); + } + grammarID = 2298; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2298: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}eMAID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2EMAIDType(stream, &iso2CertificateInstallationResType->eMAID ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorPackageType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":PackageIndex,"urn:iso:15118:2:2016:MsgDataTypes":SensorMeasurements{1-255})', derivedBy='RESTRICTION'. */ +static int encode_iso2SensorPackageType(bitstream_t* stream, struct iso2SensorPackageType* iso2SensorPackageType) { + int grammarID = 2299; + int done = 0; + + unsigned int iso2SensorPackageType_SensorMeasurements_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 2299: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PackageIndex)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, iso2SensorPackageType->PackageIndex); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2300; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2300: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements)] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2301; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2301: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2302; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2302: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2303; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2303: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2304; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2304: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2305; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2305: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2306; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2306: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2307; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2307: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2308; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2308: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2309; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2309: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2310; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2310: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2311; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2311: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2312; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2312: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2313; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2313: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2314; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2314: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2315; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2315: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2316; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2316: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2317; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2317: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2318; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2318: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2319; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2319: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2320; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2320: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2321; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2321: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2322; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2322: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2323; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2323: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2324; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2324: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2325; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2325: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2326; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2326: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2327; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2327: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2328; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2328: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2329; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2329: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2330; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2330: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2331; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2331: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2332; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2332: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2333; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2333: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2334; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2334: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2335; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2335: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2336; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2336: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2337; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2337: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2338; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2338: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2339; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2339: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2340; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2340: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2341; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2341: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2342; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2342: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2343; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2343: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2344; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2344: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2345; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2345: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2346; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2346: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2347; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2347: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2348; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2348: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2349; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2349: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2350; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2350: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2351; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2351: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2352; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2352: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2353; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2353: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2354; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2354: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2355; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2355: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2356; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2356: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2357; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2357: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2358; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2358: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2359; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2359: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2360; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2360: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2361; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2361: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2362; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2362: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2363; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2363: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2364; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2364: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2365; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2365: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2366; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2366: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2367; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2367: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2368; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2368: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2369; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2369: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2370; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2370: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2371; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2371: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2372; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2372: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2373; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2373: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2374; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2374: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2375; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2375: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2376; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2376: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2377; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2377: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2378; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2378: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2379; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2379: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2380; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2380: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2381; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2381: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2382; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2382: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2383; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2383: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2384; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2384: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2385; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2385: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2386; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2386: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2387; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2387: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2388; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2388: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2389; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2389: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2390; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2390: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2391; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2391: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2392; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2392: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2393; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2393: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2394; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2394: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2395; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2395: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2396; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2396: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2397; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2397: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2398; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2398: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2399; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2399: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2400; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2400: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2401; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2401: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2402; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2402: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2403; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2403: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2404; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2404: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2405; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2405: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2406; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2406: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2407; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2407: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2408; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2408: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2409; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2409: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2410; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2410: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2411; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2411: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2412; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2412: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2413; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2413: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2414; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2414: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2415; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2415: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2416; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2416: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2417; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2417: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2418; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2418: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2419; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2419: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2420; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2420: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2421; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2421: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2422; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2422: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2423; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2423: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2424; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2424: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2425; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2425: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2426; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2426: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2427; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2427: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2428; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2428: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2429; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2429: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2430; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2430: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2431; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2431: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2432; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2432: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2433; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2433: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2434; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2434: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2435; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2435: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2436; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2436: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2437; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2437: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2438; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2438: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2439; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2439: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2440; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2440: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2441; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2441: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2442; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2442: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2443; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2443: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2444; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2444: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2445; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2445: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2446; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2446: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2447; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2447: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2448; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2448: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2449; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2449: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2450; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2450: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2451; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2451: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2452; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2452: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2453; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2453: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2454; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2454: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2455; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2455: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2456; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2456: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2457; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2457: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2458; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2458: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2459; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2459: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2460; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2460: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2461; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2461: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2462; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2462: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2463; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2463: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2464; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2464: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2465; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2465: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2466; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2466: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2467; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2467: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2468; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2468: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2469; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2469: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2470; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2470: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2471; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2471: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2472; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2472: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2473; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2473: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2474; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2474: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2475; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2475: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2476; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2476: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2477; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2477: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2478; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2478: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2479; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2479: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2480; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2480: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2481; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2481: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2482; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2482: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2483; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2483: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2484; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2484: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2485; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2485: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2486; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2486: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2487; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2487: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2488; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2488: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2489; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2489: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2490; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2490: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2491; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2491: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2492; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2492: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2493; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2493: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2494; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2494: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2495; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2495: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2496; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2496: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2497; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2497: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2498; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2498: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2499; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2499: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2500; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2500: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2501; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2501: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2502; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2502: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2503; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2503: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2504; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2504: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2505; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2505: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2506; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2506: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2507; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2507: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2508; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2508: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2509; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2509: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2510; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2510: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2511; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2511: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2512; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2512: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2513; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2513: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2514; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2514: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2515; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2515: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2516; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2516: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2517; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2517: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2518; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2518: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2519; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2519: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2520; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2520: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2521; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2521: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2522; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2522: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2523; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2523: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2524; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2524: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2525; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2525: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2526; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2526: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2527; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2527: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2528; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2528: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2529; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2529: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2530; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2530: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2531; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2531: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2532; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2532: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2533; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2533: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2534; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2534: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2535; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2535: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2536; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2536: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2537; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2537: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2538; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2538: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2539; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2539: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2540; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2540: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2541; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2541: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2542; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2542: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2543; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2543: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2544; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2544: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2545; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2545: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2546; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2546: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2547; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2547: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2548; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2548: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2549; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2549: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2550; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2550: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2551; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2551: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2552; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2552: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2553; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2553: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 2554; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2554: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), END_ELEMENT] */ + if (iso2SensorPackageType_SensorMeasurements_currArrayIndex < iso2SensorPackageType->SensorMeasurements.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &iso2SensorPackageType->SensorMeasurements.array [iso2SensorPackageType_SensorMeasurements_currArrayIndex++]); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */ +static int encode_iso2PGPDataType(bitstream_t* stream, struct iso2PGPDataType* iso2PGPDataType) { + int grammarID = 2555; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 2555: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */ + if ( iso2PGPDataType->PGPKeyID_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2PGPDataType->PGPKeyID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2PGPDataType->PGPKeyID.bytes, iso2PGPDataType->PGPKeyID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2556; + } else if ( iso2PGPDataType->PGPKeyPacket_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2PGPDataType->PGPKeyPacket.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2PGPDataType->PGPKeyPacket.bytes, iso2PGPDataType->PGPKeyPacket.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2557; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2556: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */ + if ( iso2PGPDataType->PGPKeyPacket_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2PGPDataType->PGPKeyPacket.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2PGPDataType->PGPKeyPacket.bytes, iso2PGPDataType->PGPKeyPacket.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2557; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 2557; + } else if ( iso2PGPDataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2557: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 2557; + } else if ( iso2PGPDataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ServiceDiscoveryResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":PaymentOptionList,"urn:iso:15118:2:2016:MsgBody":EnergyTransferServiceList,"urn:iso:15118:2:2016:MsgBody":VASList{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2ServiceDiscoveryResType(bitstream_t* stream, struct iso2ServiceDiscoveryResType* iso2ServiceDiscoveryResType) { + int grammarID = 2558; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 2558: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2ServiceDiscoveryResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2559; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2559: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentOptionList)] */ + if ( iso2ServiceDiscoveryResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2ServiceDiscoveryResType->EVSEStatus ); + } + grammarID = 2560; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PaymentOptionListType(stream, &iso2ServiceDiscoveryResType->PaymentOptionList ); + } + grammarID = 2561; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2560: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentOptionList)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PaymentOptionListType(stream, &iso2ServiceDiscoveryResType->PaymentOptionList ); + } + grammarID = 2561; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2561: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EnergyTransferServiceList)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2ServiceListType(stream, &iso2ServiceDiscoveryResType->EnergyTransferServiceList ); + } + grammarID = 2562; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2562: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VASList), END_ELEMENT] */ + if ( iso2ServiceDiscoveryResType->VASList_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ServiceListType(stream, &iso2ServiceDiscoveryResType->VASList ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ServiceIDListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ServiceID{1-10})', derivedBy='RESTRICTION'. */ +static int encode_iso2ServiceIDListType(bitstream_t* stream, struct iso2ServiceIDListType* iso2ServiceIDListType) { + int grammarID = 2563; + int done = 0; + + unsigned int iso2ServiceIDListType_ServiceID_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 2563: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID)] */ + if (iso2ServiceIDListType_ServiceID_currArrayIndex < iso2ServiceIDListType->ServiceID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType_ServiceID_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2564; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2564: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), END_ELEMENT] */ + if (iso2ServiceIDListType_ServiceID_currArrayIndex < iso2ServiceIDListType->ServiceID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType_ServiceID_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2565; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2565: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), END_ELEMENT] */ + if (iso2ServiceIDListType_ServiceID_currArrayIndex < iso2ServiceIDListType->ServiceID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType_ServiceID_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2566; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2566: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), END_ELEMENT] */ + if (iso2ServiceIDListType_ServiceID_currArrayIndex < iso2ServiceIDListType->ServiceID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType_ServiceID_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2567; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2567: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), END_ELEMENT] */ + if (iso2ServiceIDListType_ServiceID_currArrayIndex < iso2ServiceIDListType->ServiceID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType_ServiceID_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2568; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2568: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), END_ELEMENT] */ + if (iso2ServiceIDListType_ServiceID_currArrayIndex < iso2ServiceIDListType->ServiceID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType_ServiceID_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2569; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2569: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), END_ELEMENT] */ + if (iso2ServiceIDListType_ServiceID_currArrayIndex < iso2ServiceIDListType->ServiceID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType_ServiceID_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2570; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2570: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), END_ELEMENT] */ + if (iso2ServiceIDListType_ServiceID_currArrayIndex < iso2ServiceIDListType->ServiceID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType_ServiceID_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2571; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2571: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), END_ELEMENT] */ + if (iso2ServiceIDListType_ServiceID_currArrayIndex < iso2ServiceIDListType->ServiceID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType_ServiceID_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2572; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2572: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), END_ELEMENT] */ + if (iso2ServiceIDListType_ServiceID_currArrayIndex < iso2ServiceIDListType->ServiceID.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2ServiceIDListType->ServiceID.array[iso2ServiceIDListType_ServiceID_currArrayIndex++]); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVFinePositioningSetupParametersType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */ +static int encode_iso2EVFinePositioningSetupParametersType(bitstream_t* stream, struct iso2EVFinePositioningSetupParametersType* iso2EVFinePositioningSetupParametersType) { + int grammarID = 674; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 674: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,ChargeParameterDiscoveryResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing,"urn:iso:15118:2:2016:MsgBody":SAScheduleList{0-1},"urn:iso:15118:2:2016:MsgDataTypes":EVSEEnergyTransferParameter))', derivedBy='EXTENSION'. */ +static int encode_iso2ChargeParameterDiscoveryResType(bitstream_t* stream, struct iso2ChargeParameterDiscoveryResType* iso2ChargeParameterDiscoveryResType) { + int grammarID = 2573; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 2573: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2ChargeParameterDiscoveryResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2574; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2574: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( iso2ChargeParameterDiscoveryResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2ChargeParameterDiscoveryResType->EVSEStatus ); + } + grammarID = 2575; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2ChargeParameterDiscoveryResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2576; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2575: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2ChargeParameterDiscoveryResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2576; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2576: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyTransferParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVSEChargeParameter)] */ + if ( iso2ChargeParameterDiscoveryResType->SAScheduleList_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2SAScheduleListType(stream, &iso2ChargeParameterDiscoveryResType->SAScheduleList ); + } + grammarID = 2577; + } else if ( iso2ChargeParameterDiscoveryResType->AC_EVSEBidirectionalParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2AC_EVSEBidirectionalParameterType(stream, &iso2ChargeParameterDiscoveryResType->AC_EVSEBidirectionalParameter ); + } + grammarID = 3; + } else if ( iso2ChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2AC_EVSEChargeParameterType(stream, &iso2ChargeParameterDiscoveryResType->AC_EVSEChargeParameter ); + } + grammarID = 3; + } else if ( iso2ChargeParameterDiscoveryResType->DC_EVSEBidirectionalParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2DC_EVSEBidirectionalParameterType(stream, &iso2ChargeParameterDiscoveryResType->DC_EVSEBidirectionalParameter ); + } + grammarID = 3; + } else if ( iso2ChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_iso2DC_EVSEChargeParameterType(stream, &iso2ChargeParameterDiscoveryResType->DC_EVSEChargeParameter ); + } + grammarID = 3; + } else if ( iso2ChargeParameterDiscoveryResType->EVSEEnergyTransferParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + errn = encode_iso2EVSEEnergyTransferParameterType(stream, &iso2ChargeParameterDiscoveryResType->EVSEEnergyTransferParameter ); + } + grammarID = 3; + } else if ( iso2ChargeParameterDiscoveryResType->WPT_EVSEChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 6); + if(errn == 0) { + errn = encode_iso2WPT_EVSEChargeParameterType(stream, &iso2ChargeParameterDiscoveryResType->WPT_EVSEChargeParameter ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2577: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyTransferParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVSEChargeParameter)] */ + if ( iso2ChargeParameterDiscoveryResType->AC_EVSEBidirectionalParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2AC_EVSEBidirectionalParameterType(stream, &iso2ChargeParameterDiscoveryResType->AC_EVSEBidirectionalParameter ); + } + grammarID = 3; + } else if ( iso2ChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2AC_EVSEChargeParameterType(stream, &iso2ChargeParameterDiscoveryResType->AC_EVSEChargeParameter ); + } + grammarID = 3; + } else if ( iso2ChargeParameterDiscoveryResType->DC_EVSEBidirectionalParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2DC_EVSEBidirectionalParameterType(stream, &iso2ChargeParameterDiscoveryResType->DC_EVSEBidirectionalParameter ); + } + grammarID = 3; + } else if ( iso2ChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2DC_EVSEChargeParameterType(stream, &iso2ChargeParameterDiscoveryResType->DC_EVSEChargeParameter ); + } + grammarID = 3; + } else if ( iso2ChargeParameterDiscoveryResType->EVSEEnergyTransferParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_iso2EVSEEnergyTransferParameterType(stream, &iso2ChargeParameterDiscoveryResType->EVSEEnergyTransferParameter ); + } + grammarID = 3; + } else if ( iso2ChargeParameterDiscoveryResType->WPT_EVSEChargeParameter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + errn = encode_iso2WPT_EVSEChargeParameterType(stream, &iso2ChargeParameterDiscoveryResType->WPT_EVSEChargeParameter ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PowerDemandResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEOutputPower,"urn:iso:15118:2:2016:MsgBody":EVSEID,"urn:iso:15118:2:2016:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2016:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2016:MsgBody":ReceiptRequired{0-1},"urn:iso:15118:2:2016:MsgBody":PowerDemandParameters{0-1}))', derivedBy='EXTENSION'. */ +static int encode_iso2PowerDemandResType(bitstream_t* stream, struct iso2PowerDemandResType* iso2PowerDemandResType) { + int grammarID = 2578; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 2578: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2PowerDemandResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2579; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2579: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEOutputPower)] */ + if ( iso2PowerDemandResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2PowerDemandResType->EVSEStatus ); + } + grammarID = 2580; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2PowerDemandResType->EVSEOutputPower ); + } + grammarID = 2581; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2580: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEOutputPower)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &iso2PowerDemandResType->EVSEOutputPower ); + } + grammarID = 2581; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2581: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2PowerDemandResType->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2PowerDemandResType->EVSEID.characters, iso2PowerDemandResType->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2582; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2582: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandParameters), END_ELEMENT] */ + if ( iso2PowerDemandResType->SAScheduleTupleID_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2PowerDemandResType->SAScheduleTupleID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2583; + } else if ( iso2PowerDemandResType->MeterInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2MeterInfoType(stream, &iso2PowerDemandResType->MeterInfo ); + } + grammarID = 2584; + } else if ( iso2PowerDemandResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2PowerDemandResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1873; + } else if ( iso2PowerDemandResType->PowerDemandParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2PowerDemandResType->PowerDemandParameters ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2583: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandParameters), END_ELEMENT] */ + if ( iso2PowerDemandResType->MeterInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2MeterInfoType(stream, &iso2PowerDemandResType->MeterInfo ); + } + grammarID = 2584; + } else if ( iso2PowerDemandResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2PowerDemandResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1873; + } else if ( iso2PowerDemandResType->PowerDemandParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2PowerDemandResType->PowerDemandParameters ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2584: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandParameters), END_ELEMENT] */ + if ( iso2PowerDemandResType->ReceiptRequired_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, iso2PowerDemandResType->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 1873; + } else if ( iso2PowerDemandResType->PowerDemandParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2PowerDemandResType->PowerDemandParameters ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1873: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandParameters), END_ELEMENT] */ + if ( iso2PowerDemandResType->PowerDemandParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &iso2PowerDemandResType->PowerDemandParameters ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,ChargingProfileType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ProfileEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso2ChargingProfileType(bitstream_t* stream, struct iso2ChargingProfileType* iso2ChargingProfileType) { + int grammarID = 2585; + int done = 0; + + unsigned int iso2ChargingProfileType_ProfileEntry_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 2585: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ProfileEntry)] */ + if (iso2ChargingProfileType_ProfileEntry_currArrayIndex < iso2ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2PMaxScheduleEntryType(stream, &iso2ChargingProfileType->ProfileEntry.array [iso2ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 2586; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2586: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ProfileEntry), END_ELEMENT] */ + if (iso2ChargingProfileType_ProfileEntry_currArrayIndex < iso2ChargingProfileType->ProfileEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2PMaxScheduleEntryType(stream, &iso2ChargingProfileType->ProfileEntry.array [iso2ChargingProfileType_ProfileEntry_currArrayIndex++]); + } + grammarID = 2586; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,FinePositioningReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgBody":EVProcessing,"urn:iso:15118:2:2016:MsgDataTypes":EVFinePositioningParameters{0-1})', derivedBy='EXTENSION'. */ +static int encode_iso2FinePositioningReqType(bitstream_t* stream, struct iso2FinePositioningReqType* iso2FinePositioningReqType) { + int grammarID = 2587; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 2587: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2FinePositioningReqType->EVProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2588; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2588: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningParameters), END_ELEMENT] */ + if ( iso2FinePositioningReqType->EVFinePositioningParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_iso2EVFinePositioningParametersType(stream, &iso2FinePositioningReqType->EVFinePositioningParameters ); + } + grammarID = 3; + } else if ( iso2FinePositioningReqType->Generic_EVFinePositioningParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_iso2Generic_EVFinePositioningParametersType(stream, &iso2FinePositioningReqType->Generic_EVFinePositioningParameters ); + } + grammarID = 3; + } else if ( iso2FinePositioningReqType->LFA_EVFinePositioningParameters_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_iso2LFA_EVFinePositioningParametersType(stream, &iso2FinePositioningReqType->LFA_EVFinePositioningParameters ); + } + grammarID = 3; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SalesTariffType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SalesTariffID,"urn:iso:15118:2:2016:MsgDataTypes":SalesTariffDescription{0-1},"urn:iso:15118:2:2016:MsgDataTypes":NumEPriceLevels{0-1},"urn:iso:15118:2:2016:MsgDataTypes":SalesTariffEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso2SalesTariffType(bitstream_t* stream, struct iso2SalesTariffType* iso2SalesTariffType) { + int grammarID = 2589; + int done = 0; + + unsigned int iso2SalesTariffType_SalesTariffEntry_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 2589: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgDataTypes}Id)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SalesTariffType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2SalesTariffType->Id.characters, iso2SalesTariffType->Id.charactersLen); + } + } + grammarID = 2590; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2590: + /* StartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SalesTariffType->SalesTariffID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2591; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2591: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffEntry)] */ + if ( iso2SalesTariffType->SalesTariffDescription_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SalesTariffType->SalesTariffDescription.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2SalesTariffType->SalesTariffDescription.characters, iso2SalesTariffType->SalesTariffDescription.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2592; + } else if ( iso2SalesTariffType->NumEPriceLevels_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SalesTariffType->NumEPriceLevels - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2593; + } else if (iso2SalesTariffType_SalesTariffEntry_currArrayIndex < iso2SalesTariffType->SalesTariffEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_iso2SalesTariffEntryType(stream, &iso2SalesTariffType->SalesTariffEntry.array [iso2SalesTariffType_SalesTariffEntry_currArrayIndex++]); + } + grammarID = 2594; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2592: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffEntry)] */ + if ( iso2SalesTariffType->NumEPriceLevels_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SalesTariffType->NumEPriceLevels - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2593; + } else if (iso2SalesTariffType_SalesTariffEntry_currArrayIndex < iso2SalesTariffType->SalesTariffEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2SalesTariffEntryType(stream, &iso2SalesTariffType->SalesTariffEntry.array [iso2SalesTariffType_SalesTariffEntry_currArrayIndex++]); + } + grammarID = 2594; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2593: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffEntry)] */ + if (iso2SalesTariffType_SalesTariffEntry_currArrayIndex < iso2SalesTariffType->SalesTariffEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2SalesTariffEntryType(stream, &iso2SalesTariffType->SalesTariffEntry.array [iso2SalesTariffType_SalesTariffEntry_currArrayIndex++]); + } + grammarID = 2594; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2594: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */ + if (iso2SalesTariffType_SalesTariffEntry_currArrayIndex < iso2SalesTariffType->SalesTariffEntry.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2SalesTariffEntryType(stream, &iso2SalesTariffType->SalesTariffEntry.array [iso2SalesTariffType_SalesTariffEntry_currArrayIndex++]); + } + grammarID = 2594; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SensorType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":SensorID,"urn:iso:15118:2:2016:MsgDataTypes":SensorPosition,"urn:iso:15118:2:2016:MsgDataTypes":SensorOrientation)', derivedBy='RESTRICTION'. */ +static int encode_iso2SensorType(bitstream_t* stream, struct iso2SensorType* iso2SensorType) { + int grammarID = 2595; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 2595: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso2SensorType->SensorID - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2596; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2596: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2CartesianCoordinatesType(stream, &iso2SensorType->SensorPosition ); + } + grammarID = 2597; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2597: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorOrientation)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2CartesianCoordinatesType(stream, &iso2SensorType->SensorOrientation ); + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int encode_iso2SignatureValueType(bitstream_t* stream, struct iso2SignatureValueType* iso2SignatureValueType) { + int grammarID = 2598; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 2598: + /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */ + if ( iso2SignatureValueType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SignatureValueType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2SignatureValueType->Id.characters, iso2SignatureValueType->Id.charactersLen); + } + } + grammarID = 2016; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SignatureValueType->CONTENT.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2SignatureValueType->CONTENT.bytes, iso2SignatureValueType->CONTENT.bytesLen); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2016: + /* StartTag[CHARACTERS[BINARY_BASE64]] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SignatureValueType->CONTENT.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2SignatureValueType->CONTENT.bytes, iso2SignatureValueType->CONTENT.bytesLen); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_iso2SignedInfoType(bitstream_t* stream, struct iso2SignedInfoType* iso2SignedInfoType) { + int grammarID = 2599; + int done = 0; + + unsigned int iso2SignedInfoType_Reference_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 2599: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ + if ( iso2SignedInfoType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2SignedInfoType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2SignedInfoType->Id.characters, iso2SignedInfoType->Id.charactersLen); + } + } + grammarID = 2600; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_iso2CanonicalizationMethodType(stream, &iso2SignedInfoType->CanonicalizationMethod ); + } + grammarID = 2601; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2600: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2CanonicalizationMethodType(stream, &iso2SignedInfoType->CanonicalizationMethod ); + } + grammarID = 2601; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2601: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2SignatureMethodType(stream, &iso2SignedInfoType->SignatureMethod ); + } + grammarID = 2602; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2602: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + if (iso2SignedInfoType_Reference_currArrayIndex < iso2SignedInfoType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_iso2ReferenceType(stream, &iso2SignedInfoType->Reference.array [iso2SignedInfoType_Reference_currArrayIndex++]); + } + grammarID = 1964; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1964: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ + if (iso2SignedInfoType_Reference_currArrayIndex < iso2SignedInfoType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2ReferenceType(stream, &iso2SignedInfoType->Reference.array [iso2SignedInfoType_Reference_currArrayIndex++]); + } + grammarID = 1964; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,PowerDeliveryResType', base type name='V2GResponseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2016:MsgBody":ResponseCode,"urn:iso:15118:2:2016:MsgBody":EVSEStatus{0-1}),("urn:iso:15118:2:2016:MsgBody":EVSEProcessing))', derivedBy='EXTENSION'. */ +static int encode_iso2PowerDeliveryResType(bitstream_t* stream, struct iso2PowerDeliveryResType* iso2PowerDeliveryResType) { + int grammarID = 5; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 5: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, iso2PowerDeliveryResType->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 6: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( iso2PowerDeliveryResType->EVSEStatus_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &iso2PowerDeliveryResType->EVSEStatus ); + } + grammarID = 7; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2PowerDeliveryResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 7: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, iso2PowerDeliveryResType->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgBody,CableCheckReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int encode_iso2CableCheckReqType(bitstream_t* stream, struct iso2CableCheckReqType* iso2CableCheckReqType) { + int grammarID = 674; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 674: + /* FirstStartTag[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,SelectedServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":ServiceID,"urn:iso:15118:2:2016:MsgDataTypes":ParameterSetID)', derivedBy='RESTRICTION'. */ +static int encode_iso2SelectedServiceType(bitstream_t* stream, struct iso2SelectedServiceType* iso2SelectedServiceType) { + int grammarID = 2603; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 2603: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2SelectedServiceType->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2604; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2604: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSetID)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2SelectedServiceType->ParameterSetID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,DiffieHellmanPublickeyType', base type name='dHpublickeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int encode_iso2DiffieHellmanPublickeyType(bitstream_t* stream, struct iso2DiffieHellmanPublickeyType* iso2DiffieHellmanPublickeyType) { + int grammarID = 2015; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 2015: + /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2016:MsgDataTypes}Id)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DiffieHellmanPublickeyType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, iso2DiffieHellmanPublickeyType->Id.characters, iso2DiffieHellmanPublickeyType->Id.charactersLen); + } + } + grammarID = 2016; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2016: + /* StartTag[CHARACTERS[BINARY_BASE64]] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(iso2DiffieHellmanPublickeyType->CONTENT.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, iso2DiffieHellmanPublickeyType->CONTENT.bytes, iso2DiffieHellmanPublickeyType->CONTENT.bytesLen); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='urn:iso:15118:2:2016:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2016:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2016:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */ +static int encode_iso2EVSEStatusType(bitstream_t* stream, struct iso2EVSEStatusType* iso2EVSEStatusType) { + int grammarID = 2605; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 2605: + /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NotificationMaxDelay)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, iso2EVSEStatusType->NotificationMaxDelay); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2606; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2606: + /* Element[START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENotification)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, iso2EVSEStatusType->EVSENotification); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 3: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 4; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + + + +int encode_iso2ExiDocument(bitstream_t* stream, struct iso2EXIDocument* exiDoc) { + errn = writeEXIHeader(stream); + + if(errn == 0) { + /* DocContent[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVEnergyTransferParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyTransferParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVSEFinePositioningParameters), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningSetupParameters), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleList), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GResponse), START_ELEMENT({urn:iso:15118:2:2016:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] */ + if ( exiDoc->AC_BidirectionalControlReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 0); + if(errn == 0) { + errn = encode_iso2AC_BidirectionalControlReqType(stream, &exiDoc->AC_BidirectionalControlReq ); + } + } else if ( exiDoc->AC_BidirectionalControlRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 1); + if(errn == 0) { + errn = encode_iso2AC_BidirectionalControlResType(stream, &exiDoc->AC_BidirectionalControlRes ); + } + } else if ( exiDoc->AC_EVBidirectionalParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVBidirectionalParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 2); + if(errn == 0) { + errn = encode_iso2AC_EVBidirectionalParameterType(stream, &exiDoc->AC_EVBidirectionalParameter ); + } + } else if ( exiDoc->AC_EVChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 3); + if(errn == 0) { + errn = encode_iso2AC_EVChargeParameterType(stream, &exiDoc->AC_EVChargeParameter ); + } + } else if ( exiDoc->AC_EVSEBidirectionalParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEBidirectionalParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 4); + if(errn == 0) { + errn = encode_iso2AC_EVSEBidirectionalParameterType(stream, &exiDoc->AC_EVSEBidirectionalParameter ); + } + } else if ( exiDoc->AC_EVSEChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 5); + if(errn == 0) { + errn = encode_iso2AC_EVSEChargeParameterType(stream, &exiDoc->AC_EVSEChargeParameter ); + } + } else if ( exiDoc->AlignmentCheckReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 6); + if(errn == 0) { + errn = encode_iso2AlignmentCheckReqType(stream, &exiDoc->AlignmentCheckReq ); + } + } else if ( exiDoc->AlignmentCheckRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 7); + if(errn == 0) { + errn = encode_iso2AlignmentCheckResType(stream, &exiDoc->AlignmentCheckRes ); + } + } else if ( exiDoc->AuthorizationReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 8); + if(errn == 0) { + errn = encode_iso2AuthorizationReqType(stream, &exiDoc->AuthorizationReq ); + } + } else if ( exiDoc->AuthorizationRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 9); + if(errn == 0) { + errn = encode_iso2AuthorizationResType(stream, &exiDoc->AuthorizationRes ); + } + } else if ( exiDoc->BodyElement_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}BodyElement) */ + errn = encodeNBitUnsignedInteger(stream, 7, 10); + if(errn == 0) { + errn = encode_iso2BodyBaseType(stream, &exiDoc->BodyElement ); + } + } else if ( exiDoc->CableCheckReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 11); + if(errn == 0) { + errn = encode_iso2CableCheckReqType(stream, &exiDoc->CableCheckReq ); + } + } else if ( exiDoc->CableCheckRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 12); + if(errn == 0) { + errn = encode_iso2CableCheckResType(stream, &exiDoc->CableCheckRes ); + } + } else if ( exiDoc->CanonicalizationMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */ + errn = encodeNBitUnsignedInteger(stream, 7, 13); + if(errn == 0) { + errn = encode_iso2CanonicalizationMethodType(stream, &exiDoc->CanonicalizationMethod ); + } + } else if ( exiDoc->CertificateInstallationReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 14); + if(errn == 0) { + errn = encode_iso2CertificateInstallationReqType(stream, &exiDoc->CertificateInstallationReq ); + } + } else if ( exiDoc->CertificateInstallationRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 15); + if(errn == 0) { + errn = encode_iso2CertificateInstallationResType(stream, &exiDoc->CertificateInstallationRes ); + } + } else if ( exiDoc->CertificateUpdateReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 16); + if(errn == 0) { + errn = encode_iso2CertificateUpdateReqType(stream, &exiDoc->CertificateUpdateReq ); + } + } else if ( exiDoc->CertificateUpdateRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 17); + if(errn == 0) { + errn = encode_iso2CertificateUpdateResType(stream, &exiDoc->CertificateUpdateRes ); + } + } else if ( exiDoc->ChargeParameterDiscoveryReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 18); + if(errn == 0) { + errn = encode_iso2ChargeParameterDiscoveryReqType(stream, &exiDoc->ChargeParameterDiscoveryReq ); + } + } else if ( exiDoc->ChargeParameterDiscoveryRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 19); + if(errn == 0) { + errn = encode_iso2ChargeParameterDiscoveryResType(stream, &exiDoc->ChargeParameterDiscoveryRes ); + } + } else if ( exiDoc->ChargingStatusReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 20); + if(errn == 0) { + errn = encode_iso2ChargingStatusReqType(stream, &exiDoc->ChargingStatusReq ); + } + } else if ( exiDoc->ChargingStatusRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 21); + if(errn == 0) { + errn = encode_iso2ChargingStatusResType(stream, &exiDoc->ChargingStatusRes ); + } + } else if ( exiDoc->ConnectChargingDeviceReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 22); + if(errn == 0) { + errn = encode_iso2ConnectChargingDeviceReqType(stream, &exiDoc->ConnectChargingDeviceReq ); + } + } else if ( exiDoc->ConnectChargingDeviceRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 23); + if(errn == 0) { + errn = encode_iso2ConnectChargingDeviceResType(stream, &exiDoc->ConnectChargingDeviceRes ); + } + } else if ( exiDoc->CurrentDemandReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 24); + if(errn == 0) { + errn = encode_iso2CurrentDemandReqType(stream, &exiDoc->CurrentDemandReq ); + } + } else if ( exiDoc->CurrentDemandRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 25); + if(errn == 0) { + errn = encode_iso2CurrentDemandResType(stream, &exiDoc->CurrentDemandRes ); + } + } else if ( exiDoc->DC_BidirectionalControlReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 26); + if(errn == 0) { + errn = encode_iso2DC_BidirectionalControlReqType(stream, &exiDoc->DC_BidirectionalControlReq ); + } + } else if ( exiDoc->DC_BidirectionalControlRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 27); + if(errn == 0) { + errn = encode_iso2DC_BidirectionalControlResType(stream, &exiDoc->DC_BidirectionalControlRes ); + } + } else if ( exiDoc->DC_EVBidirectionalParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVBidirectionalParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 28); + if(errn == 0) { + errn = encode_iso2DC_EVBidirectionalParameterType(stream, &exiDoc->DC_EVBidirectionalParameter ); + } + } else if ( exiDoc->DC_EVChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 29); + if(errn == 0) { + errn = encode_iso2DC_EVChargeParameterType(stream, &exiDoc->DC_EVChargeParameter ); + } + } else if ( exiDoc->DC_EVSEBidirectionalParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEBidirectionalParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 30); + if(errn == 0) { + errn = encode_iso2DC_EVSEBidirectionalParameterType(stream, &exiDoc->DC_EVSEBidirectionalParameter ); + } + } else if ( exiDoc->DC_EVSEChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 31); + if(errn == 0) { + errn = encode_iso2DC_EVSEChargeParameterType(stream, &exiDoc->DC_EVSEChargeParameter ); + } + } else if ( exiDoc->DSAKeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 7, 32); + if(errn == 0) { + errn = encode_iso2DSAKeyValueType(stream, &exiDoc->DSAKeyValue ); + } + } else if ( exiDoc->DigestMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */ + errn = encodeNBitUnsignedInteger(stream, 7, 33); + if(errn == 0) { + errn = encode_iso2DigestMethodType(stream, &exiDoc->DigestMethod ); + } + } else if ( exiDoc->DigestValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */ + errn = encodeNBitUnsignedInteger(stream, 7, 34); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiDoc->DigestValue.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiDoc->DigestValue.bytes, exiDoc->DigestValue.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiDoc->DisconnectChargingDeviceReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 35); + if(errn == 0) { + errn = encode_iso2DisconnectChargingDeviceReqType(stream, &exiDoc->DisconnectChargingDeviceReq ); + } + } else if ( exiDoc->DisconnectChargingDeviceRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 36); + if(errn == 0) { + errn = encode_iso2DisconnectChargingDeviceResType(stream, &exiDoc->DisconnectChargingDeviceRes ); + } + } else if ( exiDoc->EVEnergyTransferParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVEnergyTransferParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 37); + if(errn == 0) { + errn = encode_iso2EVEnergyTransferParameterType(stream, &exiDoc->EVEnergyTransferParameter ); + } + } else if ( exiDoc->EVFinePositioningParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningParameters) */ + errn = encodeNBitUnsignedInteger(stream, 7, 38); + if(errn == 0) { + errn = encode_iso2EVFinePositioningParametersType(stream, &exiDoc->EVFinePositioningParameters ); + } + } else if ( exiDoc->EVFinePositioningSetupParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningSetupParameters) */ + errn = encodeNBitUnsignedInteger(stream, 7, 39); + if(errn == 0) { + errn = encode_iso2EVFinePositioningSetupParametersType(stream, &exiDoc->EVFinePositioningSetupParameters ); + } + } else if ( exiDoc->EVSEEnergyTransferParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyTransferParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 40); + if(errn == 0) { + errn = encode_iso2EVSEEnergyTransferParameterType(stream, &exiDoc->EVSEEnergyTransferParameter ); + } + } else if ( exiDoc->EVSEFinePositioningParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningParameters) */ + errn = encodeNBitUnsignedInteger(stream, 7, 41); + if(errn == 0) { + errn = encode_iso2EVSEFinePositioningParametersType(stream, &exiDoc->EVSEFinePositioningParameters ); + } + } else if ( exiDoc->EVSEFinePositioningSetupParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningSetupParameters) */ + errn = encodeNBitUnsignedInteger(stream, 7, 42); + if(errn == 0) { + errn = encode_iso2EVSEFinePositioningSetupParametersType(stream, &exiDoc->EVSEFinePositioningSetupParameters ); + } + } else if ( exiDoc->FinePositioningReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 43); + if(errn == 0) { + errn = encode_iso2FinePositioningReqType(stream, &exiDoc->FinePositioningReq ); + } + } else if ( exiDoc->FinePositioningRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 44); + if(errn == 0) { + errn = encode_iso2FinePositioningResType(stream, &exiDoc->FinePositioningRes ); + } + } else if ( exiDoc->FinePositioningSetupReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 45); + if(errn == 0) { + errn = encode_iso2FinePositioningSetupReqType(stream, &exiDoc->FinePositioningSetupReq ); + } + } else if ( exiDoc->FinePositioningSetupRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 46); + if(errn == 0) { + errn = encode_iso2FinePositioningSetupResType(stream, &exiDoc->FinePositioningSetupRes ); + } + } else if ( exiDoc->Generic_EVFinePositioningParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVFinePositioningParameters) */ + errn = encodeNBitUnsignedInteger(stream, 7, 47); + if(errn == 0) { + errn = encode_iso2Generic_EVFinePositioningParametersType(stream, &exiDoc->Generic_EVFinePositioningParameters ); + } + } else if ( exiDoc->Generic_EVSEFinePositioningParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVSEFinePositioningParameters) */ + errn = encodeNBitUnsignedInteger(stream, 7, 48); + if(errn == 0) { + errn = encode_iso2Generic_EVSEFinePositioningParametersType(stream, &exiDoc->Generic_EVSEFinePositioningParameters ); + } + } else if ( exiDoc->KeyInfo_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */ + errn = encodeNBitUnsignedInteger(stream, 7, 49); + if(errn == 0) { + errn = encode_iso2KeyInfoType(stream, &exiDoc->KeyInfo ); + } + } else if ( exiDoc->KeyName_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */ + errn = encodeNBitUnsignedInteger(stream, 7, 50); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiDoc->KeyName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiDoc->KeyName.characters, exiDoc->KeyName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiDoc->KeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 7, 51); + if(errn == 0) { + errn = encode_iso2KeyValueType(stream, &exiDoc->KeyValue ); + } + } else if ( exiDoc->LFA_EVFinePositioningParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningParameters) */ + errn = encodeNBitUnsignedInteger(stream, 7, 52); + if(errn == 0) { + errn = encode_iso2LFA_EVFinePositioningParametersType(stream, &exiDoc->LFA_EVFinePositioningParameters ); + } + } else if ( exiDoc->LFA_EVFinePositioningSetupParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningSetupParameters) */ + errn = encodeNBitUnsignedInteger(stream, 7, 53); + if(errn == 0) { + errn = encode_iso2LFA_EVFinePositioningSetupParametersType(stream, &exiDoc->LFA_EVFinePositioningSetupParameters ); + } + } else if ( exiDoc->LFA_EVSEFinePositioningParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningParameters) */ + errn = encodeNBitUnsignedInteger(stream, 7, 54); + if(errn == 0) { + errn = encode_iso2LFA_EVSEFinePositioningParametersType(stream, &exiDoc->LFA_EVSEFinePositioningParameters ); + } + } else if ( exiDoc->LFA_EVSEFinePositioningSetupParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningSetupParameters) */ + errn = encodeNBitUnsignedInteger(stream, 7, 55); + if(errn == 0) { + errn = encode_iso2LFA_EVSEFinePositioningSetupParametersType(stream, &exiDoc->LFA_EVSEFinePositioningSetupParameters ); + } + } else if ( exiDoc->MV_EVSEFinePositioningParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningParameters) */ + errn = encodeNBitUnsignedInteger(stream, 7, 56); + if(errn == 0) { + errn = encode_iso2MV_EVSEFinePositioningParametersType(stream, &exiDoc->MV_EVSEFinePositioningParameters ); + } + } else if ( exiDoc->MV_EVSEFinePositioningSetupParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningSetupParameters) */ + errn = encodeNBitUnsignedInteger(stream, 7, 57); + if(errn == 0) { + errn = encode_iso2MV_EVSEFinePositioningSetupParametersType(stream, &exiDoc->MV_EVSEFinePositioningSetupParameters ); + } + } else if ( exiDoc->Manifest_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */ + errn = encodeNBitUnsignedInteger(stream, 7, 58); + if(errn == 0) { + errn = encode_iso2ManifestType(stream, &exiDoc->Manifest ); + } + } else if ( exiDoc->MeteringReceiptReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 59); + if(errn == 0) { + errn = encode_iso2MeteringReceiptReqType(stream, &exiDoc->MeteringReceiptReq ); + } + } else if ( exiDoc->MeteringReceiptRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 60); + if(errn == 0) { + errn = encode_iso2MeteringReceiptResType(stream, &exiDoc->MeteringReceiptRes ); + } + } else if ( exiDoc->MgmtData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */ + errn = encodeNBitUnsignedInteger(stream, 7, 61); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiDoc->MgmtData.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiDoc->MgmtData.characters, exiDoc->MgmtData.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiDoc->Object_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */ + errn = encodeNBitUnsignedInteger(stream, 7, 62); + if(errn == 0) { + errn = encode_iso2ObjectType(stream, &exiDoc->Object ); + } + } else if ( exiDoc->PGPData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */ + errn = encodeNBitUnsignedInteger(stream, 7, 63); + if(errn == 0) { + errn = encode_iso2PGPDataType(stream, &exiDoc->PGPData ); + } + } else if ( exiDoc->PMaxScheduleEntry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxScheduleEntry) */ + errn = encodeNBitUnsignedInteger(stream, 7, 64); + if(errn == 0) { + errn = encode_iso2PMaxScheduleEntryType(stream, &exiDoc->PMaxScheduleEntry ); + } + } else if ( exiDoc->PairingReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 65); + if(errn == 0) { + errn = encode_iso2PairingReqType(stream, &exiDoc->PairingReq ); + } + } else if ( exiDoc->PairingRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 66); + if(errn == 0) { + errn = encode_iso2PairingResType(stream, &exiDoc->PairingRes ); + } + } else if ( exiDoc->PaymentDetailsReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 67); + if(errn == 0) { + errn = encode_iso2PaymentDetailsReqType(stream, &exiDoc->PaymentDetailsReq ); + } + } else if ( exiDoc->PaymentDetailsRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 68); + if(errn == 0) { + errn = encode_iso2PaymentDetailsResType(stream, &exiDoc->PaymentDetailsRes ); + } + } else if ( exiDoc->PaymentServiceSelectionReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 69); + if(errn == 0) { + errn = encode_iso2PaymentServiceSelectionReqType(stream, &exiDoc->PaymentServiceSelectionReq ); + } + } else if ( exiDoc->PaymentServiceSelectionRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 70); + if(errn == 0) { + errn = encode_iso2PaymentServiceSelectionResType(stream, &exiDoc->PaymentServiceSelectionRes ); + } + } else if ( exiDoc->PowerDeliveryReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 71); + if(errn == 0) { + errn = encode_iso2PowerDeliveryReqType(stream, &exiDoc->PowerDeliveryReq ); + } + } else if ( exiDoc->PowerDeliveryRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 72); + if(errn == 0) { + errn = encode_iso2PowerDeliveryResType(stream, &exiDoc->PowerDeliveryRes ); + } + } else if ( exiDoc->PowerDemandReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 73); + if(errn == 0) { + errn = encode_iso2PowerDemandReqType(stream, &exiDoc->PowerDemandReq ); + } + } else if ( exiDoc->PowerDemandRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 74); + if(errn == 0) { + errn = encode_iso2PowerDemandResType(stream, &exiDoc->PowerDemandRes ); + } + } else if ( exiDoc->PreChargeReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 75); + if(errn == 0) { + errn = encode_iso2PreChargeReqType(stream, &exiDoc->PreChargeReq ); + } + } else if ( exiDoc->PreChargeRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 76); + if(errn == 0) { + errn = encode_iso2PreChargeResType(stream, &exiDoc->PreChargeRes ); + } + } else if ( exiDoc->RSAKeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 7, 77); + if(errn == 0) { + errn = encode_iso2RSAKeyValueType(stream, &exiDoc->RSAKeyValue ); + } + } else if ( exiDoc->Reference_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */ + errn = encodeNBitUnsignedInteger(stream, 7, 78); + if(errn == 0) { + errn = encode_iso2ReferenceType(stream, &exiDoc->Reference ); + } + } else if ( exiDoc->RelativeTimeInterval_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RelativeTimeInterval) */ + errn = encodeNBitUnsignedInteger(stream, 7, 79); + if(errn == 0) { + errn = encode_iso2RelativeTimeIntervalType(stream, &exiDoc->RelativeTimeInterval ); + } + } else if ( exiDoc->RetrievalMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */ + errn = encodeNBitUnsignedInteger(stream, 7, 80); + if(errn == 0) { + errn = encode_iso2RetrievalMethodType(stream, &exiDoc->RetrievalMethod ); + } + } else if ( exiDoc->SAScheduleList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleList) */ + errn = encodeNBitUnsignedInteger(stream, 7, 81); + if(errn == 0) { + errn = encode_iso2SAScheduleListType(stream, &exiDoc->SAScheduleList ); + } + } else if ( exiDoc->SPKIData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */ + errn = encodeNBitUnsignedInteger(stream, 7, 82); + if(errn == 0) { + errn = encode_iso2SPKIDataType(stream, &exiDoc->SPKIData ); + } + } else if ( exiDoc->SalesTariffEntry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffEntry) */ + errn = encodeNBitUnsignedInteger(stream, 7, 83); + if(errn == 0) { + errn = encode_iso2SalesTariffEntryType(stream, &exiDoc->SalesTariffEntry ); + } + } else if ( exiDoc->ServiceDetailReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 84); + if(errn == 0) { + errn = encode_iso2ServiceDetailReqType(stream, &exiDoc->ServiceDetailReq ); + } + } else if ( exiDoc->ServiceDetailRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 85); + if(errn == 0) { + errn = encode_iso2ServiceDetailResType(stream, &exiDoc->ServiceDetailRes ); + } + } else if ( exiDoc->ServiceDiscoveryReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 86); + if(errn == 0) { + errn = encode_iso2ServiceDiscoveryReqType(stream, &exiDoc->ServiceDiscoveryReq ); + } + } else if ( exiDoc->ServiceDiscoveryRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 87); + if(errn == 0) { + errn = encode_iso2ServiceDiscoveryResType(stream, &exiDoc->ServiceDiscoveryRes ); + } + } else if ( exiDoc->SessionSetupReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 88); + if(errn == 0) { + errn = encode_iso2SessionSetupReqType(stream, &exiDoc->SessionSetupReq ); + } + } else if ( exiDoc->SessionSetupRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 89); + if(errn == 0) { + errn = encode_iso2SessionSetupResType(stream, &exiDoc->SessionSetupRes ); + } + } else if ( exiDoc->SessionStopReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 90); + if(errn == 0) { + errn = encode_iso2SessionStopReqType(stream, &exiDoc->SessionStopReq ); + } + } else if ( exiDoc->SessionStopRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 91); + if(errn == 0) { + errn = encode_iso2SessionStopResType(stream, &exiDoc->SessionStopRes ); + } + } else if ( exiDoc->Signature_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */ + errn = encodeNBitUnsignedInteger(stream, 7, 92); + if(errn == 0) { + errn = encode_iso2SignatureType(stream, &exiDoc->Signature ); + } + } else if ( exiDoc->SignatureMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */ + errn = encodeNBitUnsignedInteger(stream, 7, 93); + if(errn == 0) { + errn = encode_iso2SignatureMethodType(stream, &exiDoc->SignatureMethod ); + } + } else if ( exiDoc->SignatureProperties_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */ + errn = encodeNBitUnsignedInteger(stream, 7, 94); + if(errn == 0) { + errn = encode_iso2SignaturePropertiesType(stream, &exiDoc->SignatureProperties ); + } + } else if ( exiDoc->SignatureProperty_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */ + errn = encodeNBitUnsignedInteger(stream, 7, 95); + if(errn == 0) { + errn = encode_iso2SignaturePropertyType(stream, &exiDoc->SignatureProperty ); + } + } else if ( exiDoc->SignatureValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */ + errn = encodeNBitUnsignedInteger(stream, 7, 96); + if(errn == 0) { + errn = encode_iso2SignatureValueType(stream, &exiDoc->SignatureValue ); + } + } else if ( exiDoc->SignedInfo_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */ + errn = encodeNBitUnsignedInteger(stream, 7, 97); + if(errn == 0) { + errn = encode_iso2SignedInfoType(stream, &exiDoc->SignedInfo ); + } + } else if ( exiDoc->SystemStatusReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 98); + if(errn == 0) { + errn = encode_iso2SystemStatusReqType(stream, &exiDoc->SystemStatusReq ); + } + } else if ( exiDoc->SystemStatusRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 99); + if(errn == 0) { + errn = encode_iso2SystemStatusResType(stream, &exiDoc->SystemStatusRes ); + } + } else if ( exiDoc->Transform_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */ + errn = encodeNBitUnsignedInteger(stream, 7, 100); + if(errn == 0) { + errn = encode_iso2TransformType(stream, &exiDoc->Transform ); + } + } else if ( exiDoc->Transforms_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */ + errn = encodeNBitUnsignedInteger(stream, 7, 101); + if(errn == 0) { + errn = encode_iso2TransformsType(stream, &exiDoc->Transforms ); + } + } else if ( exiDoc->V2GRequest_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GRequest) */ + errn = encodeNBitUnsignedInteger(stream, 7, 102); + if(errn == 0) { + errn = encode_iso2BodyBaseType(stream, &exiDoc->V2GRequest ); + } + } else if ( exiDoc->V2GResponse_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GResponse) */ + errn = encodeNBitUnsignedInteger(stream, 7, 103); + if(errn == 0) { + errn = encode_iso2V2GResponseType(stream, &exiDoc->V2GResponse ); + } + } else if ( exiDoc->V2G_Message_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDef}V2G_Message) */ + errn = encodeNBitUnsignedInteger(stream, 7, 104); + if(errn == 0) { + errn = encode_iso2AnonType_V2G_Message(stream, &exiDoc->V2G_Message ); + } + } else if ( exiDoc->VehicleCheckInReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 105); + if(errn == 0) { + errn = encode_iso2VehicleCheckInReqType(stream, &exiDoc->VehicleCheckInReq ); + } + } else if ( exiDoc->VehicleCheckInRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 106); + if(errn == 0) { + errn = encode_iso2VehicleCheckInResType(stream, &exiDoc->VehicleCheckInRes ); + } + } else if ( exiDoc->VehicleCheckOutReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 107); + if(errn == 0) { + errn = encode_iso2VehicleCheckOutReqType(stream, &exiDoc->VehicleCheckOutReq ); + } + } else if ( exiDoc->VehicleCheckOutRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 108); + if(errn == 0) { + errn = encode_iso2VehicleCheckOutResType(stream, &exiDoc->VehicleCheckOutRes ); + } + } else if ( exiDoc->WPT_EVChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 109); + if(errn == 0) { + errn = encode_iso2WPT_EVChargeParameterType(stream, &exiDoc->WPT_EVChargeParameter ); + } + } else if ( exiDoc->WPT_EVSEChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVSEChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 7, 110); + if(errn == 0) { + errn = encode_iso2WPT_EVSEChargeParameterType(stream, &exiDoc->WPT_EVSEChargeParameter ); + } + } else if ( exiDoc->WeldingDetectionReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionReq) */ + errn = encodeNBitUnsignedInteger(stream, 7, 111); + if(errn == 0) { + errn = encode_iso2WeldingDetectionReqType(stream, &exiDoc->WeldingDetectionReq ); + } + } else if ( exiDoc->WeldingDetectionRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionRes) */ + errn = encodeNBitUnsignedInteger(stream, 7, 112); + if(errn == 0) { + errn = encode_iso2WeldingDetectionResType(stream, &exiDoc->WeldingDetectionRes ); + } + } else if ( exiDoc->X509Data_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */ + errn = encodeNBitUnsignedInteger(stream, 7, 113); + if(errn == 0) { + errn = encode_iso2X509DataType(stream, &exiDoc->X509Data ); + } + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + + } + + if(errn == 0) { + /* flush any pending bits */ + errn = encodeFinish(stream); + } + + return errn; +} + +#if DEPLOY_ISO2_CODEC_FRAGMENT == SUPPORT_YES +int encode_iso2ExiFragment(bitstream_t* stream, struct iso2EXIFragment* exiFrag) { + errn = writeEXIHeader(stream); + + if(errn == 0) { + /* FragmentContent[START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AlignmentOffset), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AngleGAtoVA), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BuyBackTariff), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingPerformance), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CheckOutTime), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentRange), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEBidirectionalParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Distance), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCheckInStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCheckOutStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVElectricalChargingDeviceStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVEnergyTransferParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVInputPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumPower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMechanicalChargingDeviceStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVPresentActivePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVPresentReactivePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVProcessing), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECheckOutStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEElectricalChargingDeviceStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyTransferParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumDischargePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumPower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMechanicalChargingDeviceStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumChargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumDischargeCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENominalFrequency), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEOutputPower), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetReactivePower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVTargetEnergyRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EffectiveRadiatedPower), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EnergyTransferServiceList), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Exponent), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FODStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FrequencyChannel), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}GAID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}GenChallenge), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}GenericParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVSEFinePositioningParameters), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2016:MsgDef}Header), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningSetupParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorList), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetupList), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MaxSupportingPoints), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementDataList), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterReadingCharged), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterReadingDischarged), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MinimumPMaxRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumPMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSensors), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSignalPackages), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OperationMode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxDischargeSchedule), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PackageIndex), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PackageSeparationTime), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ParkingMethod), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandParameters), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RotationVAtoGA), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedEnergyTransferService), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedVASList), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorID), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorList), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorOrder), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorOrientation), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackageList), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2016:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalFrequency), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalPulseDuration), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalSeparationTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SupportedServiceIDs), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusRes), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}TargetOffset), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetOffsetX), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetOffsetY), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GRequest), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GResponse), START_ELEMENT({urn:iso:15118:2:2016:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VASList), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutRes), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleSpace), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}XCoordinate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}YCoordinate), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ZCoordinate), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2016:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_DOCUMENT] */ + if ( exiFrag->AC_BidirectionalControlReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 0); + if(errn == 0) { + errn = encode_iso2AC_BidirectionalControlReqType(stream, &exiFrag->AC_BidirectionalControlReq ); + } + } else if ( exiFrag->AC_BidirectionalControlRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AC_BidirectionalControlRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 1); + if(errn == 0) { + errn = encode_iso2AC_BidirectionalControlResType(stream, &exiFrag->AC_BidirectionalControlRes ); + } + } else if ( exiFrag->AC_EVBidirectionalParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVBidirectionalParameter) */ + errn = encodeNBitUnsignedInteger(stream, 9, 2); + if(errn == 0) { + errn = encode_iso2AC_EVBidirectionalParameterType(stream, &exiFrag->AC_EVBidirectionalParameter ); + } + } else if ( exiFrag->AC_EVChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 9, 3); + if(errn == 0) { + errn = encode_iso2AC_EVChargeParameterType(stream, &exiFrag->AC_EVChargeParameter ); + } + } else if ( exiFrag->AC_EVSEBidirectionalParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEBidirectionalParameter) */ + errn = encodeNBitUnsignedInteger(stream, 9, 4); + if(errn == 0) { + errn = encode_iso2AC_EVSEBidirectionalParameterType(stream, &exiFrag->AC_EVSEBidirectionalParameter ); + } + } else if ( exiFrag->AC_EVSEChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AC_EVSEChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 9, 5); + if(errn == 0) { + errn = encode_iso2AC_EVSEChargeParameterType(stream, &exiFrag->AC_EVSEChargeParameter ); + } + } else if ( exiFrag->AlignmentCheckParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckParameters) */ + errn = encodeNBitUnsignedInteger(stream, 9, 6); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &exiFrag->AlignmentCheckParameters ); + } + } else if ( exiFrag->AlignmentCheckReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 7); + if(errn == 0) { + errn = encode_iso2AlignmentCheckReqType(stream, &exiFrag->AlignmentCheckReq ); + } + } else if ( exiFrag->AlignmentCheckRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AlignmentCheckRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 8); + if(errn == 0) { + errn = encode_iso2AlignmentCheckResType(stream, &exiFrag->AlignmentCheckRes ); + } + } else if ( exiFrag->AlignmentOffset_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AlignmentOffset) */ + errn = encodeNBitUnsignedInteger(stream, 9, 9); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, exiFrag->AlignmentOffset); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->AngleGAtoVA_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}AngleGAtoVA) */ + errn = encodeNBitUnsignedInteger(stream, 9, 10); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->AngleGAtoVA ); + } + } else if ( exiFrag->AuthorizationReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 11); + if(errn == 0) { + errn = encode_iso2AuthorizationReqType(stream, &exiFrag->AuthorizationReq ); + } + } else if ( exiFrag->AuthorizationRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}AuthorizationRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 12); + if(errn == 0) { + errn = encode_iso2AuthorizationResType(stream, &exiFrag->AuthorizationRes ); + } + } else if ( exiFrag->Body_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDef}Body) */ + errn = encodeNBitUnsignedInteger(stream, 9, 13); + if(errn == 0) { + errn = encode_iso2BodyType(stream, &exiFrag->Body ); + } + } else if ( exiFrag->BodyElement_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}BodyElement) */ + errn = encodeNBitUnsignedInteger(stream, 9, 14); + if(errn == 0) { + errn = encode_iso2BodyBaseType(stream, &exiFrag->BodyElement ); + } + } else if ( exiFrag->BulkChargingComplete_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkChargingComplete) */ + errn = encodeNBitUnsignedInteger(stream, 9, 15); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->BulkChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->BulkSOC_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BulkSOC) */ + errn = encodeNBitUnsignedInteger(stream, 9, 16); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(exiFrag->BulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->BuyBackTariff_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}BuyBackTariff) */ + errn = encodeNBitUnsignedInteger(stream, 9, 17); + if(errn == 0) { + errn = encode_iso2SalesTariffType(stream, &exiFrag->BuyBackTariff ); + } + } else if ( exiFrag->CableCheckReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 18); + if(errn == 0) { + errn = encode_iso2CableCheckReqType(stream, &exiFrag->CableCheckReq ); + } + } else if ( exiFrag->CableCheckRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CableCheckRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 19); + if(errn == 0) { + errn = encode_iso2CableCheckResType(stream, &exiFrag->CableCheckRes ); + } + } else if ( exiFrag->CanonicalizationMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */ + errn = encodeNBitUnsignedInteger(stream, 9, 20); + if(errn == 0) { + errn = encode_iso2CanonicalizationMethodType(stream, &exiFrag->CanonicalizationMethod ); + } + } else if ( exiFrag->Certificate_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Certificate) */ + errn = encodeNBitUnsignedInteger(stream, 9, 21); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Certificate.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Certificate.bytes, exiFrag->Certificate.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->CertificateInstallationReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 22); + if(errn == 0) { + errn = encode_iso2CertificateInstallationReqType(stream, &exiFrag->CertificateInstallationReq ); + } + } else if ( exiFrag->CertificateInstallationRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateInstallationRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 23); + if(errn == 0) { + errn = encode_iso2CertificateInstallationResType(stream, &exiFrag->CertificateInstallationRes ); + } + } else if ( exiFrag->CertificateUpdateReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 24); + if(errn == 0) { + errn = encode_iso2CertificateUpdateReqType(stream, &exiFrag->CertificateUpdateReq ); + } + } else if ( exiFrag->CertificateUpdateRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CertificateUpdateRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 25); + if(errn == 0) { + errn = encode_iso2CertificateUpdateResType(stream, &exiFrag->CertificateUpdateRes ); + } + } else if ( exiFrag->ChargeParameterDiscoveryReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 26); + if(errn == 0) { + errn = encode_iso2ChargeParameterDiscoveryReqType(stream, &exiFrag->ChargeParameterDiscoveryReq ); + } + } else if ( exiFrag->ChargeParameterDiscoveryRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeParameterDiscoveryRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 27); + if(errn == 0) { + errn = encode_iso2ChargeParameterDiscoveryResType(stream, &exiFrag->ChargeParameterDiscoveryRes ); + } + } else if ( exiFrag->ChargeProgress_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargeProgress) */ + errn = encodeNBitUnsignedInteger(stream, 9, 28); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->ChargeProgress); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ChargingComplete_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingComplete) */ + errn = encodeNBitUnsignedInteger(stream, 9, 29); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->ChargingComplete); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ChargingPerformance_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ChargingPerformance) */ + errn = encodeNBitUnsignedInteger(stream, 9, 30); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->ChargingPerformance ); + } + } else if ( exiFrag->ChargingProfile_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingProfile) */ + errn = encodeNBitUnsignedInteger(stream, 9, 31); + if(errn == 0) { + errn = encode_iso2ChargingProfileType(stream, &exiFrag->ChargingProfile ); + } + } else if ( exiFrag->ChargingSession_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingSession) */ + errn = encodeNBitUnsignedInteger(stream, 9, 32); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, exiFrag->ChargingSession); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ChargingStatusReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 33); + if(errn == 0) { + errn = encode_iso2ChargingStatusReqType(stream, &exiFrag->ChargingStatusReq ); + } + } else if ( exiFrag->ChargingStatusRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ChargingStatusRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 34); + if(errn == 0) { + errn = encode_iso2ChargingStatusResType(stream, &exiFrag->ChargingStatusRes ); + } + } else if ( exiFrag->CheckOutTime_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CheckOutTime) */ + errn = encodeNBitUnsignedInteger(stream, 9, 35); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger64(stream, exiFrag->CheckOutTime); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ConnectChargingDeviceReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 36); + if(errn == 0) { + errn = encode_iso2ConnectChargingDeviceReqType(stream, &exiFrag->ConnectChargingDeviceReq ); + } + } else if ( exiFrag->ConnectChargingDeviceRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ConnectChargingDeviceRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 37); + if(errn == 0) { + errn = encode_iso2ConnectChargingDeviceResType(stream, &exiFrag->ConnectChargingDeviceRes ); + } + } else if ( exiFrag->ConsumptionCost_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ConsumptionCost) */ + errn = encodeNBitUnsignedInteger(stream, 9, 38); + if(errn == 0) { + errn = encode_iso2ConsumptionCostType(stream, &exiFrag->ConsumptionCost ); + } + } else if ( exiFrag->ContractSignatureCertChain_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureCertChain) */ + errn = encodeNBitUnsignedInteger(stream, 9, 39); + if(errn == 0) { + errn = encode_iso2CertificateChainType(stream, &exiFrag->ContractSignatureCertChain ); + } + } else if ( exiFrag->ContractSignatureEncryptedPrivateKey_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ContractSignatureEncryptedPrivateKey) */ + errn = encodeNBitUnsignedInteger(stream, 9, 40); + if(errn == 0) { + errn = encode_iso2ContractSignatureEncryptedPrivateKeyType(stream, &exiFrag->ContractSignatureEncryptedPrivateKey ); + } + } else if ( exiFrag->Cost_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Cost) */ + errn = encodeNBitUnsignedInteger(stream, 9, 41); + if(errn == 0) { + errn = encode_iso2CostType(stream, &exiFrag->Cost ); + } + } else if ( exiFrag->CurrentDemandReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 42); + if(errn == 0) { + errn = encode_iso2CurrentDemandReqType(stream, &exiFrag->CurrentDemandReq ); + } + } else if ( exiFrag->CurrentDemandRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}CurrentDemandRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 43); + if(errn == 0) { + errn = encode_iso2CurrentDemandResType(stream, &exiFrag->CurrentDemandRes ); + } + } else if ( exiFrag->CurrentRange_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentRange) */ + errn = encodeNBitUnsignedInteger(stream, 9, 44); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, exiFrag->CurrentRange); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->CurrentSOC_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}CurrentSOC) */ + errn = encodeNBitUnsignedInteger(stream, 9, 45); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(exiFrag->CurrentSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->DC_BidirectionalControlReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 46); + if(errn == 0) { + errn = encode_iso2DC_BidirectionalControlReqType(stream, &exiFrag->DC_BidirectionalControlReq ); + } + } else if ( exiFrag->DC_BidirectionalControlRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DC_BidirectionalControlRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 47); + if(errn == 0) { + errn = encode_iso2DC_BidirectionalControlResType(stream, &exiFrag->DC_BidirectionalControlRes ); + } + } else if ( exiFrag->DC_EVBidirectionalParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVBidirectionalParameter) */ + errn = encodeNBitUnsignedInteger(stream, 9, 48); + if(errn == 0) { + errn = encode_iso2DC_EVBidirectionalParameterType(stream, &exiFrag->DC_EVBidirectionalParameter ); + } + } else if ( exiFrag->DC_EVChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 9, 49); + if(errn == 0) { + errn = encode_iso2DC_EVChargeParameterType(stream, &exiFrag->DC_EVChargeParameter ); + } + } else if ( exiFrag->DC_EVSEBidirectionalParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEBidirectionalParameter) */ + errn = encodeNBitUnsignedInteger(stream, 9, 50); + if(errn == 0) { + errn = encode_iso2DC_EVSEBidirectionalParameterType(stream, &exiFrag->DC_EVSEBidirectionalParameter ); + } + } else if ( exiFrag->DC_EVSEChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DC_EVSEChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 9, 51); + if(errn == 0) { + errn = encode_iso2DC_EVSEChargeParameterType(stream, &exiFrag->DC_EVSEChargeParameter ); + } + } else if ( exiFrag->DHpublickey_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DHpublickey) */ + errn = encodeNBitUnsignedInteger(stream, 9, 52); + if(errn == 0) { + errn = encode_iso2DiffieHellmanPublickeyType(stream, &exiFrag->DHpublickey ); + } + } else if ( exiFrag->DSAKeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 9, 53); + if(errn == 0) { + errn = encode_iso2DSAKeyValueType(stream, &exiFrag->DSAKeyValue ); + } + } else if ( exiFrag->DepartureTime_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}DepartureTime) */ + errn = encodeNBitUnsignedInteger(stream, 9, 54); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, exiFrag->DepartureTime); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->DigestMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */ + errn = encodeNBitUnsignedInteger(stream, 9, 55); + if(errn == 0) { + errn = encode_iso2DigestMethodType(stream, &exiFrag->DigestMethod ); + } + } else if ( exiFrag->DigestValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */ + errn = encodeNBitUnsignedInteger(stream, 9, 56); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->DigestValue.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->DigestValue.bytes, exiFrag->DigestValue.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->DisconnectChargingDeviceReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 57); + if(errn == 0) { + errn = encode_iso2DisconnectChargingDeviceReqType(stream, &exiFrag->DisconnectChargingDeviceReq ); + } + } else if ( exiFrag->DisconnectChargingDeviceRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisconnectChargingDeviceRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 58); + if(errn == 0) { + errn = encode_iso2DisconnectChargingDeviceResType(stream, &exiFrag->DisconnectChargingDeviceRes ); + } + } else if ( exiFrag->DisplayParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}DisplayParameters) */ + errn = encodeNBitUnsignedInteger(stream, 9, 59); + if(errn == 0) { + errn = encode_iso2DisplayParametersType(stream, &exiFrag->DisplayParameters ); + } + } else if ( exiFrag->Distance_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Distance) */ + errn = encodeNBitUnsignedInteger(stream, 9, 60); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, exiFrag->Distance); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EPriceLevel_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EPriceLevel) */ + errn = encodeNBitUnsignedInteger(stream, 9, 61); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->EPriceLevel - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVCCID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCCID) */ + errn = encodeNBitUnsignedInteger(stream, 9, 62); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->EVCCID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->EVCCID.bytes, exiFrag->EVCCID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVCheckInStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCheckInStatus) */ + errn = encodeNBitUnsignedInteger(stream, 9, 63); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->EVCheckInStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVCheckOutStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVCheckOutStatus) */ + errn = encodeNBitUnsignedInteger(stream, 9, 64); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->EVCheckOutStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVElectricalChargingDeviceStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVElectricalChargingDeviceStatus) */ + errn = encodeNBitUnsignedInteger(stream, 9, 65); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, exiFrag->EVElectricalChargingDeviceStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVEnergyTransferParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVEnergyTransferParameter) */ + errn = encodeNBitUnsignedInteger(stream, 9, 66); + if(errn == 0) { + errn = encode_iso2EVEnergyTransferParameterType(stream, &exiFrag->EVEnergyTransferParameter ); + } + } else if ( exiFrag->EVFinePositioningParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningParameters) */ + errn = encodeNBitUnsignedInteger(stream, 9, 67); + if(errn == 0) { + errn = encode_iso2EVFinePositioningParametersType(stream, &exiFrag->EVFinePositioningParameters ); + } + } else if ( exiFrag->EVFinePositioningSetupParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVFinePositioningSetupParameters) */ + errn = encodeNBitUnsignedInteger(stream, 9, 68); + if(errn == 0) { + errn = encode_iso2EVFinePositioningSetupParametersType(stream, &exiFrag->EVFinePositioningSetupParameters ); + } + } else if ( exiFrag->EVInputPower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVInputPower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 69); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVInputPower ); + } + } else if ( exiFrag->EVMaximumChargeCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargeCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 9, 70); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumChargeCurrent ); + } + } else if ( exiFrag->EVMaximumChargeCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargeCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 9, 71); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumChargeCurrent ); + } + } else if ( exiFrag->EVMaximumChargePower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumChargePower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 72); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumChargePower ); + } + } else if ( exiFrag->EVMaximumChargePower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumChargePower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 73); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumChargePower ); + } + } else if ( exiFrag->EVMaximumCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 9, 74); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumCurrent ); + } + } else if ( exiFrag->EVMaximumDischargeCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargeCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 9, 75); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumDischargeCurrent ); + } + } else if ( exiFrag->EVMaximumDischargeCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargeCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 9, 76); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumDischargeCurrent ); + } + } else if ( exiFrag->EVMaximumDischargePower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumDischargePower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 77); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumDischargePower ); + } + } else if ( exiFrag->EVMaximumDischargePower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumDischargePower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 78); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumDischargePower ); + } + } else if ( exiFrag->EVMaximumEnergyRequest_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumEnergyRequest) */ + errn = encodeNBitUnsignedInteger(stream, 9, 79); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumEnergyRequest ); + } + } else if ( exiFrag->EVMaximumEnergyRequest_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumEnergyRequest) */ + errn = encodeNBitUnsignedInteger(stream, 9, 80); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumEnergyRequest ); + } + } else if ( exiFrag->EVMaximumPower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumPower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 81); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumPower ); + } + } else if ( exiFrag->EVMaximumPower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumPower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 82); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumPower ); + } + } else if ( exiFrag->EVMaximumVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMaximumVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 9, 83); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumVoltage ); + } + } else if ( exiFrag->EVMaximumVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMaximumVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 9, 84); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMaximumVoltage ); + } + } else if ( exiFrag->EVMechanicalChargingDeviceStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMechanicalChargingDeviceStatus) */ + errn = encodeNBitUnsignedInteger(stream, 9, 85); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->EVMechanicalChargingDeviceStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVMinimumChargeCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumChargeCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 9, 86); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumChargeCurrent ); + } + } else if ( exiFrag->EVMinimumChargeCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargeCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 9, 87); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumChargeCurrent ); + } + } else if ( exiFrag->EVMinimumChargePower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumChargePower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 88); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumChargePower ); + } + } else if ( exiFrag->EVMinimumDischargeCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumDischargeCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 9, 89); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumDischargeCurrent ); + } + } else if ( exiFrag->EVMinimumDischargeCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargeCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 9, 90); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumDischargeCurrent ); + } + } else if ( exiFrag->EVMinimumDischargePower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumDischargePower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 91); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumDischargePower ); + } + } else if ( exiFrag->EVMinimumEnergyRequest_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumEnergyRequest) */ + errn = encodeNBitUnsignedInteger(stream, 9, 92); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumEnergyRequest ); + } + } else if ( exiFrag->EVMinimumEnergyRequest_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumEnergyRequest) */ + errn = encodeNBitUnsignedInteger(stream, 9, 93); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumEnergyRequest ); + } + } else if ( exiFrag->EVMinimumPower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumPower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 94); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumPower ); + } + } else if ( exiFrag->EVMinimumVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVMinimumVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 9, 95); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumVoltage ); + } + } else if ( exiFrag->EVMinimumVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVMinimumVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 9, 96); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVMinimumVoltage ); + } + } else if ( exiFrag->EVOperation_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVOperation) */ + errn = encodeNBitUnsignedInteger(stream, 9, 97); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, exiFrag->EVOperation); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVPresentActivePower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVPresentActivePower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 98); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVPresentActivePower ); + } + } else if ( exiFrag->EVPresentReactivePower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVPresentReactivePower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 99); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVPresentReactivePower ); + } + } else if ( exiFrag->EVProcessing_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVProcessing) */ + errn = encodeNBitUnsignedInteger(stream, 9, 100); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->EVProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSECheckOutStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECheckOutStatus) */ + errn = encodeNBitUnsignedInteger(stream, 9, 101); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->EVSECheckOutStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSECurrentLimitAchieved_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSECurrentLimitAchieved) */ + errn = encodeNBitUnsignedInteger(stream, 9, 102); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->EVSECurrentLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSECurrentRegulationTolerance_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSECurrentRegulationTolerance) */ + errn = encodeNBitUnsignedInteger(stream, 9, 103); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSECurrentRegulationTolerance ); + } + } else if ( exiFrag->EVSEElectricalChargingDeviceStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEElectricalChargingDeviceStatus) */ + errn = encodeNBitUnsignedInteger(stream, 9, 104); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, exiFrag->EVSEElectricalChargingDeviceStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEEnergyToBeDelivered_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyToBeDelivered) */ + errn = encodeNBitUnsignedInteger(stream, 9, 105); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEEnergyToBeDelivered ); + } + } else if ( exiFrag->EVSEEnergyTransferParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEEnergyTransferParameter) */ + errn = encodeNBitUnsignedInteger(stream, 9, 106); + if(errn == 0) { + errn = encode_iso2EVSEEnergyTransferParameterType(stream, &exiFrag->EVSEEnergyTransferParameter ); + } + } else if ( exiFrag->EVSEFinePositioningParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningParameters) */ + errn = encodeNBitUnsignedInteger(stream, 9, 107); + if(errn == 0) { + errn = encode_iso2EVSEFinePositioningParametersType(stream, &exiFrag->EVSEFinePositioningParameters ); + } + } else if ( exiFrag->EVSEFinePositioningSetupParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEFinePositioningSetupParameters) */ + errn = encodeNBitUnsignedInteger(stream, 9, 108); + if(errn == 0) { + errn = encode_iso2EVSEFinePositioningSetupParametersType(stream, &exiFrag->EVSEFinePositioningSetupParameters ); + } + } else if ( exiFrag->EVSEID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEID) */ + errn = encodeNBitUnsignedInteger(stream, 9, 109); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->EVSEID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->EVSEID.characters, exiFrag->EVSEID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEMaximumChargeCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumChargeCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 9, 110); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumChargeCurrent ); + } + } else if ( exiFrag->EVSEMaximumChargeCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargeCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 9, 111); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumChargeCurrent ); + } + } else if ( exiFrag->EVSEMaximumChargePower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumChargePower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 112); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumChargePower ); + } + } else if ( exiFrag->EVSEMaximumChargePower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumChargePower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 113); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumChargePower ); + } + } else if ( exiFrag->EVSEMaximumCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 9, 114); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumCurrent ); + } + } else if ( exiFrag->EVSEMaximumDischargeCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargeCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 9, 115); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumDischargeCurrent ); + } + } else if ( exiFrag->EVSEMaximumDischargeCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumDischargeCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 9, 116); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumDischargeCurrent ); + } + } else if ( exiFrag->EVSEMaximumDischargePower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumDischargePower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 117); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumDischargePower ); + } + } else if ( exiFrag->EVSEMaximumDischargePower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumDischargePower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 118); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumDischargePower ); + } + } else if ( exiFrag->EVSEMaximumPower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumPower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 119); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumPower ); + } + } else if ( exiFrag->EVSEMaximumPower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumPower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 120); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumPower ); + } + } else if ( exiFrag->EVSEMaximumVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMaximumVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 9, 121); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumVoltage ); + } + } else if ( exiFrag->EVSEMaximumVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMaximumVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 9, 122); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEMaximumVoltage ); + } + } else if ( exiFrag->EVSEMechanicalChargingDeviceStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMechanicalChargingDeviceStatus) */ + errn = encodeNBitUnsignedInteger(stream, 9, 123); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->EVSEMechanicalChargingDeviceStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEMinimumChargeCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumChargeCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 9, 124); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEMinimumChargeCurrent ); + } + } else if ( exiFrag->EVSEMinimumDischargeCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumDischargeCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 9, 125); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEMinimumDischargeCurrent ); + } + } else if ( exiFrag->EVSEMinimumPower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumPower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 126); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEMinimumPower ); + } + } else if ( exiFrag->EVSEMinimumVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEMinimumVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 9, 127); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEMinimumVoltage ); + } + } else if ( exiFrag->EVSEMinimumVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEMinimumVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 9, 128); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEMinimumVoltage ); + } + } else if ( exiFrag->EVSENominalFrequency_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENominalFrequency) */ + errn = encodeNBitUnsignedInteger(stream, 9, 129); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSENominalFrequency ); + } + } else if ( exiFrag->EVSENominalVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENominalVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 9, 130); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSENominalVoltage ); + } + } else if ( exiFrag->EVSENotification_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSENotification) */ + errn = encodeNBitUnsignedInteger(stream, 9, 131); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, exiFrag->EVSENotification); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEOutputPower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEOutputPower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 132); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEOutputPower ); + } + } else if ( exiFrag->EVSEPeakCurrentRipple_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVSEPeakCurrentRipple) */ + errn = encodeNBitUnsignedInteger(stream, 9, 133); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEPeakCurrentRipple ); + } + } else if ( exiFrag->EVSEPowerLimitAchieved_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPowerLimitAchieved) */ + errn = encodeNBitUnsignedInteger(stream, 9, 134); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->EVSEPowerLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEPresentCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 9, 135); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEPresentCurrent ); + } + } else if ( exiFrag->EVSEPresentVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEPresentVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 9, 136); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSEPresentVoltage ); + } + } else if ( exiFrag->EVSEProcessing_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEProcessing) */ + errn = encodeNBitUnsignedInteger(stream, 9, 137); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->EVSEProcessing); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEStatus) */ + errn = encodeNBitUnsignedInteger(stream, 9, 138); + if(errn == 0) { + errn = encode_iso2EVSEStatusType(stream, &exiFrag->EVSEStatus ); + } + } else if ( exiFrag->EVSETargetPower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetPower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 139); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSETargetPower ); + } + } else if ( exiFrag->EVSETargetReactivePower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETargetReactivePower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 140); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVSETargetReactivePower ); + } + } else if ( exiFrag->EVSETimeStamp_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSETimeStamp) */ + errn = encodeNBitUnsignedInteger(stream, 9, 141); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, exiFrag->EVSETimeStamp); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVSEVoltageLimitAchieved_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVSEVoltageLimitAchieved) */ + errn = encodeNBitUnsignedInteger(stream, 9, 142); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->EVSEVoltageLimitAchieved); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EVTargetCurrent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetCurrent) */ + errn = encodeNBitUnsignedInteger(stream, 9, 143); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVTargetCurrent ); + } + } else if ( exiFrag->EVTargetEnergyRequest_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetEnergyRequest) */ + errn = encodeNBitUnsignedInteger(stream, 9, 144); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVTargetEnergyRequest ); + } + } else if ( exiFrag->EVTargetEnergyRequest_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EVTargetEnergyRequest) */ + errn = encodeNBitUnsignedInteger(stream, 9, 145); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVTargetEnergyRequest ); + } + } else if ( exiFrag->EVTargetPower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetPower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 146); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVTargetPower ); + } + } else if ( exiFrag->EVTargetVoltage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EVTargetVoltage) */ + errn = encodeNBitUnsignedInteger(stream, 9, 147); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->EVTargetVoltage ); + } + } else if ( exiFrag->EffectiveRadiatedPower_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}EffectiveRadiatedPower) */ + errn = encodeNBitUnsignedInteger(stream, 9, 148); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->EffectiveRadiatedPower + 128)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->EnergyTransferServiceList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}EnergyTransferServiceList) */ + errn = encodeNBitUnsignedInteger(stream, 9, 149); + if(errn == 0) { + errn = encode_iso2ServiceListType(stream, &exiFrag->EnergyTransferServiceList ); + } + } else if ( exiFrag->Exponent_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent) */ + errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name Exponent */ + } else if ( exiFrag->Exponent_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Exponent) */ + errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name Exponent */ + } else if ( exiFrag->FODStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FODStatus) */ + errn = encodeNBitUnsignedInteger(stream, 9, 152); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->FODStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->FinePositioningReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 153); + if(errn == 0) { + errn = encode_iso2FinePositioningReqType(stream, &exiFrag->FinePositioningReq ); + } + } else if ( exiFrag->FinePositioningRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 154); + if(errn == 0) { + errn = encode_iso2FinePositioningResType(stream, &exiFrag->FinePositioningRes ); + } + } else if ( exiFrag->FinePositioningSetupReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 155); + if(errn == 0) { + errn = encode_iso2FinePositioningSetupReqType(stream, &exiFrag->FinePositioningSetupReq ); + } + } else if ( exiFrag->FinePositioningSetupRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}FinePositioningSetupRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 156); + if(errn == 0) { + errn = encode_iso2FinePositioningSetupResType(stream, &exiFrag->FinePositioningSetupRes ); + } + } else if ( exiFrag->FreeService_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FreeService) */ + errn = encodeNBitUnsignedInteger(stream, 9, 157); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->FreeService); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->FrequencyChannel_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}FrequencyChannel) */ + errn = encodeNBitUnsignedInteger(stream, 9, 158); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, exiFrag->FrequencyChannel); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->G_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) */ + errn = encodeNBitUnsignedInteger(stream, 9, 159); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->G.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->G.bytes, exiFrag->G.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->GAID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}GAID) */ + errn = encodeNBitUnsignedInteger(stream, 9, 160); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->GAID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->GAID.characters, exiFrag->GAID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->GenChallenge_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}GenChallenge) */ + errn = encodeNBitUnsignedInteger(stream, 9, 161); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->GenChallenge.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->GenChallenge.bytes, exiFrag->GenChallenge.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->GenericParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}GenericParameters) */ + errn = encodeNBitUnsignedInteger(stream, 9, 162); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &exiFrag->GenericParameters ); + } + } else if ( exiFrag->Generic_EVFinePositioningParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVFinePositioningParameters) */ + errn = encodeNBitUnsignedInteger(stream, 9, 163); + if(errn == 0) { + errn = encode_iso2Generic_EVFinePositioningParametersType(stream, &exiFrag->Generic_EVFinePositioningParameters ); + } + } else if ( exiFrag->Generic_EVSEFinePositioningParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Generic_EVSEFinePositioningParameters) */ + errn = encodeNBitUnsignedInteger(stream, 9, 164); + if(errn == 0) { + errn = encode_iso2Generic_EVSEFinePositioningParametersType(stream, &exiFrag->Generic_EVSEFinePositioningParameters ); + } + } else if ( exiFrag->HMACOutputLength_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) */ + errn = encodeNBitUnsignedInteger(stream, 9, 165); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, exiFrag->HMACOutputLength); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Header_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDef}Header) */ + errn = encodeNBitUnsignedInteger(stream, 9, 166); + if(errn == 0) { + errn = encode_iso2MessageHeaderType(stream, &exiFrag->Header ); + } + } else if ( exiFrag->InletHot_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}InletHot) */ + errn = encodeNBitUnsignedInteger(stream, 9, 167); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->InletHot); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->J_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J) */ + errn = encodeNBitUnsignedInteger(stream, 9, 168); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->J.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->J.bytes, exiFrag->J.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->KeyInfo_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */ + errn = encodeNBitUnsignedInteger(stream, 9, 169); + if(errn == 0) { + errn = encode_iso2KeyInfoType(stream, &exiFrag->KeyInfo ); + } + } else if ( exiFrag->KeyName_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */ + errn = encodeNBitUnsignedInteger(stream, 9, 170); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->KeyName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->KeyName.characters, exiFrag->KeyName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->KeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 9, 171); + if(errn == 0) { + errn = encode_iso2KeyValueType(stream, &exiFrag->KeyValue ); + } + } else if ( exiFrag->LFA_EVFinePositioningParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningParameters) */ + errn = encodeNBitUnsignedInteger(stream, 9, 172); + if(errn == 0) { + errn = encode_iso2LFA_EVFinePositioningParametersType(stream, &exiFrag->LFA_EVFinePositioningParameters ); + } + } else if ( exiFrag->LFA_EVFinePositioningSetupParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVFinePositioningSetupParameters) */ + errn = encodeNBitUnsignedInteger(stream, 9, 173); + if(errn == 0) { + errn = encode_iso2LFA_EVFinePositioningSetupParametersType(stream, &exiFrag->LFA_EVFinePositioningSetupParameters ); + } + } else if ( exiFrag->LFA_EVSEFinePositioningParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningParameters) */ + errn = encodeNBitUnsignedInteger(stream, 9, 174); + if(errn == 0) { + errn = encode_iso2LFA_EVSEFinePositioningParametersType(stream, &exiFrag->LFA_EVSEFinePositioningParameters ); + } + } else if ( exiFrag->LFA_EVSEFinePositioningSetupParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}LFA_EVSEFinePositioningSetupParameters) */ + errn = encodeNBitUnsignedInteger(stream, 9, 175); + if(errn == 0) { + errn = encode_iso2LFA_EVSEFinePositioningSetupParametersType(stream, &exiFrag->LFA_EVSEFinePositioningSetupParameters ); + } + } else if ( exiFrag->ListOfRootCertificateIDs_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ListOfRootCertificateIDs) */ + errn = encodeNBitUnsignedInteger(stream, 9, 176); + if(errn == 0) { + errn = encode_iso2ListOfRootCertificateIDsType(stream, &exiFrag->ListOfRootCertificateIDs ); + } + } else if ( exiFrag->MV_EVSEFinePositioningParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningParameters) */ + errn = encodeNBitUnsignedInteger(stream, 9, 177); + if(errn == 0) { + errn = encode_iso2MV_EVSEFinePositioningParametersType(stream, &exiFrag->MV_EVSEFinePositioningParameters ); + } + } else if ( exiFrag->MV_EVSEFinePositioningSetupParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MV_EVSEFinePositioningSetupParameters) */ + errn = encodeNBitUnsignedInteger(stream, 9, 178); + if(errn == 0) { + errn = encode_iso2MV_EVSEFinePositioningSetupParametersType(stream, &exiFrag->MV_EVSEFinePositioningSetupParameters ); + } + } else if ( exiFrag->MagneticVector_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVector) */ + errn = encodeNBitUnsignedInteger(stream, 9, 179); + if(errn == 0) { + errn = encode_iso2MagneticVectorType(stream, &exiFrag->MagneticVector ); + } + } else if ( exiFrag->MagneticVectorList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorList) */ + errn = encodeNBitUnsignedInteger(stream, 9, 180); + if(errn == 0) { + errn = encode_iso2MagneticVectorListType(stream, &exiFrag->MagneticVectorList ); + } + } else if ( exiFrag->MagneticVectorSetup_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetup) */ + errn = encodeNBitUnsignedInteger(stream, 9, 181); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupType(stream, &exiFrag->MagneticVectorSetup ); + } + } else if ( exiFrag->MagneticVectorSetupList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MagneticVectorSetupList) */ + errn = encodeNBitUnsignedInteger(stream, 9, 182); + if(errn == 0) { + errn = encode_iso2MagneticVectorSetupListType(stream, &exiFrag->MagneticVectorSetupList ); + } + } else if ( exiFrag->Manifest_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */ + errn = encodeNBitUnsignedInteger(stream, 9, 183); + if(errn == 0) { + errn = encode_iso2ManifestType(stream, &exiFrag->Manifest ); + } + } else if ( exiFrag->MaxSupportingPoints_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MaxSupportingPoints) */ + errn = encodeNBitUnsignedInteger(stream, 9, 184); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 10, (uint32_t)(exiFrag->MaxSupportingPoints - 12)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->MeasurementData_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementData) */ + errn = encodeNBitUnsignedInteger(stream, 9, 185); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, exiFrag->MeasurementData); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->MeasurementDataList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeasurementDataList) */ + errn = encodeNBitUnsignedInteger(stream, 9, 186); + if(errn == 0) { + errn = encode_iso2MeasurementDataListType(stream, &exiFrag->MeasurementDataList ); + } + } else if ( exiFrag->MeterID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterID) */ + errn = encodeNBitUnsignedInteger(stream, 9, 187); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->MeterID.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->MeterID.characters, exiFrag->MeterID.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->MeterInfo_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeterInfo) */ + errn = encodeNBitUnsignedInteger(stream, 9, 188); + if(errn == 0) { + errn = encode_iso2MeterInfoType(stream, &exiFrag->MeterInfo ); + } + } else if ( exiFrag->MeterReadingCharged_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterReadingCharged) */ + errn = encodeNBitUnsignedInteger(stream, 9, 189); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger64(stream, exiFrag->MeterReadingCharged); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->MeterReadingDischarged_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterReadingDischarged) */ + errn = encodeNBitUnsignedInteger(stream, 9, 190); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger64(stream, exiFrag->MeterReadingDischarged); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->MeterStatus_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MeterStatus) */ + errn = encodeNBitUnsignedInteger(stream, 9, 191); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->MeterStatus); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->MeteringReceiptReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 192); + if(errn == 0) { + errn = encode_iso2MeteringReceiptReqType(stream, &exiFrag->MeteringReceiptReq ); + } + } else if ( exiFrag->MeteringReceiptRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MeteringReceiptRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 193); + if(errn == 0) { + errn = encode_iso2MeteringReceiptResType(stream, &exiFrag->MeteringReceiptRes ); + } + } else if ( exiFrag->MgmtData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */ + errn = encodeNBitUnsignedInteger(stream, 9, 194); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->MgmtData.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->MgmtData.characters, exiFrag->MgmtData.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->MinimumPMaxRequest_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}MinimumPMaxRequest) */ + errn = encodeNBitUnsignedInteger(stream, 9, 195); + if(errn == 0) { + errn = encode_iso2MinimumPMaxRequestType(stream, &exiFrag->MinimumPMaxRequest ); + } + } else if ( exiFrag->MinimumPMaxScheduleEntry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumPMaxScheduleEntry) */ + errn = encodeNBitUnsignedInteger(stream, 9, 196); + if(errn == 0) { + errn = encode_iso2PMaxScheduleEntryType(stream, &exiFrag->MinimumPMaxScheduleEntry ); + } + } else if ( exiFrag->MinimumSOC_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}MinimumSOC) */ + errn = encodeNBitUnsignedInteger(stream, 9, 197); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(exiFrag->MinimumSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Modulus_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus) */ + errn = encodeNBitUnsignedInteger(stream, 9, 198); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Modulus.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Modulus.bytes, exiFrag->Modulus.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->NotificationMaxDelay_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NotificationMaxDelay) */ + errn = encodeNBitUnsignedInteger(stream, 9, 199); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, exiFrag->NotificationMaxDelay); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->NumEPriceLevels_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumEPriceLevels) */ + errn = encodeNBitUnsignedInteger(stream, 9, 200); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->NumEPriceLevels - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->NumberOfSensors_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSensors) */ + errn = encodeNBitUnsignedInteger(stream, 9, 201); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->NumberOfSensors - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->NumberOfSignalPackages_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}NumberOfSignalPackages) */ + errn = encodeNBitUnsignedInteger(stream, 9, 202); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->NumberOfSignalPackages - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->OEMProvisioningCert_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OEMProvisioningCert) */ + errn = encodeNBitUnsignedInteger(stream, 9, 203); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->OEMProvisioningCert.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->OEMProvisioningCert.bytes, exiFrag->OEMProvisioningCert.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Object_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */ + errn = encodeNBitUnsignedInteger(stream, 9, 204); + if(errn == 0) { + errn = encode_iso2ObjectType(stream, &exiFrag->Object ); + } + } else if ( exiFrag->OperationMode_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}OperationMode) */ + errn = encodeNBitUnsignedInteger(stream, 9, 205); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, exiFrag->OperationMode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->P_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P) */ + errn = encodeNBitUnsignedInteger(stream, 9, 206); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->P.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->P.bytes, exiFrag->P.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PGPData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */ + errn = encodeNBitUnsignedInteger(stream, 9, 207); + if(errn == 0) { + errn = encode_iso2PGPDataType(stream, &exiFrag->PGPData ); + } + } else if ( exiFrag->PGPKeyID_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID) */ + errn = encodeNBitUnsignedInteger(stream, 9, 208); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->PGPKeyID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->PGPKeyID.bytes, exiFrag->PGPKeyID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PGPKeyPacket_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) */ + errn = encodeNBitUnsignedInteger(stream, 9, 209); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->PGPKeyPacket.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->PGPKeyPacket.bytes, exiFrag->PGPKeyPacket.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PMax_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMax) */ + errn = encodeNBitUnsignedInteger(stream, 9, 210); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->PMax ); + } + } else if ( exiFrag->PMaxDischargeSchedule_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxDischargeSchedule) */ + errn = encodeNBitUnsignedInteger(stream, 9, 211); + if(errn == 0) { + errn = encode_iso2PMaxScheduleType(stream, &exiFrag->PMaxDischargeSchedule ); + } + } else if ( exiFrag->PMaxSchedule_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxSchedule) */ + errn = encodeNBitUnsignedInteger(stream, 9, 212); + if(errn == 0) { + errn = encode_iso2PMaxScheduleType(stream, &exiFrag->PMaxSchedule ); + } + } else if ( exiFrag->PMaxScheduleEntry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PMaxScheduleEntry) */ + errn = encodeNBitUnsignedInteger(stream, 9, 213); + if(errn == 0) { + errn = encode_iso2PMaxScheduleEntryType(stream, &exiFrag->PMaxScheduleEntry ); + } + } else if ( exiFrag->PackageIndex_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PackageIndex) */ + errn = encodeNBitUnsignedInteger(stream, 9, 214); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, exiFrag->PackageIndex); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PackageSeparationTime_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PackageSeparationTime) */ + errn = encodeNBitUnsignedInteger(stream, 9, 215); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->PackageSeparationTime - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PairingParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingParameters) */ + errn = encodeNBitUnsignedInteger(stream, 9, 216); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &exiFrag->PairingParameters ); + } + } else if ( exiFrag->PairingReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 217); + if(errn == 0) { + errn = encode_iso2PairingReqType(stream, &exiFrag->PairingReq ); + } + } else if ( exiFrag->PairingRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PairingRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 218); + if(errn == 0) { + errn = encode_iso2PairingResType(stream, &exiFrag->PairingRes ); + } + } else if ( exiFrag->Parameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Parameter) */ + errn = encodeNBitUnsignedInteger(stream, 9, 219); + if(errn == 0) { + errn = encode_iso2ParameterType(stream, &exiFrag->Parameter ); + } + } else if ( exiFrag->ParameterSet_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSet) */ + errn = encodeNBitUnsignedInteger(stream, 9, 220); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &exiFrag->ParameterSet ); + } + } else if ( exiFrag->ParameterSetID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ParameterSetID) */ + errn = encodeNBitUnsignedInteger(stream, 9, 221); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, exiFrag->ParameterSetID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ParkingMethod_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ParkingMethod) */ + errn = encodeNBitUnsignedInteger(stream, 9, 222); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->ParkingMethod); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PaymentDetailsReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 223); + if(errn == 0) { + errn = encode_iso2PaymentDetailsReqType(stream, &exiFrag->PaymentDetailsReq ); + } + } else if ( exiFrag->PaymentDetailsRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentDetailsRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 224); + if(errn == 0) { + errn = encode_iso2PaymentDetailsResType(stream, &exiFrag->PaymentDetailsRes ); + } + } else if ( exiFrag->PaymentOption_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}PaymentOption) */ + errn = encodeNBitUnsignedInteger(stream, 9, 225); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, exiFrag->PaymentOption); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PaymentOptionList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentOptionList) */ + errn = encodeNBitUnsignedInteger(stream, 9, 226); + if(errn == 0) { + errn = encode_iso2PaymentOptionListType(stream, &exiFrag->PaymentOptionList ); + } + } else if ( exiFrag->PaymentServiceSelectionReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 227); + if(errn == 0) { + errn = encode_iso2PaymentServiceSelectionReqType(stream, &exiFrag->PaymentServiceSelectionReq ); + } + } else if ( exiFrag->PaymentServiceSelectionRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PaymentServiceSelectionRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 228); + if(errn == 0) { + errn = encode_iso2PaymentServiceSelectionResType(stream, &exiFrag->PaymentServiceSelectionRes ); + } + } else if ( exiFrag->PgenCounter_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter) */ + errn = encodeNBitUnsignedInteger(stream, 9, 229); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->PgenCounter.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->PgenCounter.bytes, exiFrag->PgenCounter.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PowerDeliveryReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 230); + if(errn == 0) { + errn = encode_iso2PowerDeliveryReqType(stream, &exiFrag->PowerDeliveryReq ); + } + } else if ( exiFrag->PowerDeliveryRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDeliveryRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 231); + if(errn == 0) { + errn = encode_iso2PowerDeliveryResType(stream, &exiFrag->PowerDeliveryRes ); + } + } else if ( exiFrag->PowerDemandParameters_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandParameters) */ + errn = encodeNBitUnsignedInteger(stream, 9, 232); + if(errn == 0) { + errn = encode_iso2ParameterSetType(stream, &exiFrag->PowerDemandParameters ); + } + } else if ( exiFrag->PowerDemandReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 233); + if(errn == 0) { + errn = encode_iso2PowerDemandReqType(stream, &exiFrag->PowerDemandReq ); + } + } else if ( exiFrag->PowerDemandRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PowerDemandRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 234); + if(errn == 0) { + errn = encode_iso2PowerDemandResType(stream, &exiFrag->PowerDemandRes ); + } + } else if ( exiFrag->PreChargeReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 235); + if(errn == 0) { + errn = encode_iso2PreChargeReqType(stream, &exiFrag->PreChargeReq ); + } + } else if ( exiFrag->PreChargeRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}PreChargeRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 236); + if(errn == 0) { + errn = encode_iso2PreChargeResType(stream, &exiFrag->PreChargeRes ); + } + } else if ( exiFrag->ProfileEntry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ProfileEntry) */ + errn = encodeNBitUnsignedInteger(stream, 9, 237); + if(errn == 0) { + errn = encode_iso2PMaxScheduleEntryType(stream, &exiFrag->ProfileEntry ); + } + } else if ( exiFrag->Q_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q) */ + errn = encodeNBitUnsignedInteger(stream, 9, 238); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Q.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Q.bytes, exiFrag->Q.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->RSAKeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 9, 239); + if(errn == 0) { + errn = encode_iso2RSAKeyValueType(stream, &exiFrag->RSAKeyValue ); + } + } else if ( exiFrag->ReceiptRequired_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ReceiptRequired) */ + errn = encodeNBitUnsignedInteger(stream, 9, 240); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->ReceiptRequired); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Reference_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */ + errn = encodeNBitUnsignedInteger(stream, 9, 241); + if(errn == 0) { + errn = encode_iso2ReferenceType(stream, &exiFrag->Reference ); + } + } else if ( exiFrag->RelativeTimeInterval_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RelativeTimeInterval) */ + errn = encodeNBitUnsignedInteger(stream, 9, 242); + if(errn == 0) { + errn = encode_iso2RelativeTimeIntervalType(stream, &exiFrag->RelativeTimeInterval ); + } + } else if ( exiFrag->RemainingTimeToBulkSOC_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToBulkSOC) */ + errn = encodeNBitUnsignedInteger(stream, 9, 243); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(exiFrag->RemainingTimeToBulkSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->RemainingTimeToMinimumSOC_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToMinimumSOC) */ + errn = encodeNBitUnsignedInteger(stream, 9, 244); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(exiFrag->RemainingTimeToMinimumSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->RemainingTimeToTargetSOC_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RemainingTimeToTargetSOC) */ + errn = encodeNBitUnsignedInteger(stream, 9, 245); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(exiFrag->RemainingTimeToTargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ResponseCode_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ResponseCode) */ + errn = encodeNBitUnsignedInteger(stream, 9, 246); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 5, exiFrag->ResponseCode); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->RetrievalMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */ + errn = encodeNBitUnsignedInteger(stream, 9, 247); + if(errn == 0) { + errn = encode_iso2RetrievalMethodType(stream, &exiFrag->RetrievalMethod ); + } + } else if ( exiFrag->RetryCounter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}RetryCounter) */ + errn = encodeNBitUnsignedInteger(stream, 9, 248); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->RetryCounter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->RootCertificateID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RootCertificateID) */ + errn = encodeNBitUnsignedInteger(stream, 9, 249); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &exiFrag->RootCertificateID ); + } + } else if ( exiFrag->RotationVAtoGA_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}RotationVAtoGA) */ + errn = encodeNBitUnsignedInteger(stream, 9, 250); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->RotationVAtoGA ); + } + } else if ( exiFrag->SAProvisioningCertificateChain_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAProvisioningCertificateChain) */ + errn = encodeNBitUnsignedInteger(stream, 9, 251); + if(errn == 0) { + errn = encode_iso2CertificateChainType(stream, &exiFrag->SAProvisioningCertificateChain ); + } + } else if ( exiFrag->SAScheduleList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleList) */ + errn = encodeNBitUnsignedInteger(stream, 9, 252); + if(errn == 0) { + errn = encode_iso2SAScheduleListType(stream, &exiFrag->SAScheduleList ); + } + } else if ( exiFrag->SAScheduleList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleList) */ + errn = encodeNBitUnsignedInteger(stream, 9, 253); + if(errn == 0) { + errn = encode_iso2SAScheduleListType(stream, &exiFrag->SAScheduleList ); + } + } else if ( exiFrag->SAScheduleTuple_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleTuple) */ + errn = encodeNBitUnsignedInteger(stream, 9, 254); + if(errn == 0) { + errn = encode_iso2SAScheduleTupleType(stream, &exiFrag->SAScheduleTuple ); + } + } else if ( exiFrag->SAScheduleTupleID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SAScheduleTupleID) */ + errn = encodeNBitUnsignedInteger(stream, 9, 255); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->SAScheduleTupleID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SAScheduleTupleID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SAScheduleTupleID) */ + errn = encodeNBitUnsignedInteger(stream, 9, 256); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->SAScheduleTupleID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SPKIData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */ + errn = encodeNBitUnsignedInteger(stream, 9, 257); + if(errn == 0) { + errn = encode_iso2SPKIDataType(stream, &exiFrag->SPKIData ); + } + } else if ( exiFrag->SPKISexp_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) */ + errn = encodeNBitUnsignedInteger(stream, 9, 258); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SPKISexp.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->SPKISexp.bytes, exiFrag->SPKISexp.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SalesTariff_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariff) */ + errn = encodeNBitUnsignedInteger(stream, 9, 259); + if(errn == 0) { + errn = encode_iso2SalesTariffType(stream, &exiFrag->SalesTariff ); + } + } else if ( exiFrag->SalesTariffDescription_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffDescription) */ + errn = encodeNBitUnsignedInteger(stream, 9, 260); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SalesTariffDescription.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->SalesTariffDescription.characters, exiFrag->SalesTariffDescription.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SalesTariffEntry_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffEntry) */ + errn = encodeNBitUnsignedInteger(stream, 9, 261); + if(errn == 0) { + errn = encode_iso2SalesTariffEntryType(stream, &exiFrag->SalesTariffEntry ); + } + } else if ( exiFrag->SalesTariffID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SalesTariffID) */ + errn = encodeNBitUnsignedInteger(stream, 9, 262); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->SalesTariffID - 1)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Seed_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) */ + errn = encodeNBitUnsignedInteger(stream, 9, 263); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Seed.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Seed.bytes, exiFrag->Seed.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SelectedEnergyTransferService_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedEnergyTransferService) */ + errn = encodeNBitUnsignedInteger(stream, 9, 264); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &exiFrag->SelectedEnergyTransferService ); + } + } else if ( exiFrag->SelectedPaymentOption_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedPaymentOption) */ + errn = encodeNBitUnsignedInteger(stream, 9, 265); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 1, exiFrag->SelectedPaymentOption); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SelectedService_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SelectedService) */ + errn = encodeNBitUnsignedInteger(stream, 9, 266); + if(errn == 0) { + errn = encode_iso2SelectedServiceType(stream, &exiFrag->SelectedService ); + } + } else if ( exiFrag->SelectedVASList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SelectedVASList) */ + errn = encodeNBitUnsignedInteger(stream, 9, 267); + if(errn == 0) { + errn = encode_iso2SelectedServiceListType(stream, &exiFrag->SelectedVASList ); + } + } else if ( exiFrag->Sensor_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Sensor) */ + errn = encodeNBitUnsignedInteger(stream, 9, 268); + if(errn == 0) { + errn = encode_iso2SensorType(stream, &exiFrag->Sensor ); + } + } else if ( exiFrag->SensorID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorID) */ + errn = encodeNBitUnsignedInteger(stream, 9, 269); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->SensorID - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SensorList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorList) */ + errn = encodeNBitUnsignedInteger(stream, 9, 270); + if(errn == 0) { + errn = encode_iso2SensorListType(stream, &exiFrag->SensorList ); + } + } else if ( exiFrag->SensorMeasurements_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorMeasurements) */ + errn = encodeNBitUnsignedInteger(stream, 9, 271); + if(errn == 0) { + errn = encode_iso2SensorMeasurementsType(stream, &exiFrag->SensorMeasurements ); + } + } else if ( exiFrag->SensorOrder_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorOrder) */ + errn = encodeNBitUnsignedInteger(stream, 9, 272); + if(errn == 0) { + errn = encode_iso2SensorOrderListType(stream, &exiFrag->SensorOrder ); + } + } else if ( exiFrag->SensorOrientation_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorOrientation) */ + errn = encodeNBitUnsignedInteger(stream, 9, 273); + if(errn == 0) { + errn = encode_iso2CartesianCoordinatesType(stream, &exiFrag->SensorOrientation ); + } + } else if ( exiFrag->SensorPackage_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackage) */ + errn = encodeNBitUnsignedInteger(stream, 9, 274); + if(errn == 0) { + errn = encode_iso2SensorPackageType(stream, &exiFrag->SensorPackage ); + } + } else if ( exiFrag->SensorPackageList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPackageList) */ + errn = encodeNBitUnsignedInteger(stream, 9, 275); + if(errn == 0) { + errn = encode_iso2SensorPackageListType(stream, &exiFrag->SensorPackageList ); + } + } else if ( exiFrag->SensorPosition_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SensorPosition) */ + errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SensorPosition */ + } else if ( exiFrag->Service_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Service) */ + errn = encodeNBitUnsignedInteger(stream, 9, 277); + if(errn == 0) { + errn = encode_iso2ServiceType(stream, &exiFrag->Service ); + } + } else if ( exiFrag->ServiceDetailReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 278); + if(errn == 0) { + errn = encode_iso2ServiceDetailReqType(stream, &exiFrag->ServiceDetailReq ); + } + } else if ( exiFrag->ServiceDetailRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDetailRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 279); + if(errn == 0) { + errn = encode_iso2ServiceDetailResType(stream, &exiFrag->ServiceDetailRes ); + } + } else if ( exiFrag->ServiceDiscoveryReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 280); + if(errn == 0) { + errn = encode_iso2ServiceDiscoveryReqType(stream, &exiFrag->ServiceDiscoveryReq ); + } + } else if ( exiFrag->ServiceDiscoveryRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceDiscoveryRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 281); + if(errn == 0) { + errn = encode_iso2ServiceDiscoveryResType(stream, &exiFrag->ServiceDiscoveryRes ); + } + } else if ( exiFrag->ServiceID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceID) */ + errn = encodeNBitUnsignedInteger(stream, 9, 282); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, exiFrag->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ServiceID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ServiceID) */ + errn = encodeNBitUnsignedInteger(stream, 9, 283); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, exiFrag->ServiceID); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ServiceParameterList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}ServiceParameterList) */ + errn = encodeNBitUnsignedInteger(stream, 9, 284); + if(errn == 0) { + errn = encode_iso2ServiceParameterListType(stream, &exiFrag->ServiceParameterList ); + } + } else if ( exiFrag->SessionID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionID) */ + errn = encodeNBitUnsignedInteger(stream, 9, 285); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SessionID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->SessionID.bytes, exiFrag->SessionID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SessionID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgHeader}SessionID) */ + errn = encodeNBitUnsignedInteger(stream, 9, 286); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SessionID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->SessionID.bytes, exiFrag->SessionID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SessionSetupReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 287); + if(errn == 0) { + errn = encode_iso2SessionSetupReqType(stream, &exiFrag->SessionSetupReq ); + } + } else if ( exiFrag->SessionSetupRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionSetupRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 288); + if(errn == 0) { + errn = encode_iso2SessionSetupResType(stream, &exiFrag->SessionSetupRes ); + } + } else if ( exiFrag->SessionStopReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 289); + if(errn == 0) { + errn = encode_iso2SessionStopReqType(stream, &exiFrag->SessionStopReq ); + } + } else if ( exiFrag->SessionStopRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SessionStopRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 290); + if(errn == 0) { + errn = encode_iso2SessionStopResType(stream, &exiFrag->SessionStopRes ); + } + } else if ( exiFrag->SigMeterReading_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SigMeterReading) */ + errn = encodeNBitUnsignedInteger(stream, 9, 291); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SigMeterReading.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->SigMeterReading.bytes, exiFrag->SigMeterReading.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SignalFrequency_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalFrequency) */ + errn = encodeNBitUnsignedInteger(stream, 9, 292); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, exiFrag->SignalFrequency); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SignalPulseDuration_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalPulseDuration) */ + errn = encodeNBitUnsignedInteger(stream, 9, 293); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->SignalPulseDuration - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->SignalSeparationTime_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SignalSeparationTime) */ + errn = encodeNBitUnsignedInteger(stream, 9, 294); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->SignalSeparationTime - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Signature_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */ + errn = encodeNBitUnsignedInteger(stream, 9, 295); + if(errn == 0) { + errn = encode_iso2SignatureType(stream, &exiFrag->Signature ); + } + } else if ( exiFrag->SignatureMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */ + errn = encodeNBitUnsignedInteger(stream, 9, 296); + if(errn == 0) { + errn = encode_iso2SignatureMethodType(stream, &exiFrag->SignatureMethod ); + } + } else if ( exiFrag->SignatureProperties_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */ + errn = encodeNBitUnsignedInteger(stream, 9, 297); + if(errn == 0) { + errn = encode_iso2SignaturePropertiesType(stream, &exiFrag->SignatureProperties ); + } + } else if ( exiFrag->SignatureProperty_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */ + errn = encodeNBitUnsignedInteger(stream, 9, 298); + if(errn == 0) { + errn = encode_iso2SignaturePropertyType(stream, &exiFrag->SignatureProperty ); + } + } else if ( exiFrag->SignatureValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */ + errn = encodeNBitUnsignedInteger(stream, 9, 299); + if(errn == 0) { + errn = encode_iso2SignatureValueType(stream, &exiFrag->SignatureValue ); + } + } else if ( exiFrag->SignedInfo_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */ + errn = encodeNBitUnsignedInteger(stream, 9, 300); + if(errn == 0) { + errn = encode_iso2SignedInfoType(stream, &exiFrag->SignedInfo ); + } + } else if ( exiFrag->SubCertificates_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}SubCertificates) */ + errn = encodeNBitUnsignedInteger(stream, 9, 301); + if(errn == 0) { + errn = encode_iso2SubCertificatesType(stream, &exiFrag->SubCertificates ); + } + } else if ( exiFrag->SupportedServiceIDs_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SupportedServiceIDs) */ + errn = encodeNBitUnsignedInteger(stream, 9, 302); + if(errn == 0) { + errn = encode_iso2ServiceIDListType(stream, &exiFrag->SupportedServiceIDs ); + } + } else if ( exiFrag->SystemStatusReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 303); + if(errn == 0) { + errn = encode_iso2SystemStatusReqType(stream, &exiFrag->SystemStatusReq ); + } + } else if ( exiFrag->SystemStatusRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}SystemStatusRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 304); + if(errn == 0) { + errn = encode_iso2SystemStatusResType(stream, &exiFrag->SystemStatusRes ); + } + } else if ( exiFrag->TMeter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TMeter) */ + errn = encodeNBitUnsignedInteger(stream, 9, 305); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, exiFrag->TMeter); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->TargetOffset_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}TargetOffset) */ + errn = encodeNBitUnsignedInteger(stream, 9, 306); + if(errn == 0) { + errn = encode_iso2TargetPositionType(stream, &exiFrag->TargetOffset ); + } + } else if ( exiFrag->TargetOffsetX_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetOffsetX) */ + errn = encodeNBitUnsignedInteger(stream, 9, 307); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, exiFrag->TargetOffsetX); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->TargetOffsetY_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetOffsetY) */ + errn = encodeNBitUnsignedInteger(stream, 9, 308); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, exiFrag->TargetOffsetY); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->TargetSOC_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}TargetSOC) */ + errn = encodeNBitUnsignedInteger(stream, 9, 309); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(exiFrag->TargetSOC - 0)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Transform_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */ + errn = encodeNBitUnsignedInteger(stream, 9, 310); + if(errn == 0) { + errn = encode_iso2TransformType(stream, &exiFrag->Transform ); + } + } else if ( exiFrag->Transforms_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */ + errn = encodeNBitUnsignedInteger(stream, 9, 311); + if(errn == 0) { + errn = encode_iso2TransformsType(stream, &exiFrag->Transforms ); + } + } else if ( exiFrag->V2GRequest_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GRequest) */ + errn = encodeNBitUnsignedInteger(stream, 9, 312); + if(errn == 0) { + errn = encode_iso2BodyBaseType(stream, &exiFrag->V2GRequest ); + } + } else if ( exiFrag->V2GResponse_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}V2GResponse) */ + errn = encodeNBitUnsignedInteger(stream, 9, 313); + if(errn == 0) { + errn = encode_iso2V2GResponseType(stream, &exiFrag->V2GResponse ); + } + } else if ( exiFrag->V2G_Message_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDef}V2G_Message) */ + errn = encodeNBitUnsignedInteger(stream, 9, 314); + if(errn == 0) { + errn = encode_iso2AnonType_V2G_Message(stream, &exiFrag->V2G_Message ); + } + } else if ( exiFrag->VASList_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VASList) */ + errn = encodeNBitUnsignedInteger(stream, 9, 315); + if(errn == 0) { + errn = encode_iso2ServiceListType(stream, &exiFrag->VASList ); + } + } else if ( exiFrag->Value_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}Value) */ + errn = encodeNBitUnsignedInteger(stream, 9, 316); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->Value); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->VehicleCheckInReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 317); + if(errn == 0) { + errn = encode_iso2VehicleCheckInReqType(stream, &exiFrag->VehicleCheckInReq ); + } + } else if ( exiFrag->VehicleCheckInRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckInRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 318); + if(errn == 0) { + errn = encode_iso2VehicleCheckInResType(stream, &exiFrag->VehicleCheckInRes ); + } + } else if ( exiFrag->VehicleCheckOutReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 319); + if(errn == 0) { + errn = encode_iso2VehicleCheckOutReqType(stream, &exiFrag->VehicleCheckOutReq ); + } + } else if ( exiFrag->VehicleCheckOutRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleCheckOutRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 320); + if(errn == 0) { + errn = encode_iso2VehicleCheckOutResType(stream, &exiFrag->VehicleCheckOutRes ); + } + } else if ( exiFrag->VehicleSpace_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}VehicleSpace) */ + errn = encodeNBitUnsignedInteger(stream, 9, 321); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, exiFrag->VehicleSpace); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->WPT_EVChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 9, 322); + if(errn == 0) { + errn = encode_iso2WPT_EVChargeParameterType(stream, &exiFrag->WPT_EVChargeParameter ); + } + } else if ( exiFrag->WPT_EVSEChargeParameter_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}WPT_EVSEChargeParameter) */ + errn = encodeNBitUnsignedInteger(stream, 9, 323); + if(errn == 0) { + errn = encode_iso2WPT_EVSEChargeParameterType(stream, &exiFrag->WPT_EVSEChargeParameter ); + } + } else if ( exiFrag->WeldingDetectionReq_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionReq) */ + errn = encodeNBitUnsignedInteger(stream, 9, 324); + if(errn == 0) { + errn = encode_iso2WeldingDetectionReqType(stream, &exiFrag->WeldingDetectionReq ); + } + } else if ( exiFrag->WeldingDetectionRes_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}WeldingDetectionRes) */ + errn = encodeNBitUnsignedInteger(stream, 9, 325); + if(errn == 0) { + errn = encode_iso2WeldingDetectionResType(stream, &exiFrag->WeldingDetectionRes ); + } + } else if ( exiFrag->X509CRL_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) */ + errn = encodeNBitUnsignedInteger(stream, 9, 326); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509CRL.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->X509CRL.bytes, exiFrag->X509CRL.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509Certificate_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) */ + errn = encodeNBitUnsignedInteger(stream, 9, 327); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509Certificate.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->X509Certificate.bytes, exiFrag->X509Certificate.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509Data_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */ + errn = encodeNBitUnsignedInteger(stream, 9, 328); + if(errn == 0) { + errn = encode_iso2X509DataType(stream, &exiFrag->X509Data ); + } + } else if ( exiFrag->X509IssuerName_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName) */ + errn = encodeNBitUnsignedInteger(stream, 9, 329); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509IssuerName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->X509IssuerName.characters, exiFrag->X509IssuerName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509IssuerSerial_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial) */ + errn = encodeNBitUnsignedInteger(stream, 9, 330); + if(errn == 0) { + errn = encode_iso2X509IssuerSerialType(stream, &exiFrag->X509IssuerSerial ); + } + } else if ( exiFrag->X509SKI_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) */ + errn = encodeNBitUnsignedInteger(stream, 9, 331); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509SKI.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->X509SKI.bytes, exiFrag->X509SKI.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509SerialNumber_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber) */ + errn = encodeNBitUnsignedInteger(stream, 9, 332); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, exiFrag->X509SerialNumber); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509SubjectName_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) */ + errn = encodeNBitUnsignedInteger(stream, 9, 333); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509SubjectName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->X509SubjectName.characters, exiFrag->X509SubjectName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->XCoordinate_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}XCoordinate) */ + errn = encodeNBitUnsignedInteger(stream, 9, 334); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->XCoordinate); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->XPath_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) */ + errn = encodeNBitUnsignedInteger(stream, 9, 335); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->XPath.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->XPath.characters, exiFrag->XPath.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Y_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) */ + errn = encodeNBitUnsignedInteger(stream, 9, 336); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Y.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Y.bytes, exiFrag->Y.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->YCoordinate_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}YCoordinate) */ + errn = encodeNBitUnsignedInteger(stream, 9, 337); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->YCoordinate); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->ZCoordinate_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}ZCoordinate) */ + errn = encodeNBitUnsignedInteger(stream, 9, 338); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->ZCoordinate); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->amount_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}amount) */ + errn = encodeNBitUnsignedInteger(stream, 9, 339); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->amount ); + } + } else if ( exiFrag->boolValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}boolValue) */ + errn = encodeNBitUnsignedInteger(stream, 9, 340); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BOOLEAN]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeBoolean(stream, exiFrag->boolValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->byteValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}byteValue) */ + errn = encodeNBitUnsignedInteger(stream, 9, 341); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->byteValue + 128)); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->costKind_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}costKind) */ + errn = encodeNBitUnsignedInteger(stream, 9, 342); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[ENUMERATION]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->costKind); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->duration_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}duration) */ + errn = encodeNBitUnsignedInteger(stream, 9, 343); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, exiFrag->duration); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->eMAID_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgBody}eMAID) */ + errn = encodeNBitUnsignedInteger(stream, 9, 344); + if(errn == 0) { + errn = encode_iso2EMAIDType(stream, &exiFrag->eMAID ); + } + } else if ( exiFrag->intValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}intValue) */ + errn = encodeNBitUnsignedInteger(stream, 9, 345); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger32(stream, exiFrag->intValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->physicalValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}physicalValue) */ + errn = encodeNBitUnsignedInteger(stream, 9, 346); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->physicalValue ); + } + } else if ( exiFrag->shortValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}shortValue) */ + errn = encodeNBitUnsignedInteger(stream, 9, 347); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger16(stream, exiFrag->shortValue); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->start_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}start) */ + errn = encodeNBitUnsignedInteger(stream, 9, 348); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger32(stream, exiFrag->start); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->startValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}startValue) */ + errn = encodeNBitUnsignedInteger(stream, 9, 349); + if(errn == 0) { + errn = encode_iso2PhysicalValueType(stream, &exiFrag->startValue ); + } + } else if ( exiFrag->stringValue_isUsed == 1u ) { + /* START_ELEMENT({urn:iso:15118:2:2016:MsgDataTypes}stringValue) */ + errn = encodeNBitUnsignedInteger(stream, 9, 350); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->stringValue.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->stringValue.characters, exiFrag->stringValue.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + } + if(errn == 0) { + /* EndDocument */ + errn = encodeNBitUnsignedInteger(stream, 9, 352); + } + + + if(errn == 0) { + /* flush any pending bits */ + errn = encodeFinish(stream); + } + + return errn; +} +#endif /* DEPLOY_ISO2_CODEC_FRAGMENT */ + + +#endif /* DEPLOY_ISO2_CODEC */ + +#endif + diff --git a/csharp/vc2022/src/iso2/iso2EXIDatatypesEncoder.h b/csharp/vc2022/src/iso2/iso2EXIDatatypesEncoder.h new file mode 100644 index 0000000..38236d2 --- /dev/null +++ b/csharp/vc2022/src/iso2/iso2EXIDatatypesEncoder.h @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIDatatypesEncoder.h + * \brief Encoder for datatype definitions + * + */ + +#ifndef EXI_iso2_DATATYPES_ENCODER_H +#define EXI_iso2_DATATYPES_ENCODER_H + +#ifdef __cplusplus +extern "C" { +#endif + + +#include "iso2EXIDatatypes.h" + +#if DEPLOY_ISO2_CODEC == SUPPORT_YES + +#include + +#include "EXITypes.h" + + +int encode_iso2ExiDocument(bitstream_t* stream, struct iso2EXIDocument* exiDoc); + +#if DEPLOY_ISO2_CODEC_FRAGMENT == SUPPORT_YES +int encode_iso2ExiFragment(bitstream_t* stream, struct iso2EXIFragment* exiFrag); +#endif /* DEPLOY_ISO2_CODEC_FRAGMENT */ + + +#endif /* DEPLOY_ISO2_CODEC */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/test/main.c b/csharp/vc2022/src/test/main.c new file mode 100644 index 0000000..40da85d --- /dev/null +++ b/csharp/vc2022/src/test/main.c @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @author Sebastian.Kaebisch@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Switch for sample programs: EXI codec only or for entire V2G example

+ * + ********************************************************************/ + +#include +#include + +#include "main.h" + +int main(int argc, char *argv[]) { + /* disable buffering of output, especially when piped or redirected */ + setvbuf(stdout, NULL, _IONBF, 0); + +#if CODE_VERSION == CODE_VERSION_EXI + /* EXI codec only */ + return main_databinder(argc, argv); +#elif CODE_VERSION == CODE_VERSION_SAMPLE + /* V2G client / service example */ + return main_example(argc, argv); +#endif + +} + diff --git a/csharp/vc2022/src/test/main.h b/csharp/vc2022/src/test/main.h new file mode 100644 index 0000000..894fc24 --- /dev/null +++ b/csharp/vc2022/src/test/main.h @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @author Sebastian.Kaebisch@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + * + ********************************************************************/ + + +#define CODE_VERSION_EXI 1 +#define CODE_VERSION_SAMPLE 2 +#define CODE_VERSION CODE_VERSION_EXI + +#ifndef MAIN_H_ +#define MAIN_H_ + +#if CODE_VERSION == CODE_VERSION_EXI +int main_databinder(int argc, char *argv[]); +#elif CODE_VERSION == CODE_VERSION_SAMPLE +int main_example(int argc, char *argv[]); +#endif + +#endif diff --git a/csharp/vc2022/src/test/main_databinder.c b/csharp/vc2022/src/test/main_databinder.c new file mode 100644 index 0000000..46f200a --- /dev/null +++ b/csharp/vc2022/src/test/main_databinder.c @@ -0,0 +1,170 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: V2G_CI_MsgDef.xsd

+ * + * + ********************************************************************/ + + + +/******************************************************************* + * + *

Sample program to illustrate how to read an EXI stream and + * directly write it again to an output

+ * + *

e.g., in.exi out.exi

+ ********************************************************************/ + +#include +#include +#include + +/* schema-dependent */ +#include "iso1EXIDatatypes.h" +#if DEPLOY_ISO1_CODEC == SUPPORT_YES +#include "iso1EXIDatatypesEncoder.h" +#include "iso1EXIDatatypesDecoder.h" +#endif /* DEPLOY_ISO1_CODEC == SUPPORT_YES */ +#include "iso2EXIDatatypes.h" +#if DEPLOY_ISO2_CODEC == SUPPORT_YES +#include "iso2EXIDatatypesEncoder.h" +#include "iso2EXIDatatypesDecoder.h" +#endif /* DEPLOY_ISO2_CODEC == SUPPORT_YES */ + +#include "ByteStream.h" + +/** EXI Debug mode */ +#define EXI_DEBUG 0 + +#define BUFFER_SIZE 4096 +uint8_t bufferIn[BUFFER_SIZE]; +uint8_t bufferOut[BUFFER_SIZE]; + + +#if EXI_DEBUG == 1 +# define DEBUG_PRINTF(x) printf x +#else +# define DEBUG_PRINTF(x) do {} while (0) +#endif + + +int main_databinder(int argc, char *argv[]) { + +#if DEPLOY_ISO1_CODEC == SUPPORT_YES + struct iso1EXIDocument exi1Doc; +#endif /* DEPLOY_ISO1_CODEC == SUPPORT_YES */ +#if DEPLOY_ISO2_CODEC == SUPPORT_YES + struct iso2EXIDocument exi2Doc; +#endif /* DEPLOY_ISO2_CODEC == SUPPORT_YES */ + int errn = 0; + + bitstream_t iStream, oStream; + +#if EXI_STREAM == BYTE_ARRAY + size_t posDecode; + size_t posEncode; +#endif /* EXI_STREAM == BYTE_ARRAY */ + + +#if EXI_DEBUG == 1 + /* The Eclipse console has buffering problems on Windows e.g, Debug mode */ + setvbuf(stdout, NULL, _IONBF, 0); + setvbuf(stderr, NULL, _IONBF, 0); +#endif /*EXI_DEBUG*/ + + if (argc != 3) { + printf("Usage: %s exiInput exiOutput\n", argv[0]); + return -1; + } + +#if EXI_STREAM == BYTE_ARRAY + /* input pos */ + posDecode = 0; + /* parse EXI stream to internal byte structures */ + errn = readBytesFromFile(argv[1], bufferIn, BUFFER_SIZE, &posDecode); + if (errn != 0) { + printf("Problems while reading file into buffer, err==%d\n", errn); + return errn; + } + posDecode = 0; /* reset position */ +#endif /* EXI_STREAM == BYTE_ARRAY */ + + /* setup input stream */ +#if EXI_STREAM == BYTE_ARRAY + iStream.size = BUFFER_SIZE; + iStream.data = bufferIn; + iStream.pos = &posDecode; +#endif /* EXI_STREAM == BYTE_ARRAY */ + + iStream.buffer = 0; + iStream.capacity = 0; + + + printf("Start decoding EXI stream to databinding layer \n"); +#if DEPLOY_ISO1_CODEC == SUPPORT_YES + errn = decode_iso1ExiDocument(&iStream, &exi1Doc); +#endif /* DEPLOY_ISO1_CODEC == SUPPORT_YES */ +#if DEPLOY_ISO2_CODEC == SUPPORT_YES + errn = decode_iso2ExiDocument(&iStream, &exi2Doc); +#endif /* DEPLOY_ISO2_CODEC == SUPPORT_YES */ + if (errn != 0) { + printf("Problems while decoding EXI stream, err==%d\n", errn); + return errn; + } + +#if EXI_STREAM == BYTE_ARRAY + /* setup output stream */ + posEncode = 0; + oStream.size = BUFFER_SIZE; + oStream.data = bufferOut; + oStream.pos = &posEncode; +#endif + + oStream.buffer = 0; + oStream.capacity = 8; + + printf("Start encoding databinding layer to EXI \n"); +#if DEPLOY_ISO1_CODEC == SUPPORT_YES + errn = encode_iso1ExiDocument(&oStream, &exi1Doc); +#endif /* DEPLOY_ISO1_CODEC == SUPPORT_YES */ +#if DEPLOY_ISO2_CODEC == SUPPORT_YES + errn = encode_iso2ExiDocument(&oStream, &exi2Doc); +#endif /* DEPLOY_ISO2_CODEC == SUPPORT_YES */ + if (errn != 0) { + printf("Problems while encoding databinding layer, err==%d\n", errn); + return errn; + } + + printf("EXI roundtrip done with success\n"); +#if EXI_STREAM == BYTE_ARRAY + /* write to file */ + writeBytesToFile(oStream.data, posEncode, argv[2]); +#endif + + + return errn; +} + + diff --git a/csharp/vc2022/src/test/main_example.c b/csharp/vc2022/src/test/main_example.c new file mode 100644 index 0000000..52b839e --- /dev/null +++ b/csharp/vc2022/src/test/main_example.c @@ -0,0 +1,2572 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @author Sebastian.Kaebisch@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + * + ********************************************************************/ + + + +#include +#include +#include + +#include + +#include "EXITypes.h" + +#include "appHandEXIDatatypes.h" +#include "appHandEXIDatatypesEncoder.h" +#include "appHandEXIDatatypesDecoder.h" + +/* Activate support for DIN */ +#include "dinEXIDatatypes.h" +#if DEPLOY_DIN_CODEC == SUPPORT_YES +#include "dinEXIDatatypesEncoder.h" +#include "dinEXIDatatypesDecoder.h" +#endif /* DEPLOY_DIN_CODEC == SUPPORT_YES */ + +/* Activate support for XMLDSIG */ +#include "xmldsigEXIDatatypes.h" +#if DEPLOY_XMLDSIG_CODEC == SUPPORT_YES +#include "xmldsigEXIDatatypesEncoder.h" +#include "xmldsigEXIDatatypesDecoder.h" +#endif /* DEPLOY_XMLDSIG_CODEC == SUPPORT_YES */ + +/* Activate support for ISO1 */ +#include "iso1EXIDatatypes.h" +#if DEPLOY_ISO1_CODEC == SUPPORT_YES +#include "iso1EXIDatatypesEncoder.h" +#include "iso1EXIDatatypesDecoder.h" +#endif /* DEPLOY_ISO1_CODEC == SUPPORT_YES */ + +/* Activate support for ISO2 */ +#include "iso2EXIDatatypes.h" +#if DEPLOY_ISO2_CODEC == SUPPORT_YES +#include "iso2EXIDatatypesEncoder.h" +#include "iso2EXIDatatypesDecoder.h" +#endif /* DEPLOY_ISO2_CODEC == SUPPORT_YES */ + +#include "v2gtp.h" + +#define BUFFER_SIZE 256 +uint8_t buffer1[BUFFER_SIZE]; +uint8_t buffer2[BUFFER_SIZE]; + +#define ERROR_UNEXPECTED_REQUEST_MESSAGE -601 +#define ERROR_UNEXPECTED_SESSION_SETUP_RESP_MESSAGE -602 +#define ERROR_UNEXPECTED_SERVICE_DISCOVERY_RESP_MESSAGE -602 +#define ERROR_UNEXPECTED_SERVICE_DETAILS_RESP_MESSAGE -603 +#define ERROR_UNEXPECTED_PAYMENT_SERVICE_SELECTION_RESP_MESSAGE -604 +#define ERROR_UNEXPECTED_PAYMENT_DETAILS_RESP_MESSAGE -605 +#define ERROR_UNEXPECTED_AUTHORIZATION_RESP_MESSAGE -606 +#define ERROR_UNEXPECTED_CHARGE_PARAMETER_DISCOVERY_RESP_MESSAGE -607 +#define ERROR_UNEXPECTED_POWER_DELIVERY_RESP_MESSAGE -608 +#define ERROR_UNEXPECTED_CHARGING_STATUS_RESP_MESSAGE -609 +#define ERROR_UNEXPECTED_METERING_RECEIPT_RESP_MESSAGE -610 +#define ERROR_UNEXPECTED_SESSION_STOP_RESP_MESSAGE -611 +#define ERROR_UNEXPECTED_CABLE_CHECK_RESP_MESSAGE -612 +#define ERROR_UNEXPECTED_PRE_CHARGE_RESP_MESSAGE -612 +#define ERROR_UNEXPECTED_CURRENT_DEMAND_RESP_MESSAGE -613 +#define ERROR_UNEXPECTED_WELDING_DETECTION_RESP_MESSAGE -614 + + +static int writeStringToEXIString(char* string, exi_string_character_t* exiString) { + int pos = 0; + while(string[pos]!='\0') + { + exiString[pos] = string[pos]; + pos++; + } + + return pos; +} + +static void printASCIIString(exi_string_character_t* string, uint16_t len) { + unsigned int i; + for(i=0; idata, &payloadLengthDec)) == 0) { + *iStream->pos = V2GTP_HEADER_LENGTH; + if( (errn = decode_appHandExiDocument(iStream, &exiDoc)) ) { + /* an error occured */ + return errn; + } + + } + + + + + + printf("EVSE side: List of application handshake protocols of the EV \n"); + + for(i=0;ipos = V2GTP_HEADER_LENGTH; + if( (errn = encode_appHandExiDocument(oStream, &appHandResp)) == 0) { + errn = write_v2gtpHeader(oStream->data, (*oStream->pos)-V2GTP_HEADER_LENGTH, V2GTP_EXI_TYPE); + } + + + return errn; +} + + +static int appHandshake() +{ + bitstream_t stream1; + bitstream_t stream2; + + uint32_t payloadLengthDec; + size_t pos1 = V2GTP_HEADER_LENGTH; /* v2gtp header */ + size_t pos2 = 0; + + struct appHandEXIDocument handshake; + struct appHandEXIDocument handshakeResp; + + int errn = 0; + + char* ns0 = "urn:iso:15118:2:2010:MsgDef"; + char* ns1 = "urn:din:70121:2012:MsgDef"; + + stream1.size = BUFFER_SIZE; + stream1.data = buffer1; + stream1.pos = &pos1; + + stream2.size = BUFFER_SIZE; + stream2.data = buffer2; + stream2.pos = &pos2; + + init_appHandEXIDocument(&handshake); + + printf("EV side: setup data for the supported application handshake request message\n"); + + /* set up ISO/IEC 15118 Version 1.0 information */ + handshake.supportedAppProtocolReq_isUsed = 1u; + handshake.supportedAppProtocolReq.AppProtocol.arrayLen = 2; /* we have only two protocols implemented */ + + handshake.supportedAppProtocolReq.AppProtocol.array[0].ProtocolNamespace.charactersLen = + writeStringToEXIString(ns0, handshake.supportedAppProtocolReq.AppProtocol.array[0].ProtocolNamespace.characters); + handshake.supportedAppProtocolReq.AppProtocol.array[0].SchemaID = 1; + handshake.supportedAppProtocolReq.AppProtocol.array[0].VersionNumberMajor = 1; + handshake.supportedAppProtocolReq.AppProtocol.array[0].VersionNumberMinor = 0; + handshake.supportedAppProtocolReq.AppProtocol.array[0].Priority = 1; + + handshake.supportedAppProtocolReq.AppProtocol.array[1].ProtocolNamespace.charactersLen = + writeStringToEXIString(ns1, handshake.supportedAppProtocolReq.AppProtocol.array[1].ProtocolNamespace.characters); + handshake.supportedAppProtocolReq.AppProtocol.array[1].SchemaID = 2; + handshake.supportedAppProtocolReq.AppProtocol.array[1].VersionNumberMajor = 1; + handshake.supportedAppProtocolReq.AppProtocol.array[1].VersionNumberMinor = 0; + handshake.supportedAppProtocolReq.AppProtocol.array[1].Priority = 2; + + /* send app handshake request */ + if( (errn = encode_appHandExiDocument(&stream1, &handshake)) == 0) { + if ( write_v2gtpHeader(stream1.data, pos1-V2GTP_HEADER_LENGTH, V2GTP_EXI_TYPE) == 0 ) { + printf("EV side: send message to the EVSE\n"); + } + } + + if (errn == 0) { + /* read app handshake request & generate response */ + errn = appHandshakeHandler(&stream1, &stream2); + } + + if (errn == 0) { + /* check response */ + if ( (errn = read_v2gtpHeader(stream2.data, &payloadLengthDec)) == 0) { + pos2 = V2GTP_HEADER_LENGTH; + + if(decode_appHandExiDocument(&stream2, &handshakeResp) == 0) { + printf("EV side: Response of the EVSE \n"); + if(handshakeResp.supportedAppProtocolRes.ResponseCode == appHandresponseCodeType_OK_SuccessfulNegotiation) { + printf("\t\tResponseCode=OK_SuccessfulNegotiation\n"); + printf("\t\tSchemaID=%d\n",handshakeResp.supportedAppProtocolRes.SchemaID); + } + } + } + + } + + if (errn != 0) { + printf("appHandshake error %d \n", errn); + } + + + return errn; + +} + + + + + +#if DEPLOY_ISO2_CODEC == SUPPORT_YES + +static void printEVSEStatus2(struct iso2EVSEStatusType* status) +{ + printf("\tEVSEStatus:\n"); + printf("\t\tEVSENotification=%d\n", status->EVSENotification); + printf("\t\tNotificationMaxDelay=%d\n", status->NotificationMaxDelay); +} + +/* serializes EXI stream and adds V2G TP header */ +static int serialize2EXI2Stream(struct iso2EXIDocument* exiIn, bitstream_t* stream) { + int errn; + *stream->pos = V2GTP_HEADER_LENGTH; /* v2gtp header */ + if( (errn = encode_iso2ExiDocument(stream, exiIn)) == 0) { + errn = write_v2gtpHeader(stream->data, (*stream->pos)-V2GTP_HEADER_LENGTH, V2GTP_EXI_TYPE); + } + return errn; +} + + +/* deserializes V2G TP header and decodes right away EXI stream */ +static int deserialize2Stream2EXI(bitstream_t* streamIn, struct iso2EXIDocument* exi) { + int errn; + uint32_t payloadLength; + + *streamIn->pos = 0; + if ( (errn = read_v2gtpHeader(streamIn->data, &payloadLength)) == 0) { + *streamIn->pos += V2GTP_HEADER_LENGTH; + + errn = decode_iso2ExiDocument(streamIn, exi); + } + return errn; +} + +static int sessionSetup2(struct iso2EXIDocument* exiIn, struct iso2EXIDocument* exiOut) { + printf("EVSE side: sessionSetup called\n" ); + printf("\tReceived data:\n"); + printf("\tHeader SessionID="); + printBinaryArray(exiIn->V2G_Message.Header.SessionID.bytes, exiIn->V2G_Message.Header.SessionID.bytesLen); + printf("\t\t EVCCID=%d\n", exiIn->V2G_Message.Body.SessionSetupReq.EVCCID.bytes[0]); + + exiOut->V2G_Message_isUsed = 1u; + + /* generate an unique sessionID */ + init_iso2MessageHeaderType(&exiOut->V2G_Message.Header); + exiOut->V2G_Message.Header.SessionID.bytes[0] = 1; + exiOut->V2G_Message.Header.SessionID.bytes[1] = 2; + exiOut->V2G_Message.Header.SessionID.bytes[2] = 3; + exiOut->V2G_Message.Header.SessionID.bytes[3] = 4; + exiOut->V2G_Message.Header.SessionID.bytes[4] = 5; + exiOut->V2G_Message.Header.SessionID.bytes[5] = 6; + exiOut->V2G_Message.Header.SessionID.bytes[6] = 7; + exiOut->V2G_Message.Header.SessionID.bytes[7] = 8; + exiOut->V2G_Message.Header.SessionID.bytesLen = 8; + + /* Prepare data for EV */ + init_iso2BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.SessionSetupRes_isUsed = 1u; + init_iso2SessionSetupResType(&exiOut->V2G_Message.Body.SessionSetupRes); + + exiOut->V2G_Message.Body.SessionSetupRes.ResponseCode = iso2responseCodeType_OK; + exiOut->V2G_Message.Body.SessionSetupRes.EVSEID.characters[0] = 0; + exiOut->V2G_Message.Body.SessionSetupRes.EVSEID.characters[1] = 20; + exiOut->V2G_Message.Body.SessionSetupRes.EVSEID.charactersLen = 2; + exiOut->V2G_Message.Body.SessionSetupRes.EVSETimeStamp_isUsed = 1u; + exiOut->V2G_Message.Body.SessionSetupRes.EVSETimeStamp = 123456789; + + return 0; +} + +static int serviceDiscovery2(struct iso2EXIDocument* exiIn, struct iso2EXIDocument* exiOut) { + int i; + + printf("EVSE side: serviceDiscovery called\n" ); + printf("\tReceived data:\n"); + printf("\tHeader SessionID="); + printBinaryArray(exiIn->V2G_Message.Header.SessionID.bytes, exiIn->V2G_Message.Header.SessionID.bytesLen); + if(exiIn->V2G_Message.Body.ServiceDiscoveryReq.SupportedServiceIDs_isUsed) { + for(i=0;iV2G_Message.Body.ServiceDiscoveryReq.SupportedServiceIDs.ServiceID.arrayLen; i++) { + printf("\t\tSupportedServiceID=%d\n", exiIn->V2G_Message.Body.ServiceDiscoveryReq.SupportedServiceIDs.ServiceID.array[i]); + } + } + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso2BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.ServiceDiscoveryRes_isUsed = 1u; + init_iso2ServiceDiscoveryResType(&exiOut->V2G_Message.Body.ServiceDiscoveryRes); + + + exiOut->V2G_Message.Body.ServiceDiscoveryRes.VASList_isUsed = 0u; /* we do not provide VAS */ + exiOut->V2G_Message.Body.ServiceDiscoveryRes.ResponseCode = iso2responseCodeType_OK; + + exiOut->V2G_Message.Body.ServiceDiscoveryRes.PaymentOptionList.PaymentOption.array[0] = iso2paymentOptionType_ExternalPayment; /* EVSE handles the payment */ + exiOut->V2G_Message.Body.ServiceDiscoveryRes.PaymentOptionList.PaymentOption.array[1] = iso2paymentOptionType_Contract; + exiOut->V2G_Message.Body.ServiceDiscoveryRes.PaymentOptionList.PaymentOption.arrayLen = 2; + + exiOut->V2G_Message.Body.ServiceDiscoveryRes.EnergyTransferServiceList.Service.arrayLen = 1; + exiOut->V2G_Message.Body.ServiceDiscoveryRes.EnergyTransferServiceList.Service.array[0].ServiceID = 1; /* ID of the charge service */ + exiOut->V2G_Message.Body.ServiceDiscoveryRes.EnergyTransferServiceList.Service.array[0].FreeService = 1; + + exiOut->V2G_Message.Body.ServiceDiscoveryRes.VASList_isUsed = 0u; /* no value added service requested */ + + return 0; +} + + +static int serviceDetail2(struct iso2EXIDocument* exiIn, struct iso2EXIDocument* exiOut) { + + printf("EVSE side: serviceDetail called\n" ); + printf("\tReceived data:\n"); + printf("\tHeader SessionID="); + printBinaryArray(exiIn->V2G_Message.Header.SessionID.bytes, exiIn->V2G_Message.Header.SessionID.bytesLen); + printf("\t\t ServiceDetailID=%d\n",exiIn->V2G_Message.Body.ServiceDetailReq.ServiceID); + + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso2BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.ServiceDetailRes_isUsed= 1u; + init_iso2ServiceDetailResType(&exiOut->V2G_Message.Body.ServiceDetailRes); + + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceID = 1234; + + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList_isUsed = 1u; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.arrayLen = 2; + + /* Parameter Set 1*/ + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].ParameterSetID = 1; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.arrayLen = 2; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.charactersLen = 8; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[0] = 'P'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[1] = 'r'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[2] = 'o'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[3] = 't'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[4]= 'o'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[5] = 'c'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[6] = 'o'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[7] = 'l'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].intValue = 15119; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].intValue_isUsed = 1u; + + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].Name.charactersLen = 4; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].Name.characters[0] = 'N'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].Name.characters[1] = 'a'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].Name.characters[2] = 'm'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].Name.characters[3] = 'e'; + + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].stringValue_isUsed = 1u; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].stringValue.charactersLen = 3; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].stringValue.characters[0] = 'V'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].stringValue.characters[1] = '2'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].stringValue.characters[2] = 'G'; + + /* Parameter Set 2 */ + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].ParameterSetID = 2; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.arrayLen = 1; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.charactersLen = 7; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[0] = 'C'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[1] = 'h'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[2] = 'a'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[3] = 'n'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[4] = 'n'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[5] = 'e'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[6] = 'l'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].physicalValue_isUsed = 1u; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].physicalValue.Value = 1234; + + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].physicalValue.Exponent = 1; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].physicalValue.Value = 2; + + exiOut->V2G_Message.Body.ServiceDetailRes.ResponseCode = iso2responseCodeType_OK; + + return 0; +} + + +static int paymentServiceSelection2(struct iso2EXIDocument* exiIn, struct iso2EXIDocument* exiOut) { + int i; + + printf("EVSE side: paymentServiceSelection called\n" ); + printf("\tReceived data:\n"); + printf("\tHeader SessionID="); + printBinaryArray(exiIn->V2G_Message.Header.SessionID.bytes, exiIn->V2G_Message.Header.SessionID.bytesLen); + + if(exiIn->V2G_Message.Body.PaymentServiceSelectionReq.SelectedPaymentOption == iso2paymentOptionType_ExternalPayment) { + printf("\t\t SelectedPaymentOption=ExternalPayment\n"); + } + + if(exiIn->V2G_Message.Body.PaymentServiceSelectionReq.SelectedVASList_isUsed) { + for(i=0; iV2G_Message.Body.PaymentServiceSelectionReq.SelectedVASList.SelectedService.arrayLen;i++) + { + printf("\t\t ServiceID=%d\n", exiIn->V2G_Message.Body.PaymentServiceSelectionReq.SelectedVASList.SelectedService.array[i].ServiceID); + printf("\t\t ParameterSetID=%d\n", exiIn->V2G_Message.Body.PaymentServiceSelectionReq.SelectedVASList.SelectedService.array[i].ParameterSetID); + } + } + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso2BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.PaymentServiceSelectionRes_isUsed= 1u; + init_iso2PaymentServiceSelectionResType(&exiOut->V2G_Message.Body.PaymentServiceSelectionRes); + + exiOut->V2G_Message.Body.ServiceDetailRes.ResponseCode = iso2responseCodeType_OK; + + return 0; +} + + +static int paymentDetails2(struct iso2EXIDocument* exiIn, struct iso2EXIDocument* exiOut) { + + printf("EVSE side: paymentDetails called\n" ); + printf("\tReceived data:\n"); + + printf("\t\t eMAID=%d\n", exiIn->V2G_Message.Body.PaymentDetailsReq.eMAID.characters[0]); + printf("\t\t ID=%c%c\n", exiIn->V2G_Message.Body.PaymentDetailsReq.ContractSignatureCertChain.Id.characters[0], exiIn->V2G_Message.Body.PaymentDetailsReq.ContractSignatureCertChain.Id.characters[1]); + printf("\t\t Certificate=%c%c\n", exiIn->V2G_Message.Body.PaymentDetailsReq.ContractSignatureCertChain.Certificate.bytes[0], exiIn->V2G_Message.Body.PaymentDetailsReq.ContractSignatureCertChain.Certificate.bytes[1]); + printf("\t\t SubCertificate 1=%c%c\n", exiIn->V2G_Message.Body.PaymentDetailsReq.ContractSignatureCertChain.SubCertificates.Certificate.array[0].bytes[0], exiIn->V2G_Message.Body.PaymentDetailsReq.ContractSignatureCertChain.SubCertificates.Certificate.array[0].bytes[1]); + printf("\t\t SubCertificate 2=%c%c\n", exiIn->V2G_Message.Body.PaymentDetailsReq.ContractSignatureCertChain.SubCertificates.Certificate.array[1].bytes[0], exiIn->V2G_Message.Body.PaymentDetailsReq.ContractSignatureCertChain.SubCertificates.Certificate.array[1].bytes[1]); + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso2BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.PaymentDetailsRes_isUsed = 1u; + init_iso2PaymentDetailsResType(&exiOut->V2G_Message.Body.PaymentDetailsRes); + + exiOut->V2G_Message.Body.PaymentDetailsRes.ResponseCode = iso2responseCodeType_OK; + exiOut->V2G_Message.Body.PaymentDetailsRes.GenChallenge.bytesLen = 1; + exiOut->V2G_Message.Body.PaymentDetailsRes.GenChallenge.bytes[0] = 1; + exiOut->V2G_Message.Body.PaymentDetailsRes.EVSETimeStamp = 123456; + + return 0; +} + + +static int authorization2(struct iso2EXIDocument* exiIn, struct iso2EXIDocument* exiOut) { + + printf("EVSE: Authorization called\n" ); + printf("\tReceived data:\n"); + + if(exiIn->V2G_Message.Body.AuthorizationReq.GenChallenge_isUsed) { + printf("\t\t\t GenChallenge=%d\n", exiIn->V2G_Message.Body.AuthorizationReq.GenChallenge.bytes[0]); + } + if(exiIn->V2G_Message.Body.AuthorizationReq.Id_isUsed ) { + printf("\t\t\t ID=%c%c%c\n", exiIn->V2G_Message.Body.AuthorizationReq.Id.characters[0], exiIn->V2G_Message.Body.AuthorizationReq.Id.characters[1], exiIn->V2G_Message.Body.AuthorizationReq.Id.characters[2]); + } + + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso2BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.AuthorizationRes_isUsed = 1u; + init_iso2AuthorizationResType(&exiOut->V2G_Message.Body.AuthorizationRes); + + exiOut->V2G_Message.Body.AuthorizationRes.ResponseCode = iso2responseCodeType_OK; + exiOut->V2G_Message.Body.AuthorizationRes.EVSEProcessing = iso2EVSEProcessingType_Finished; + + return 0; +} + + +static int chargeParameterDiscovery2(struct iso2EXIDocument* exiIn, struct iso2EXIDocument* exiOut) { + + printf("EVSE side: chargeParameterDiscovery called\n" ); + printf("\tReceived data:\n"); + + if(exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVBidirectionalParameter_isUsed) { + printf("\t\t DepartureTime=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVBidirectionalParameter.DepartureTime); + printf("\t\t EVMaximumChargeCurrent=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVBidirectionalParameter.EVMaximumChargeCurrent.Value); + } + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso2BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes_isUsed = 1u; + init_iso2ChargeParameterDiscoveryResType(&exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes); + + exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.ResponseCode = iso2responseCodeType_OK_CertificateExpiresSoon; + exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.EVSEProcessing = iso2EVSEProcessingType_Ongoing; + exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.EVSEEnergyTransferParameter_isUsed = 1u; + /*exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.EVSEEnergyTransferParameter = 0;*/ + return 0; +} + + +static int powerDelivery2(struct iso2EXIDocument* exiIn, struct iso2EXIDocument* exiOut) { + printf("EVSE side: powerDelivery called\n" ); + printf("\tReceived data:\n"); + + printf("\t\t ChargeProgress=%d\n", exiIn->V2G_Message.Body.PowerDeliveryReq.ChargeProgress); + printf("\t\t SAScheduleTupleID=%d\n", exiIn->V2G_Message.Body.PowerDeliveryReq.SAScheduleTupleID); + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso2BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.PowerDeliveryRes_isUsed = 1u; + init_iso2PowerDeliveryResType(&exiOut->V2G_Message.Body.PowerDeliveryRes); + + exiOut->V2G_Message.Body.PowerDeliveryRes.ResponseCode = iso2responseCodeType_OK; + + exiOut->V2G_Message.Body.PowerDeliveryRes.EVSEStatus_isUsed = 1; + exiOut->V2G_Message.Body.PowerDeliveryRes.EVSEStatus.EVSENotification = iso2EVSENotificationType_StopCharging; + exiOut->V2G_Message.Body.PowerDeliveryRes.EVSEStatus.NotificationMaxDelay=12; + + exiOut->V2G_Message.Body.PowerDeliveryRes.EVSEProcessing = iso2EVSEProcessingType_Ongoing_WaitingForCustomerInteraction; + + return 0; +} + + +static int chargingStatus2(struct iso2EXIDocument* exiIn, struct iso2EXIDocument* exiOut) { + + printf("EVSE side: chargingStatus called\n" ); + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso2BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.ChargingStatusRes_isUsed = 1u; + init_iso2ChargingStatusResType(&exiOut->V2G_Message.Body.ChargingStatusRes); + + + exiOut->V2G_Message.Body.ChargingStatusRes.ResponseCode = iso2responseCodeType_OK; + exiOut->V2G_Message.Body.ChargingStatusRes.EVSEID.characters[0]= 'A'; + exiOut->V2G_Message.Body.ChargingStatusRes.EVSEID.charactersLen =1; + + exiOut->V2G_Message.Body.ChargingStatusRes.EVSEStatus.EVSENotification = iso2EVSENotificationType_ReNegotiation; + exiOut->V2G_Message.Body.ChargingStatusRes.EVSEStatus.NotificationMaxDelay=123; + exiOut->V2G_Message.Body.ChargingStatusRes.ReceiptRequired = 1; + exiOut->V2G_Message.Body.ChargingStatusRes.ReceiptRequired_isUsed = 1; + + return 0; +} + + +static int meteringReceipt2(struct iso2EXIDocument* exiIn, struct iso2EXIDocument* exiOut) { + + printf("EVSE side: meteringReceipt called\n" ); + printf("\tReceived data:\n"); + + printf("\t\t ID=%c%c%c\n", exiIn->V2G_Message.Body.MeteringReceiptReq.Id.characters[0], exiIn->V2G_Message.Body.MeteringReceiptReq.Id.characters[1], exiIn->V2G_Message.Body.MeteringReceiptReq.Id.characters[2]); + printf("\t\t SAScheduleTupleID=%d\n", exiIn->V2G_Message.Body.MeteringReceiptReq.SAScheduleTupleID); + printf("\t\t SessionID=%d\n", exiIn->V2G_Message.Body.MeteringReceiptReq.SessionID.bytes[1]); + printf("\t\t MeterInfo.MeterStatus=%d\n", exiIn->V2G_Message.Body.MeteringReceiptReq.MeterInfo.MeterStatus); + printf("\t\t MeterInfo.MeterID=%d\n", exiIn->V2G_Message.Body.MeteringReceiptReq.MeterInfo.MeterID.characters[0]); + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso2BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.MeteringReceiptRes_isUsed = 1u; + init_iso2MeteringReceiptResType(&exiOut->V2G_Message.Body.MeteringReceiptRes); + + exiOut->V2G_Message.Body.MeteringReceiptRes.ResponseCode = iso2responseCodeType_FAILED; + + return 0; +} + +static int sessionStop2(struct iso2EXIDocument* exiIn, struct iso2EXIDocument* exiOut) { + + printf("EVSE side: sessionStop called\n" ); + printf("\tReceived data:\n"); + printf("\tHeader SessionID="); + printBinaryArray(exiIn->V2G_Message.Header.SessionID.bytes, exiIn->V2G_Message.Header.SessionID.bytesLen); + printf("\t\t ChargingSession=%d\n", exiIn->V2G_Message.Body.SessionStopReq.ChargingSession); + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso2BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.SessionStopRes_isUsed = 1u; + init_iso2SessionStopResType(&exiOut->V2G_Message.Body.SessionStopRes); + + exiOut->V2G_Message.Body.SessionStopRes.ResponseCode = iso2responseCodeType_OK; + + return 0; +} + +static int cableCheck2(struct iso2EXIDocument* exiIn, struct iso2EXIDocument* exiOut) { + + printf("EVSE side: cableCheck called\n" ); + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso2BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.CableCheckRes_isUsed = 1u; + init_iso2CableCheckResType(&exiOut->V2G_Message.Body.CableCheckRes); + + exiOut->V2G_Message.Body.CableCheckRes.ResponseCode = iso2responseCodeType_OK; + + exiOut->V2G_Message.Body.CableCheckRes.EVSEStatus.NotificationMaxDelay = 1234; + exiOut->V2G_Message.Body.CableCheckRes.EVSEStatus.EVSENotification= iso2EVSENotificationType_ReNegotiation; + + exiOut->V2G_Message.Body.CableCheckRes.EVSEProcessing = iso2EVSEProcessingType_Finished; + + return 0; +} + +static int preCharge2(struct iso2EXIDocument* exiIn, struct iso2EXIDocument* exiOut) { + + printf("EVSE side: preCharge called\n" ); + printf("\tReceived data:\n"); + + printf("\t\t EVTargetCurrent=%d (%d)\n", exiIn->V2G_Message.Body.PreChargeReq.EVTargetCurrent.Value, exiIn->V2G_Message.Body.PreChargeReq.EVTargetCurrent.Exponent); + printf("\t\t EVTargetVoltage=%d (%d)\n", exiIn->V2G_Message.Body.PreChargeReq.EVTargetVoltage.Value, exiIn->V2G_Message.Body.PreChargeReq.EVTargetVoltage.Exponent); + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso2BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.PreChargeRes_isUsed = 1u; + init_iso2PreChargeResType(&exiOut->V2G_Message.Body.PreChargeRes); + + exiOut->V2G_Message.Body.PreChargeRes.ResponseCode = iso2responseCodeType_OK; + + exiOut->V2G_Message.Body.PreChargeRes.EVSEStatus.EVSENotification = iso2EVSENotificationType_StopCharging; + exiOut->V2G_Message.Body.PreChargeRes.EVSEStatus.NotificationMaxDelay= 1234; + + exiOut->V2G_Message.Body.PreChargeRes.EVSEPresentVoltage.Exponent = 3; + exiOut->V2G_Message.Body.PreChargeRes.EVSEPresentVoltage.Value= 456; + + return 0; +} + + + +static int create_response_message2(struct iso2EXIDocument* exiIn, struct iso2EXIDocument* exiOut) { + int errn = ERROR_UNEXPECTED_REQUEST_MESSAGE; + + /* create response message as EXI document */ + if(exiIn->V2G_Message_isUsed) { + init_iso2EXIDocument(exiOut); + if (exiIn->V2G_Message.Body.SessionSetupReq_isUsed) { + errn = sessionSetup2(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.ServiceDiscoveryReq_isUsed) { + errn = serviceDiscovery2(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.ServiceDetailReq_isUsed) { + errn = serviceDetail2(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.PaymentServiceSelectionReq_isUsed) { + errn = paymentServiceSelection2(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.PaymentDetailsReq_isUsed) { + errn = paymentDetails2(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.AuthorizationReq_isUsed) { + errn = authorization2(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq_isUsed) { + errn = chargeParameterDiscovery2(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.PowerDeliveryReq_isUsed) { + errn = powerDelivery2(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.ChargingStatusReq_isUsed) { + errn = chargingStatus2(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.MeteringReceiptReq_isUsed) { + errn = meteringReceipt2(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.SessionStopReq_isUsed) { + errn = sessionStop2(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.CableCheckReq_isUsed) { + errn = cableCheck2(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.PreChargeReq_isUsed) { + errn = preCharge2(exiIn, exiOut); + } + } + + return errn; +} + +/* Adapt this to your system setup! */ +/* In this situation EV and EVSE is the same party */ +static int request_response2(struct iso2EXIDocument* exiIn, struct iso2EXIDocument* exiOut) { + int errn; + + bitstream_t stream1; + bitstream_t stream2; + + size_t pos1; + size_t pos2; + + stream1.size = BUFFER_SIZE; + stream1.data = buffer1; + stream1.pos = &pos1; + + stream2.size = BUFFER_SIZE; + stream2.data = buffer2; + stream2.pos = &pos2; + + /* EV side */ + errn = serialize2EXI2Stream(exiIn, &stream1); + + /* --> Start of EVSE side */ + /* deserialize request message */ + if (errn == 0) { + errn = deserialize2Stream2EXI(&stream1, exiOut); + } + /* create response message */ + if (errn == 0) { + errn = create_response_message2(exiOut, exiIn); + } + /* serialize response message */ + if (errn == 0) { + errn = serialize2EXI2Stream(exiIn, &stream2); + } + /* <-- End of EVSE side */ + + + /* EV side */ + /* deserialize response message */ + if (errn == 0) { + errn = deserialize2Stream2EXI(&stream2, exiOut); + } + + return errn; +} + + +static int charging2() +{ + int errn = 0; + int i, j; + + struct iso2EXIDocument exiIn; + struct iso2EXIDocument exiOut; + + struct iso2ServiceDetailResType serviceDetailRes; + struct iso2PaymentServiceSelectionResType paymentServiceSelectionRes; + struct iso2PaymentDetailsResType paymentDetailsRes; + + /* setup header information */ + init_iso2EXIDocument(&exiIn); + exiIn.V2G_Message_isUsed = 1u; + init_iso2MessageHeaderType(&exiIn.V2G_Message.Header); + exiIn.V2G_Message.Header.SessionID.bytes[0] = 0; /* sessionID is always '0' at the beginning (the response contains the valid sessionID)*/ + exiIn.V2G_Message.Header.SessionID.bytes[1] = 0; + exiIn.V2G_Message.Header.SessionID.bytes[2] = 0; + exiIn.V2G_Message.Header.SessionID.bytes[3] = 0; + exiIn.V2G_Message.Header.SessionID.bytes[4] = 0; + exiIn.V2G_Message.Header.SessionID.bytes[5] = 0; + exiIn.V2G_Message.Header.SessionID.bytes[6] = 0; + exiIn.V2G_Message.Header.SessionID.bytes[7] = 0; + exiIn.V2G_Message.Header.SessionID.bytesLen = 8; + exiIn.V2G_Message.Header.Signature_isUsed = 0u; + + + /************************ + * sessionSetup * + ************************/ + init_iso2BodyType(&exiIn.V2G_Message.Body); + exiIn.V2G_Message.Body.SessionSetupReq_isUsed = 1u; + + init_iso2SessionSetupReqType(&exiIn.V2G_Message.Body.SessionSetupReq); + + exiIn.V2G_Message.Body.SessionSetupReq.EVCCID.bytesLen = 1; + exiIn.V2G_Message.Body.SessionSetupReq.EVCCID.bytes[0] = 10; + + printf("EV side: call EVSE sessionSetup"); + + errn = request_response2(&exiIn, &exiOut); + + if(errn == 0) { + /* check, if this is the right response message */ + if(exiOut.V2G_Message.Body.SessionSetupRes_isUsed) { + /* show results of EVSEs answer message */ + printf("EV side: received response message from EVSE\n"); + printf("\tHeader SessionID="); + printBinaryArray(exiOut.V2G_Message.Header.SessionID.bytes, exiOut.V2G_Message.Header.SessionID.bytesLen); + printf("\tResponseCode=%d\n", exiOut.V2G_Message.Body.SessionSetupRes.ResponseCode); + printf("\tEVSEID=%d\n", exiOut.V2G_Message.Body.SessionSetupRes.EVSEID.characters[1]); + printf("\tEVSETimeStamp=%li\n", (long int)exiOut.V2G_Message.Body.SessionSetupRes.EVSETimeStamp); + } else { + errn = ERROR_UNEXPECTED_SESSION_SETUP_RESP_MESSAGE; + return errn; + } + } else { + return errn; + } + + + /******************************************* + * serviceDiscovery * + *******************************************/ + init_iso2BodyType(&exiIn.V2G_Message.Body); + exiIn.V2G_Message.Body.ServiceDiscoveryReq_isUsed = 1u; + + init_iso2ServiceDiscoveryReqType(&exiIn.V2G_Message.Body.ServiceDiscoveryReq); + + exiIn.V2G_Message.Body.ServiceDiscoveryReq.SupportedServiceIDs_isUsed = 1u; + exiIn.V2G_Message.Body.ServiceDiscoveryReq.SupportedServiceIDs.ServiceID.arrayLen = 1; + exiIn.V2G_Message.Body.ServiceDiscoveryReq.SupportedServiceIDs.ServiceID.array[0] = iso2serviceCategoryType_Internet; + + printf("EV side: call EVSE serviceDiscovery"); + + errn = request_response2(&exiIn, &exiOut); + + if(errn == 0) { + /* check, if this is the right response message */ + if(exiOut.V2G_Message.Body.ServiceDiscoveryRes_isUsed) { + /* show results of EVSEs answer message */ + printf("EV side: received response message from EVSE\n"); + printf("\tHeader SessionID="); + printBinaryArray(exiOut.V2G_Message.Header.SessionID.bytes, exiOut.V2G_Message.Header.SessionID.bytesLen); + printf("\t ResponseCode=%d\n", exiOut.V2G_Message.Body.ServiceDiscoveryRes.ResponseCode); + + printf("\t Service ResponseCode=%d\n", exiOut.V2G_Message.Body.ServiceDiscoveryRes.ResponseCode); + + /*printf("\t ServiceID=%d\n", exiOut.V2G_Message.Body.ServiceDiscoveryRes.ChargeService.ServiceID); + printf("\t ServiceName="); + printASCIIString(serviceDiscoveryRes.ChargeService.ServiceName.characters, serviceDiscoveryRes.ChargeService.ServiceName.charactersLen); + if(serviceDiscoveryRes.PaymentOptionList.PaymentOption.array[1] == v2gpaymentOptionType_Contract) { + printf("\t PaymentOption=Contract_paymentOptionType\n"); + } + if(serviceDiscoveryRes.ChargeService.FreeService==1) { + printf("\t ChargeService.FreeService=True\n"); + } + if(serviceDiscoveryRes.ChargeService.SupportedEnergyTransferMode.EnergyTransferMode.array[0] == v2gEnergyTransferModeType_DC_combo_core) { + printf("\t EnergyTransferMode=AC_single_DC_core\n"); + } + if(serviceDiscoveryRes.ChargeService.SupportedEnergyTransferMode.EnergyTransferMode.array[1] == v2gEnergyTransferModeType_AC_single_phase_core) { + printf("\t EnergyTransferMode=AC_single_phase_core_EnergyTransferModeType\n"); + } + printf("\t Value added service list:\n"); + for(i=0;iEVSENotification); + printf("\t\tNotificationMaxDelay=%d\n", status->NotificationMaxDelay); +} + + +/* serializes EXI stream and adds V2G TP header */ +static int serialize1EXI2Stream(struct iso1EXIDocument* exiIn, bitstream_t* stream) { + int errn; + *stream->pos = V2GTP_HEADER_LENGTH; /* v2gtp header */ + if( (errn = encode_iso1ExiDocument(stream, exiIn)) == 0) { + errn = write_v2gtpHeader(stream->data, (*stream->pos)-V2GTP_HEADER_LENGTH, V2GTP_EXI_TYPE); + } + return errn; +} + + + +/* deserializes V2G TP header and decodes right away EXI stream */ +static int deserialize1Stream2EXI(bitstream_t* streamIn, struct iso1EXIDocument* exi) { + int errn; + uint32_t payloadLength; + + *streamIn->pos = 0; + if ( (errn = read_v2gtpHeader(streamIn->data, &payloadLength)) == 0) { + *streamIn->pos += V2GTP_HEADER_LENGTH; + + errn = decode_iso1ExiDocument(streamIn, exi); + } + return errn; +} + + + +static int sessionSetup1(struct iso1EXIDocument* exiIn, struct iso1EXIDocument* exiOut) { + printf("EVSE side: sessionSetup called\n" ); + printf("\tReceived data:\n"); + printf("\tHeader SessionID="); + printBinaryArray(exiIn->V2G_Message.Header.SessionID.bytes, exiIn->V2G_Message.Header.SessionID.bytesLen); + printf("\t\t EVCCID=%d\n", exiIn->V2G_Message.Body.SessionSetupReq.EVCCID.bytes[0]); + + exiOut->V2G_Message_isUsed = 1u; + + /* generate an unique sessionID */ + init_iso1MessageHeaderType(&exiOut->V2G_Message.Header); + exiOut->V2G_Message.Header.SessionID.bytes[0] = 1; + exiOut->V2G_Message.Header.SessionID.bytes[1] = 2; + exiOut->V2G_Message.Header.SessionID.bytes[2] = 3; + exiOut->V2G_Message.Header.SessionID.bytes[3] = 4; + exiOut->V2G_Message.Header.SessionID.bytes[4] = 5; + exiOut->V2G_Message.Header.SessionID.bytes[5] = 6; + exiOut->V2G_Message.Header.SessionID.bytes[6] = 7; + exiOut->V2G_Message.Header.SessionID.bytes[7] = 8; + exiOut->V2G_Message.Header.SessionID.bytesLen = 8; + + /* Prepare data for EV */ + init_iso1BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.SessionSetupRes_isUsed = 1u; + init_iso1SessionSetupResType(&exiOut->V2G_Message.Body.SessionSetupRes); + + exiOut->V2G_Message.Body.SessionSetupRes.ResponseCode = iso1responseCodeType_OK; + exiOut->V2G_Message.Body.SessionSetupRes.EVSEID.characters[0] = 0; + exiOut->V2G_Message.Body.SessionSetupRes.EVSEID.characters[1] = 20; + exiOut->V2G_Message.Body.SessionSetupRes.EVSEID.charactersLen = 2; + exiOut->V2G_Message.Body.SessionSetupRes.EVSETimeStamp_isUsed = 1u; + exiOut->V2G_Message.Body.SessionSetupRes.EVSETimeStamp = 123456789; + + return 0; +} + + + +static int serviceDetail1(struct iso1EXIDocument* exiIn, struct iso1EXIDocument* exiOut) { + + printf("EVSE side: serviceDetail called\n" ); + printf("\tReceived data:\n"); + printf("\tHeader SessionID="); + printBinaryArray(exiIn->V2G_Message.Header.SessionID.bytes, exiIn->V2G_Message.Header.SessionID.bytesLen); + printf("\t\t ServiceDetailID=%d\n",exiIn->V2G_Message.Body.ServiceDetailReq.ServiceID); + + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso1BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.ServiceDetailRes_isUsed= 1u; + init_iso1ServiceDetailResType(&exiOut->V2G_Message.Body.ServiceDetailRes); + + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceID = 1234; + + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList_isUsed = 1u; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.arrayLen = 2; + + /* Parameter Set 1*/ + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].ParameterSetID = 1; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.arrayLen = 2; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.charactersLen = 8; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[0] = 'P'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[1] = 'r'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[2] = 'o'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[3] = 't'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[4]= 'o'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[5] = 'c'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[6] = 'o'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[7] = 'l'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].intValue = 15119; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].intValue_isUsed = 1u; + + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].Name.charactersLen = 4; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].Name.characters[0] = 'N'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].Name.characters[1] = 'a'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].Name.characters[2] = 'm'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].Name.characters[3] = 'e'; + + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].stringValue_isUsed = 1u; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].stringValue.charactersLen = 3; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].stringValue.characters[0] = 'V'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].stringValue.characters[1] = '2'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].stringValue.characters[2] = 'G'; + + /* Parameter Set 2 */ + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].ParameterSetID = 2; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.arrayLen = 1; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.charactersLen = 7; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[0] = 'C'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[1] = 'h'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[2] = 'a'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[3] = 'n'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[4] = 'n'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[5] = 'e'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[6] = 'l'; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].physicalValue_isUsed = 1u; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].physicalValue.Value = 1234; + + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].physicalValue.Multiplier = 1; + exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].physicalValue.Value = 2; + + exiOut->V2G_Message.Body.ServiceDetailRes.ResponseCode = iso1responseCodeType_OK; + + return 0; +} + + + +static int authorization1(struct iso1EXIDocument* exiIn, struct iso1EXIDocument* exiOut) { + + printf("EVSE: Authorization called\n" ); + printf("\tReceived data:\n"); + + if(exiIn->V2G_Message.Body.AuthorizationReq.GenChallenge_isUsed) { + printf("\t\t\t GenChallenge=%d\n", exiIn->V2G_Message.Body.AuthorizationReq.GenChallenge.bytes[0]); + } + if(exiIn->V2G_Message.Body.AuthorizationReq.Id_isUsed ) { + printf("\t\t\t ID=%c%c%c\n", exiIn->V2G_Message.Body.AuthorizationReq.Id.characters[0], exiIn->V2G_Message.Body.AuthorizationReq.Id.characters[1], exiIn->V2G_Message.Body.AuthorizationReq.Id.characters[2]); + } + + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso1BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.AuthorizationRes_isUsed = 1u; + init_iso1AuthorizationResType(&exiOut->V2G_Message.Body.AuthorizationRes); + + exiOut->V2G_Message.Body.AuthorizationRes.ResponseCode = iso1responseCodeType_OK; + exiOut->V2G_Message.Body.AuthorizationRes.EVSEProcessing = iso1EVSEProcessingType_Finished; + + return 0; +} + + +static int powerDelivery1(struct iso1EXIDocument* exiIn, struct iso1EXIDocument* exiOut) { + printf("EVSE side: powerDelivery called\n" ); + printf("\tReceived data:\n"); + + printf("\t\t ChargeProgress=%d\n", exiIn->V2G_Message.Body.PowerDeliveryReq.ChargeProgress); + printf("\t\t SAScheduleTupleID=%d\n", exiIn->V2G_Message.Body.PowerDeliveryReq.SAScheduleTupleID); + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso1BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.PowerDeliveryRes_isUsed = 1u; + init_iso1PowerDeliveryResType(&exiOut->V2G_Message.Body.PowerDeliveryRes); + + exiOut->V2G_Message.Body.PowerDeliveryRes.ResponseCode = iso1responseCodeType_OK; + + exiOut->V2G_Message.Body.PowerDeliveryRes.EVSEStatus_isUsed = 1; + exiOut->V2G_Message.Body.PowerDeliveryRes.EVSEStatus.EVSENotification = iso1EVSENotificationType_StopCharging; + exiOut->V2G_Message.Body.PowerDeliveryRes.EVSEStatus.NotificationMaxDelay=12; + + return 0; +} + + +static int chargingStatus1(struct iso1EXIDocument* exiIn, struct iso1EXIDocument* exiOut) { + + printf("EVSE side: chargingStatus called\n" ); + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso1BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.ChargingStatusRes_isUsed = 1u; + init_iso1ChargingStatusResType(&exiOut->V2G_Message.Body.ChargingStatusRes); + + + exiOut->V2G_Message.Body.ChargingStatusRes.ResponseCode = iso1responseCodeType_OK; + exiOut->V2G_Message.Body.ChargingStatusRes.EVSEID.characters[0]= 'A'; + exiOut->V2G_Message.Body.ChargingStatusRes.EVSEID.charactersLen =1; + + exiOut->V2G_Message.Body.ChargingStatusRes.ReceiptRequired = 1; + exiOut->V2G_Message.Body.ChargingStatusRes.ReceiptRequired_isUsed = 1; + + return 0; +} + + +static int meteringReceipt1(struct iso1EXIDocument* exiIn, struct iso1EXIDocument* exiOut) { + + printf("EVSE side: meteringReceipt called\n" ); + printf("\tReceived data:\n"); + + printf("\t\t ID=%c%c%c\n", exiIn->V2G_Message.Body.MeteringReceiptReq.Id.characters[0], exiIn->V2G_Message.Body.MeteringReceiptReq.Id.characters[1], exiIn->V2G_Message.Body.MeteringReceiptReq.Id.characters[2]); + printf("\t\t SAScheduleTupleID=%d\n", exiIn->V2G_Message.Body.MeteringReceiptReq.SAScheduleTupleID); + printf("\t\t SessionID=%d\n", exiIn->V2G_Message.Body.MeteringReceiptReq.SessionID.bytes[1]); + printf("\t\t MeterInfo.MeterStatus=%d\n", exiIn->V2G_Message.Body.MeteringReceiptReq.MeterInfo.MeterStatus); + printf("\t\t MeterInfo.MeterID=%d\n", exiIn->V2G_Message.Body.MeteringReceiptReq.MeterInfo.MeterID.characters[0]); + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso1BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.MeteringReceiptRes_isUsed = 1u; + init_iso1MeteringReceiptResType(&exiOut->V2G_Message.Body.MeteringReceiptRes); + + exiOut->V2G_Message.Body.MeteringReceiptRes.ResponseCode = iso1responseCodeType_FAILED; + + return 0; +} + +static int sessionStop1(struct iso1EXIDocument* exiIn, struct iso1EXIDocument* exiOut) { + + printf("EVSE side: sessionStop called\n" ); + printf("\tReceived data:\n"); + printf("\tHeader SessionID="); + printBinaryArray(exiIn->V2G_Message.Header.SessionID.bytes, exiIn->V2G_Message.Header.SessionID.bytesLen); + printf("\t\t ChargingSession=%d\n", exiIn->V2G_Message.Body.SessionStopReq.ChargingSession); + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso1BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.SessionStopRes_isUsed = 1u; + init_iso1SessionStopResType(&exiOut->V2G_Message.Body.SessionStopRes); + + exiOut->V2G_Message.Body.SessionStopRes.ResponseCode = iso1responseCodeType_OK; + + return 0; +} + +static int cableCheck1(struct iso1EXIDocument* exiIn, struct iso1EXIDocument* exiOut) { + + printf("EVSE side: cableCheck called\n" ); + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso1BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.CableCheckRes_isUsed = 1u; + init_iso1CableCheckResType(&exiOut->V2G_Message.Body.CableCheckRes); + + exiOut->V2G_Message.Body.CableCheckRes.ResponseCode = iso1responseCodeType_OK; + + exiOut->V2G_Message.Body.CableCheckRes.DC_EVSEStatus.NotificationMaxDelay = 1234; + exiOut->V2G_Message.Body.CableCheckRes.DC_EVSEStatus.EVSENotification= iso1EVSENotificationType_ReNegotiation; + + exiOut->V2G_Message.Body.CableCheckRes.EVSEProcessing = iso1EVSEProcessingType_Finished; + + return 0; +} + +static int preCharge1(struct iso1EXIDocument* exiIn, struct iso1EXIDocument* exiOut) { + + printf("EVSE side: preCharge called\n" ); + printf("\tReceived data:\n"); + + printf("\t\t EVTargetCurrent=%d (%d)\n", exiIn->V2G_Message.Body.PreChargeReq.EVTargetCurrent.Value, exiIn->V2G_Message.Body.PreChargeReq.EVTargetCurrent.Multiplier); + printf("\t\t EVTargetVoltage=%d (%d)\n", exiIn->V2G_Message.Body.PreChargeReq.EVTargetVoltage.Value, exiIn->V2G_Message.Body.PreChargeReq.EVTargetVoltage.Multiplier); + + /* Prepare data for EV */ + exiOut->V2G_Message_isUsed = 1u; + init_iso1BodyType(&exiOut->V2G_Message.Body); + + exiOut->V2G_Message.Body.PreChargeRes_isUsed = 1u; + init_iso1PreChargeResType(&exiOut->V2G_Message.Body.PreChargeRes); + + exiOut->V2G_Message.Body.PreChargeRes.ResponseCode = iso1responseCodeType_OK; + + exiOut->V2G_Message.Body.PreChargeRes.DC_EVSEStatus.EVSENotification = iso1EVSENotificationType_StopCharging; + exiOut->V2G_Message.Body.PreChargeRes.DC_EVSEStatus.NotificationMaxDelay= 1234; + + exiOut->V2G_Message.Body.PreChargeRes.EVSEPresentVoltage.Multiplier = 3; + exiOut->V2G_Message.Body.PreChargeRes.EVSEPresentVoltage.Value= 456; + + return 0; +} + + + + + +static int create_response_message1(struct iso1EXIDocument* exiIn, struct iso1EXIDocument* exiOut) { + int errn = ERROR_UNEXPECTED_REQUEST_MESSAGE; + + /* create response message as EXI document */ + if(exiIn->V2G_Message_isUsed) { + init_iso1EXIDocument(exiOut); + if (exiIn->V2G_Message.Body.SessionSetupReq_isUsed) { + errn = sessionSetup1(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.ServiceDetailReq_isUsed) { + errn = serviceDetail1(exiIn, exiOut); + /*} else if (exiIn->V2G_Message.Body.PaymentDetailsReq_isUsed) { + errn = paymentDetails1(exiIn, exiOut);*/ + } else if (exiIn->V2G_Message.Body.AuthorizationReq_isUsed) { + errn = authorization1(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.PowerDeliveryReq_isUsed) { + errn = powerDelivery1(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.ChargingStatusReq_isUsed) { + errn = chargingStatus1(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.MeteringReceiptReq_isUsed) { + errn = meteringReceipt1(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.SessionStopReq_isUsed) { + errn = sessionStop1(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.CableCheckReq_isUsed) { + errn = cableCheck1(exiIn, exiOut); + } else if (exiIn->V2G_Message.Body.PreChargeReq_isUsed) { + errn = preCharge1(exiIn, exiOut); + } + } + + return errn; +} + + +/* Adapt this to your system setup! */ +/* In this situation EV and EVSE is the same party */ +static int request_response1(struct iso1EXIDocument* exiIn, struct iso1EXIDocument* exiOut) { + int errn; + + bitstream_t stream1; + bitstream_t stream2; + + size_t pos1; + size_t pos2; + + stream1.size = BUFFER_SIZE; + stream1.data = buffer1; + stream1.pos = &pos1; + + stream2.size = BUFFER_SIZE; + stream2.data = buffer2; + stream2.pos = &pos2; + + /* EV side */ + errn = serialize1EXI2Stream(exiIn, &stream1); + + /* --> Start of EVSE side */ + /* deserialize request message */ + if (errn == 0) { + errn = deserialize1Stream2EXI(&stream1, exiOut); + } + /* create response message */ + if (errn == 0) { + errn = create_response_message1(exiOut, exiIn); + } + /* serialize response message */ + if (errn == 0) { + errn = serialize1EXI2Stream(exiIn, &stream2); + } + /* <-- End of EVSE side */ + + + /* EV side */ + /* deserialize response message */ + if (errn == 0) { + errn = deserialize1Stream2EXI(&stream2, exiOut); + } + + return errn; +} + +static int charging1() +{ + int errn = 0; + int i, j; + + struct iso1EXIDocument exiIn; + struct iso1EXIDocument exiOut; + + struct iso1ServiceDetailResType serviceDetailRes; + struct iso1PaymentDetailsResType paymentDetailsRes; + + /* setup header information */ + init_iso1EXIDocument(&exiIn); + exiIn.V2G_Message_isUsed = 1u; + init_iso1MessageHeaderType(&exiIn.V2G_Message.Header); + exiIn.V2G_Message.Header.SessionID.bytes[0] = 0; /* sessionID is always '0' at the beginning (the response contains the valid sessionID)*/ + exiIn.V2G_Message.Header.SessionID.bytes[1] = 0; + exiIn.V2G_Message.Header.SessionID.bytes[2] = 0; + exiIn.V2G_Message.Header.SessionID.bytes[3] = 0; + exiIn.V2G_Message.Header.SessionID.bytes[4] = 0; + exiIn.V2G_Message.Header.SessionID.bytes[5] = 0; + exiIn.V2G_Message.Header.SessionID.bytes[6] = 0; + exiIn.V2G_Message.Header.SessionID.bytes[7] = 0; + exiIn.V2G_Message.Header.SessionID.bytesLen = 8; + exiIn.V2G_Message.Header.Signature_isUsed = 0u; + + + /************************ + * sessionSetup * + ************************/ + init_iso1BodyType(&exiIn.V2G_Message.Body); + exiIn.V2G_Message.Body.SessionSetupReq_isUsed = 1u; + + init_iso1SessionSetupReqType(&exiIn.V2G_Message.Body.SessionSetupReq); + + exiIn.V2G_Message.Body.SessionSetupReq.EVCCID.bytesLen = 1; + exiIn.V2G_Message.Body.SessionSetupReq.EVCCID.bytes[0] = 10; + + printf("EV side: call EVSE sessionSetup"); + + errn = request_response1(&exiIn, &exiOut); + + if(errn == 0) { + /* check, if this is the right response message */ + if(exiOut.V2G_Message.Body.SessionSetupRes_isUsed) { + /* show results of EVSEs answer message */ + printf("EV side: received response message from EVSE\n"); + printf("\tHeader SessionID="); + printBinaryArray(exiOut.V2G_Message.Header.SessionID.bytes, exiOut.V2G_Message.Header.SessionID.bytesLen); + printf("\tResponseCode=%d\n", exiOut.V2G_Message.Body.SessionSetupRes.ResponseCode); + printf("\tEVSEID=%d\n", exiOut.V2G_Message.Body.SessionSetupRes.EVSEID.characters[1]); + printf("\tEVSETimeStamp=%li\n", (long int)exiOut.V2G_Message.Body.SessionSetupRes.EVSETimeStamp); + } else { + errn = ERROR_UNEXPECTED_SESSION_SETUP_RESP_MESSAGE; + return errn; + } + } else { + return errn; + } + + + + /********************************* + * ServiceDetails * + *********************************/ + init_iso1BodyType(&exiIn.V2G_Message.Body); + exiIn.V2G_Message.Body.ServiceDetailReq_isUsed = 1u; + + init_iso1ServiceDetailReqType(&exiIn.V2G_Message.Body.ServiceDetailReq); + + exiIn.V2G_Message.Body.ServiceDetailReq.ServiceID = 22; /* Value Added Server ID */ + + printf("EV side: call EVSE ServiceDetail \n"); + + errn = request_response1(&exiIn, &exiOut); + + if(errn == 0) { + /* check, if this is the right response message */ + if(exiOut.V2G_Message.Body.ServiceDetailRes_isUsed) { + serviceDetailRes = exiOut.V2G_Message.Body.ServiceDetailRes; + /* show results of EVSEs answer message */ + printf("EV side: received response message from EVSE\n"); + printf("\tHeader SessionID="); + printBinaryArray(exiOut.V2G_Message.Header.SessionID.bytes, exiOut.V2G_Message.Header.SessionID.bytesLen); + printf("\t ResponseCode=%d\n", exiOut.V2G_Message.Body.ServiceDiscoveryRes.ResponseCode); + printf("\t ServiceID=%d\n", exiOut.V2G_Message.Body.ServiceDetailRes.ServiceID); + + if(serviceDetailRes.ServiceParameterList_isUsed) { + printf("\t\tLength=%d\n", serviceDetailRes.ServiceParameterList.ParameterSet.arrayLen );/*TEST*/ + + for(i=0; i + U29tZSBSYW5kb20gRGF0YQ== + + */ + + init_iso2EXIFragment(&exiV2G_AR); + exiV2G_AR.AuthorizationReq_isUsed = 1u; + init_iso2AuthorizationReqType(&exiV2G_AR.AuthorizationReq); + exiV2G_AR.AuthorizationReq.Id_isUsed = 1; + exiV2G_AR.AuthorizationReq.Id.charactersLen = 3; + exiV2G_AR.AuthorizationReq.Id.characters[0] = 'I'; + exiV2G_AR.AuthorizationReq.Id.characters[1] = 'D'; + exiV2G_AR.AuthorizationReq.Id.characters[2] = '1'; + exiV2G_AR.AuthorizationReq.GenChallenge_isUsed = 1; + /* base64 U29tZSBSYW5kb20gRGF0YQ== */ + exiV2G_AR.AuthorizationReq.GenChallenge.bytesLen = 16; + exiV2G_AR.AuthorizationReq.GenChallenge.bytes[0] = 0x53; + exiV2G_AR.AuthorizationReq.GenChallenge.bytes[1] = 0x6F; + exiV2G_AR.AuthorizationReq.GenChallenge.bytes[2] = 0x6D; + exiV2G_AR.AuthorizationReq.GenChallenge.bytes[3] = 0x65; + exiV2G_AR.AuthorizationReq.GenChallenge.bytes[4] = 0x20; + exiV2G_AR.AuthorizationReq.GenChallenge.bytes[5] = 0x52; + exiV2G_AR.AuthorizationReq.GenChallenge.bytes[6] = 0x61; + exiV2G_AR.AuthorizationReq.GenChallenge.bytes[7] = 0x6E; + exiV2G_AR.AuthorizationReq.GenChallenge.bytes[8] = 0x64; + exiV2G_AR.AuthorizationReq.GenChallenge.bytes[9] = 0x6F; + exiV2G_AR.AuthorizationReq.GenChallenge.bytes[10] = 0x6D; + exiV2G_AR.AuthorizationReq.GenChallenge.bytes[11] = 0x20; + exiV2G_AR.AuthorizationReq.GenChallenge.bytes[12] = 0x44; + exiV2G_AR.AuthorizationReq.GenChallenge.bytes[13] = 0x61; + exiV2G_AR.AuthorizationReq.GenChallenge.bytes[14] = 0x74; + exiV2G_AR.AuthorizationReq.GenChallenge.bytes[15] = 0x61; + + /* encode fragment with ISO schema */ + errn = encode_iso2ExiFragment(&stream1, &exiV2G_AR); + + if((*stream1.pos) != sizeIsoStream1) { + errn = -1; + printf("EXI1 stream length does not match !\n"); + return errn; + } else { + for(i=0; i + + + + + + + + 0bXgPQBlvuVrMXmERTBR61TK + GPwOCRYXT4s8d6mPSqk= + + + */ + + /* encode SignedInfo element with xmldsig schema */ + + const char arrayCanonicalEXI[35] = {"http://www.w3.org/TR/canonical-exi/"}; + const char arrayxmldsigSHA256[51] = {"http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha256"}; + const char arrayxmlencSHA256[39] = {"http://www.w3.org/2001/04/xmlenc#sha256"}; + + init_xmldsigEXIFragment(&exiXMLDSIG_SI); + exiXMLDSIG_SI.SignedInfo_isUsed = 1; + init_xmldsigSignedInfoType(&exiXMLDSIG_SI.SignedInfo); + { + init_xmldsigCanonicalizationMethodType(&exiXMLDSIG_SI.SignedInfo.CanonicalizationMethod); + exiXMLDSIG_SI.SignedInfo.CanonicalizationMethod.Algorithm.charactersLen = 35; + strncpy(exiXMLDSIG_SI.SignedInfo.CanonicalizationMethod.Algorithm.characters, arrayCanonicalEXI, 35); + + exiXMLDSIG_SI.SignedInfo.SignatureMethod.HMACOutputLength_isUsed = 0; + exiXMLDSIG_SI.SignedInfo.SignatureMethod.Algorithm.charactersLen = 51; + strncpy(exiXMLDSIG_SI.SignedInfo.SignatureMethod.Algorithm.characters, arrayxmldsigSHA256, 51); + + exiXMLDSIG_SI.SignedInfo.Reference.arrayLen = 1; + /* "#ID1" */ + exiXMLDSIG_SI.SignedInfo.Reference.array[0].URI_isUsed = 1; + exiXMLDSIG_SI.SignedInfo.Reference.array[0].URI.charactersLen = 4; + exiXMLDSIG_SI.SignedInfo.Reference.array[0].URI.characters[0] = '#'; + exiXMLDSIG_SI.SignedInfo.Reference.array[0].URI.characters[1] = 'I'; + exiXMLDSIG_SI.SignedInfo.Reference.array[0].URI.characters[2] = 'D'; + exiXMLDSIG_SI.SignedInfo.Reference.array[0].URI.characters[3] = '1'; + /* "http://www.w3.org/TR/canonical-exi/" */ + exiXMLDSIG_SI.SignedInfo.Reference.array[0].Transforms_isUsed = 1; + exiXMLDSIG_SI.SignedInfo.Reference.array[0].Transforms.Transform.arrayLen = 1; + exiXMLDSIG_SI.SignedInfo.Reference.array[0].Transforms.Transform.array[0].Algorithm.charactersLen = 35; + strncpy(exiXMLDSIG_SI.SignedInfo.Reference.array[0].Transforms.Transform.array[0].Algorithm.characters, arrayCanonicalEXI, 35); /* Will copy 35 characters from arrayCanonicalEXI to characters */ + exiXMLDSIG_SI.SignedInfo.Reference.array[0].Transforms.Transform.array[0].XPath.arrayLen = 0; + + exiXMLDSIG_SI.SignedInfo.Reference.array[0].DigestMethod.Algorithm.charactersLen = 39; + strncpy(exiXMLDSIG_SI.SignedInfo.Reference.array[0].DigestMethod.Algorithm.characters, arrayxmlencSHA256, 39); + + /* "0bXgPQBlvuVrMXmERTBR61TKGPwOCRYXT4s8d6mPSqk=" --> 16 Bytes 536F6D652052616E646F6D2044617461 */ + exiXMLDSIG_SI.SignedInfo.Reference.array[0].DigestValue.bytesLen = 32; + memcpy(exiXMLDSIG_SI.SignedInfo.Reference.array[0].DigestValue.bytes, digestValue, 32); + } + + errn = encode_xmldsigExiFragment(&stream2, &exiXMLDSIG_SI); + + if((*stream2.pos) != sizeIsoStream2) { + errn = -1; + printf("EXI2 stream length does not match !\n"); + return errn; + } else { + for(i=0; i. + */ + +/******************************************************************* + * + * @author Sebastian.Kaebisch@siemens.com + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + ********************************************************************/ + +/* + * This file implements the v2gtp header writer and reader. + * + */ + +#include +#include +#include +#include +#include +#include + +#include "v2gtp.h" + + +int write_v2gtpHeader(uint8_t* outStream, uint32_t outStreamLength, uint16_t payloadType) +{ + + /* write v2gtp version number 1=byte */ + outStream[0]=V2GTP_VERSION; + + /* write inverse v2gtp version */ + outStream[1]=V2GTP_VERSION_INV; + + + /* write payload type */ + outStream[3] = (uint8_t)(payloadType & 0xFF); + outStream[2] = (uint8_t)(payloadType >> 8 & 0xFF); + + /* write payload length */ + outStream[7] = (uint8_t)(outStreamLength & 0xFF); + outStream[6] = (uint8_t)(outStreamLength>>8 & 0xFF); + outStream[5] = (uint8_t)(outStreamLength>>16 & 0xFF); + outStream[4] = (uint8_t)(outStreamLength>>24 & 0xFF); + + return 0; +} + +int read_v2gtpHeader(uint8_t* inStream, uint32_t* payloadLength) +{ + uint16_t payloadType=0; + + + /* check, if we support this v2gtp version */ + if(inStream[0]!=V2GTP_VERSION || inStream[1]!=V2GTP_VERSION_INV) + return -1; + + + /* check, if we support this payload type*/ + payloadType = inStream[2]; + payloadType = (payloadType << 8 | inStream[3]); + + if(payloadType != V2GTP_EXI_TYPE) + return -1; + + + /* determine payload length*/ + *payloadLength = inStream[4]; + *payloadLength = (*payloadLength << 8 | inStream[5]); + *payloadLength = (*payloadLength << 8 | inStream[6]); + *payloadLength = (*payloadLength << 8 | inStream[7]); + + return 0; +} + diff --git a/csharp/vc2022/src/transport/v2gtp.h b/csharp/vc2022/src/transport/v2gtp.h new file mode 100644 index 0000000..2b6c6db --- /dev/null +++ b/csharp/vc2022/src/transport/v2gtp.h @@ -0,0 +1,55 @@ + +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Sebastian.Kaebisch@siemens.com + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + ********************************************************************/ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef V2GTP_H_ +#define V2GTP_H_ + +#include + +/* generic V2GTP header length */ +#define V2GTP_HEADER_LENGTH 8 + +/* define V2GTP Version */ +#define V2GTP_VERSION 0x01 +#define V2GTP_VERSION_INV 0xFE + +/* define V2GTP payload types*/ +#define V2GTP_EXI_TYPE 0x8001 + +int write_v2gtpHeader(uint8_t* outStream, uint32_t outStreamLength, uint16_t payloadType); + +int read_v2gtpHeader(uint8_t* inStream, uint32_t* payloadLength); + +#endif /* V2GTP_H_ */ + +#ifdef __cplusplus +} +#endif diff --git a/csharp/vc2022/src/xmldsig/xmldsigEXIDatatypes.c b/csharp/vc2022/src/xmldsig/xmldsigEXIDatatypes.c new file mode 100644 index 0000000..752d4e8 --- /dev/null +++ b/csharp/vc2022/src/xmldsig/xmldsigEXIDatatypes.c @@ -0,0 +1,255 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: xmldsig-core-schema.xsd

+ * + * + ********************************************************************/ + + + +#include + +#include "xmldsigEXIDatatypes.h" +#include "EXITypes.h" + + +#ifndef EXI_xmldsig_DATATYPES_C +#define EXI_xmldsig_DATATYPES_C + +#if DEPLOY_XMLDSIG_CODEC == SUPPORT_YES + + +void init_xmldsigEXIDocument(struct xmldsigEXIDocument* exiDoc) { + exiDoc->SignatureProperty_isUsed = 0u; + exiDoc->DSAKeyValue_isUsed = 0u; + exiDoc->SignatureProperties_isUsed = 0u; + exiDoc->KeyValue_isUsed = 0u; + exiDoc->Transforms_isUsed = 0u; + exiDoc->DigestMethod_isUsed = 0u; + exiDoc->Signature_isUsed = 0u; + exiDoc->RetrievalMethod_isUsed = 0u; + exiDoc->Manifest_isUsed = 0u; + exiDoc->Reference_isUsed = 0u; + exiDoc->CanonicalizationMethod_isUsed = 0u; + exiDoc->RSAKeyValue_isUsed = 0u; + exiDoc->Transform_isUsed = 0u; + exiDoc->PGPData_isUsed = 0u; + exiDoc->MgmtData_isUsed = 0u; + exiDoc->SignatureMethod_isUsed = 0u; + exiDoc->KeyInfo_isUsed = 0u; + exiDoc->SPKIData_isUsed = 0u; + exiDoc->X509Data_isUsed = 0u; + exiDoc->SignatureValue_isUsed = 0u; + exiDoc->KeyName_isUsed = 0u; + exiDoc->DigestValue_isUsed = 0u; + exiDoc->SignedInfo_isUsed = 0u; + exiDoc->Object_isUsed = 0u; +} + + +#if DEPLOY_XMLDSIG_CODEC_FRAGMENT == SUPPORT_YES +void init_xmldsigEXIFragment(struct xmldsigEXIFragment* exiFrag) { + exiFrag->DigestValue_isUsed = 0u; + exiFrag->X509Data_isUsed = 0u; + exiFrag->KeyValue_isUsed = 0u; + exiFrag->DigestMethod_isUsed = 0u; + exiFrag->SPKISexp_isUsed = 0u; + exiFrag->Transforms_isUsed = 0u; + exiFrag->KeyName_isUsed = 0u; + exiFrag->X509IssuerName_isUsed = 0u; + exiFrag->MgmtData_isUsed = 0u; + exiFrag->Reference_isUsed = 0u; + exiFrag->SignatureProperties_isUsed = 0u; + exiFrag->PGPKeyID_isUsed = 0u; + exiFrag->PGPData_isUsed = 0u; + exiFrag->DSAKeyValue_isUsed = 0u; + exiFrag->SignatureValue_isUsed = 0u; + exiFrag->KeyInfo_isUsed = 0u; + exiFrag->SignatureProperty_isUsed = 0u; + exiFrag->PGPKeyPacket_isUsed = 0u; + exiFrag->PGPKeyPacket_isUsed = 0u; + exiFrag->HMACOutputLength_isUsed = 0u; + exiFrag->Exponent_isUsed = 0u; + exiFrag->Manifest_isUsed = 0u; + exiFrag->P_isUsed = 0u; + exiFrag->CanonicalizationMethod_isUsed = 0u; + exiFrag->Q_isUsed = 0u; + exiFrag->Seed_isUsed = 0u; + exiFrag->X509SubjectName_isUsed = 0u; + exiFrag->X509Certificate_isUsed = 0u; + exiFrag->RSAKeyValue_isUsed = 0u; + exiFrag->X509IssuerSerial_isUsed = 0u; + exiFrag->SPKIData_isUsed = 0u; + exiFrag->G_isUsed = 0u; + exiFrag->J_isUsed = 0u; + exiFrag->SignedInfo_isUsed = 0u; + exiFrag->X509SKI_isUsed = 0u; + exiFrag->Transform_isUsed = 0u; + exiFrag->XPath_isUsed = 0u; + exiFrag->Object_isUsed = 0u; + exiFrag->X509SerialNumber_isUsed = 0u; + exiFrag->RetrievalMethod_isUsed = 0u; + exiFrag->Modulus_isUsed = 0u; + exiFrag->X509CRL_isUsed = 0u; + exiFrag->Signature_isUsed = 0u; + exiFrag->Y_isUsed = 0u; + exiFrag->SignatureMethod_isUsed = 0u; + exiFrag->PgenCounter_isUsed = 0u; +} +#endif /* DEPLOY_XMLDSIG_CODEC_FRAGMENT */ + +void init_xmldsigCanonicalizationMethodType(struct xmldsigCanonicalizationMethodType* xmldsigCanonicalizationMethodType) { + xmldsigCanonicalizationMethodType->ANY_isUsed = 0u; +} + +void init_xmldsigManifestType(struct xmldsigManifestType* xmldsigManifestType) { + xmldsigManifestType->Id_isUsed = 0u; + xmldsigManifestType->Reference.arrayLen = 0u; +} + +void init_xmldsigObjectType(struct xmldsigObjectType* xmldsigObjectType) { + xmldsigObjectType->Id_isUsed = 0u; + xmldsigObjectType->MimeType_isUsed = 0u; + xmldsigObjectType->Encoding_isUsed = 0u; + xmldsigObjectType->ANY_isUsed = 0u; +} + +void init_xmldsigTransformType(struct xmldsigTransformType* xmldsigTransformType) { + xmldsigTransformType->ANY_isUsed = 0u; + xmldsigTransformType->XPath.arrayLen = 0u; +} + +void init_xmldsigSignatureMethodType(struct xmldsigSignatureMethodType* xmldsigSignatureMethodType) { + xmldsigSignatureMethodType->HMACOutputLength_isUsed = 0u; + xmldsigSignatureMethodType->ANY_isUsed = 0u; +} + +void init_xmldsigDigestMethodType(struct xmldsigDigestMethodType* xmldsigDigestMethodType) { + xmldsigDigestMethodType->ANY_isUsed = 0u; +} + +void init_xmldsigRetrievalMethodType(struct xmldsigRetrievalMethodType* xmldsigRetrievalMethodType) { + xmldsigRetrievalMethodType->URI_isUsed = 0u; + xmldsigRetrievalMethodType->Type_isUsed = 0u; + xmldsigRetrievalMethodType->Transforms_isUsed = 0u; +} + +void init_xmldsigSignatureValueType(struct xmldsigSignatureValueType* xmldsigSignatureValueType) { + xmldsigSignatureValueType->Id_isUsed = 0u; +} + +void init_xmldsigX509IssuerSerialType(struct xmldsigX509IssuerSerialType* xmldsigX509IssuerSerialType) { + (void)xmldsigX509IssuerSerialType; /* avoid unused warning */ +} + +void init_xmldsigSignedInfoType(struct xmldsigSignedInfoType* xmldsigSignedInfoType) { + xmldsigSignedInfoType->Id_isUsed = 0u; + xmldsigSignedInfoType->Reference.arrayLen = 0u; +} + +void init_xmldsigSignaturePropertiesType(struct xmldsigSignaturePropertiesType* xmldsigSignaturePropertiesType) { + xmldsigSignaturePropertiesType->Id_isUsed = 0u; + xmldsigSignaturePropertiesType->SignatureProperty.arrayLen = 0u; +} + +void init_xmldsigSignaturePropertyType(struct xmldsigSignaturePropertyType* xmldsigSignaturePropertyType) { + xmldsigSignaturePropertyType->Id_isUsed = 0u; + xmldsigSignaturePropertyType->ANY_isUsed = 0u; +} + +void init_xmldsigKeyValueType(struct xmldsigKeyValueType* xmldsigKeyValueType) { + xmldsigKeyValueType->DSAKeyValue_isUsed = 0u; + xmldsigKeyValueType->RSAKeyValue_isUsed = 0u; + xmldsigKeyValueType->ANY_isUsed = 0u; +} + +void init_xmldsigRSAKeyValueType(struct xmldsigRSAKeyValueType* xmldsigRSAKeyValueType) { + (void)xmldsigRSAKeyValueType; /* avoid unused warning */ +} + +void init_xmldsigPGPDataType(struct xmldsigPGPDataType* xmldsigPGPDataType) { + xmldsigPGPDataType->PGPKeyID_isUsed = 0u; + xmldsigPGPDataType->PGPKeyPacket_isUsed = 0u; + xmldsigPGPDataType->ANY_isUsed = 0u; +} + +void init_xmldsigTransformsType(struct xmldsigTransformsType* xmldsigTransformsType) { + xmldsigTransformsType->Transform.arrayLen = 0u; +} + +void init_xmldsigX509DataType(struct xmldsigX509DataType* xmldsigX509DataType) { + xmldsigX509DataType->X509IssuerSerial.arrayLen = 0u; + xmldsigX509DataType->X509SKI.arrayLen = 0u; + xmldsigX509DataType->X509SubjectName.arrayLen = 0u; + xmldsigX509DataType->X509Certificate.arrayLen = 0u; + xmldsigX509DataType->X509CRL.arrayLen = 0u; + xmldsigX509DataType->ANY_isUsed = 0u; +} + +void init_xmldsigSignatureType(struct xmldsigSignatureType* xmldsigSignatureType) { + xmldsigSignatureType->Id_isUsed = 0u; + xmldsigSignatureType->KeyInfo_isUsed = 0u; + xmldsigSignatureType->Object.arrayLen = 0u; +} + +void init_xmldsigDSAKeyValueType(struct xmldsigDSAKeyValueType* xmldsigDSAKeyValueType) { + xmldsigDSAKeyValueType->P_isUsed = 0u; + xmldsigDSAKeyValueType->Q_isUsed = 0u; + xmldsigDSAKeyValueType->G_isUsed = 0u; + xmldsigDSAKeyValueType->J_isUsed = 0u; + xmldsigDSAKeyValueType->Seed_isUsed = 0u; + xmldsigDSAKeyValueType->PgenCounter_isUsed = 0u; +} + +void init_xmldsigReferenceType(struct xmldsigReferenceType* xmldsigReferenceType) { + xmldsigReferenceType->Id_isUsed = 0u; + xmldsigReferenceType->URI_isUsed = 0u; + xmldsigReferenceType->Type_isUsed = 0u; + xmldsigReferenceType->Transforms_isUsed = 0u; +} + +void init_xmldsigSPKIDataType(struct xmldsigSPKIDataType* xmldsigSPKIDataType) { + xmldsigSPKIDataType->SPKISexp.arrayLen = 0u; + xmldsigSPKIDataType->ANY_isUsed = 0u; +} + +void init_xmldsigKeyInfoType(struct xmldsigKeyInfoType* xmldsigKeyInfoType) { + xmldsigKeyInfoType->Id_isUsed = 0u; + xmldsigKeyInfoType->KeyName.arrayLen = 0u; + xmldsigKeyInfoType->KeyValue.arrayLen = 0u; + xmldsigKeyInfoType->RetrievalMethod.arrayLen = 0u; + xmldsigKeyInfoType->X509Data.arrayLen = 0u; + xmldsigKeyInfoType->PGPData.arrayLen = 0u; + xmldsigKeyInfoType->SPKIData.arrayLen = 0u; + xmldsigKeyInfoType->MgmtData.arrayLen = 0u; + xmldsigKeyInfoType->ANY_isUsed = 0u; +} + + + +#endif /* DEPLOY_XMLDSIG_CODEC */ + +#endif + diff --git a/csharp/vc2022/src/xmldsig/xmldsigEXIDatatypes.h b/csharp/vc2022/src/xmldsig/xmldsigEXIDatatypes.h new file mode 100644 index 0000000..0de2760 --- /dev/null +++ b/csharp/vc2022/src/xmldsig/xmldsigEXIDatatypes.h @@ -0,0 +1,935 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: xmldsig-core-schema.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIDatatypes.h + * \brief Datatype definitions and structs for given XML Schema definitions and initialization methods + * + */ + +#ifndef EXI_xmldsig_DATATYPES_H +#define EXI_xmldsig_DATATYPES_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define SUPPORT_YES 1 +#define SUPPORT_NO 2 +#define DEPLOY_XMLDSIG_CODEC SUPPORT_NO +#define DEPLOY_XMLDSIG_CODEC_FRAGMENT SUPPORT_NO + +#if DEPLOY_XMLDSIG_CODEC == SUPPORT_YES + +#include + +#include "EXITypes.h" + + +/* Datatype definitions and structs for given XML Schema definitions */ + +#define UNION_YES 1 +#define UNION_NO 2 +#define SAVE_MEMORY_WITH_UNNAMED_UNION UNION_YES + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define xmldsigCanonicalizationMethodType_Algorithm_CHARACTERS_SIZE 65 + EXTRA_CHAR +#define xmldsigCanonicalizationMethodType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct xmldsigCanonicalizationMethodType { + /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[xmldsigCanonicalizationMethodType_Algorithm_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Algorithm ; + /* element: WC[##any] */ + struct { + exi_string_character_t characters[xmldsigCanonicalizationMethodType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define xmldsigObjectType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigObjectType_MimeType_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigObjectType_Encoding_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigObjectType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct xmldsigObjectType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[xmldsigObjectType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* attribute: MimeType {http://www.w3.org/2001/XMLSchema,string} */ + struct { + exi_string_character_t characters[xmldsigObjectType_MimeType_CHARACTERS_SIZE]; + uint16_t charactersLen; + } MimeType ; + unsigned int MimeType_isUsed:1; + /* attribute: Encoding {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[xmldsigObjectType_Encoding_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Encoding ; + unsigned int Encoding_isUsed:1; + /* element: WC[##any] */ + struct { + exi_string_character_t characters[xmldsigObjectType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define xmldsigTransformType_Algorithm_CHARACTERS_SIZE 65 + EXTRA_CHAR +#define xmldsigTransformType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigTransformType_XPath_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigTransformType_XPath_ARRAY_SIZE 1 +struct xmldsigTransformType { + /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[xmldsigTransformType_Algorithm_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Algorithm ; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[xmldsigTransformType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":XPath, http://www.w3.org/2001/XMLSchema,string */ + struct { + struct { + exi_string_character_t characters[xmldsigTransformType_XPath_CHARACTERS_SIZE]; + uint16_t charactersLen; + } array[xmldsigTransformType_XPath_ARRAY_SIZE]; + uint16_t arrayLen; + } XPath; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define xmldsigSignatureMethodType_Algorithm_CHARACTERS_SIZE 65 + EXTRA_CHAR +#define xmldsigSignatureMethodType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct xmldsigSignatureMethodType { + /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[xmldsigSignatureMethodType_Algorithm_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Algorithm ; + /* element: "http://www.w3.org/2000/09/xmldsig#":HMACOutputLength, http://www.w3.org/2000/09/xmldsig#,HMACOutputLengthType */ + int64_t HMACOutputLength ; + unsigned int HMACOutputLength_isUsed:1; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[xmldsigSignatureMethodType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define xmldsigDigestMethodType_Algorithm_CHARACTERS_SIZE 65 + EXTRA_CHAR +#define xmldsigDigestMethodType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct xmldsigDigestMethodType { + /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[xmldsigDigestMethodType_Algorithm_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Algorithm ; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[xmldsigDigestMethodType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +#define xmldsigSignatureValueType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigSignatureValueType_CONTENT_BYTES_SIZE 350 +struct xmldsigSignatureValueType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[xmldsigSignatureValueType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* simple content: http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + uint8_t bytes[xmldsigSignatureValueType_CONTENT_BYTES_SIZE]; + uint16_t bytesLen; + } CONTENT ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */ +#define xmldsigX509IssuerSerialType_X509IssuerName_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct xmldsigX509IssuerSerialType { + /* element: "http://www.w3.org/2000/09/xmldsig#":X509IssuerName, http://www.w3.org/2001/XMLSchema,string */ + struct { + exi_string_character_t characters[xmldsigX509IssuerSerialType_X509IssuerName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } X509IssuerName ; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509SerialNumber, http://www.w3.org/2001/XMLSchema,integer */ + int64_t X509SerialNumber ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define xmldsigSignaturePropertyType_Target_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigSignaturePropertyType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigSignaturePropertyType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct xmldsigSignaturePropertyType { + /* attribute: Target {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[xmldsigSignaturePropertyType_Target_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Target ; + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[xmldsigSignaturePropertyType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[xmldsigSignaturePropertyType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */ +#define xmldsigRSAKeyValueType_Modulus_BYTES_SIZE 350 +#define xmldsigRSAKeyValueType_Exponent_BYTES_SIZE 350 +struct xmldsigRSAKeyValueType { + /* element: "http://www.w3.org/2000/09/xmldsig#":Modulus, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[xmldsigRSAKeyValueType_Modulus_BYTES_SIZE]; + uint16_t bytesLen; + } Modulus ; + /* element: "http://www.w3.org/2000/09/xmldsig#":Exponent, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[xmldsigRSAKeyValueType_Exponent_BYTES_SIZE]; + uint16_t bytesLen; + } Exponent ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */ +#define xmldsigPGPDataType_PGPKeyID_BYTES_SIZE 350 +#define xmldsigPGPDataType_PGPKeyPacket_BYTES_SIZE 350 +#define xmldsigPGPDataType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct xmldsigPGPDataType { + /* element: "http://www.w3.org/2000/09/xmldsig#":PGPKeyID, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + uint8_t bytes[xmldsigPGPDataType_PGPKeyID_BYTES_SIZE]; + uint16_t bytesLen; + } PGPKeyID ; + unsigned int PGPKeyID_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + uint8_t bytes[xmldsigPGPDataType_PGPKeyPacket_BYTES_SIZE]; + uint16_t bytesLen; + } PGPKeyPacket ; + unsigned int PGPKeyPacket_isUsed:1; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[xmldsigPGPDataType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define xmldsigTransformsType_Transform_ARRAY_SIZE 1 +struct xmldsigTransformsType { + /* element: "http://www.w3.org/2000/09/xmldsig#":Transform, Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct xmldsigTransformType array[xmldsigTransformsType_Transform_ARRAY_SIZE]; + uint16_t arrayLen; + } Transform; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define xmldsigX509DataType_X509IssuerSerial_ARRAY_SIZE 1 +#define xmldsigX509DataType_X509SKI_BYTES_SIZE 350 +#define xmldsigX509DataType_X509SKI_ARRAY_SIZE 1 +#define xmldsigX509DataType_X509SubjectName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigX509DataType_X509SubjectName_ARRAY_SIZE 1 +#define xmldsigX509DataType_X509Certificate_BYTES_SIZE 350 +#define xmldsigX509DataType_X509Certificate_ARRAY_SIZE 1 +#define xmldsigX509DataType_X509CRL_BYTES_SIZE 350 +#define xmldsigX509DataType_X509CRL_ARRAY_SIZE 1 +#define xmldsigX509DataType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct xmldsigX509DataType { + /* element: "http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial, Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */ + struct { + struct xmldsigX509IssuerSerialType array[xmldsigX509DataType_X509IssuerSerial_ARRAY_SIZE]; + uint16_t arrayLen; + } X509IssuerSerial; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509SKI, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + struct { + uint8_t bytes[xmldsigX509DataType_X509SKI_BYTES_SIZE]; + uint16_t bytesLen; + } array[xmldsigX509DataType_X509SKI_ARRAY_SIZE]; + uint16_t arrayLen; + } X509SKI; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509SubjectName, http://www.w3.org/2001/XMLSchema,string */ + struct { + struct { + exi_string_character_t characters[xmldsigX509DataType_X509SubjectName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } array[xmldsigX509DataType_X509SubjectName_ARRAY_SIZE]; + uint16_t arrayLen; + } X509SubjectName; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509Certificate, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + struct { + uint8_t bytes[xmldsigX509DataType_X509Certificate_BYTES_SIZE]; + uint16_t bytesLen; + } array[xmldsigX509DataType_X509Certificate_ARRAY_SIZE]; + uint16_t arrayLen; + } X509Certificate; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509CRL, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + struct { + uint8_t bytes[xmldsigX509DataType_X509CRL_BYTES_SIZE]; + uint16_t bytesLen; + } array[xmldsigX509DataType_X509CRL_ARRAY_SIZE]; + uint16_t arrayLen; + } X509CRL; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[xmldsigX509DataType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */ +#define xmldsigDSAKeyValueType_P_BYTES_SIZE 350 +#define xmldsigDSAKeyValueType_Q_BYTES_SIZE 350 +#define xmldsigDSAKeyValueType_G_BYTES_SIZE 350 +#define xmldsigDSAKeyValueType_Y_BYTES_SIZE 350 +#define xmldsigDSAKeyValueType_J_BYTES_SIZE 350 +#define xmldsigDSAKeyValueType_Seed_BYTES_SIZE 350 +#define xmldsigDSAKeyValueType_PgenCounter_BYTES_SIZE 350 +struct xmldsigDSAKeyValueType { + /* element: "http://www.w3.org/2000/09/xmldsig#":P, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[xmldsigDSAKeyValueType_P_BYTES_SIZE]; + uint16_t bytesLen; + } P ; + unsigned int P_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Q, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[xmldsigDSAKeyValueType_Q_BYTES_SIZE]; + uint16_t bytesLen; + } Q ; + unsigned int Q_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":G, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[xmldsigDSAKeyValueType_G_BYTES_SIZE]; + uint16_t bytesLen; + } G ; + unsigned int G_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Y, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[xmldsigDSAKeyValueType_Y_BYTES_SIZE]; + uint16_t bytesLen; + } Y ; + /* element: "http://www.w3.org/2000/09/xmldsig#":J, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[xmldsigDSAKeyValueType_J_BYTES_SIZE]; + uint16_t bytesLen; + } J ; + unsigned int J_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Seed, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[xmldsigDSAKeyValueType_Seed_BYTES_SIZE]; + uint16_t bytesLen; + } Seed ; + unsigned int Seed_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":PgenCounter, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */ + struct { + uint8_t bytes[xmldsigDSAKeyValueType_PgenCounter_BYTES_SIZE]; + uint16_t bytesLen; + } PgenCounter ; + unsigned int PgenCounter_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ +#define xmldsigReferenceType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigReferenceType_URI_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigReferenceType_Type_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigReferenceType_DigestValue_BYTES_SIZE 350 +struct xmldsigReferenceType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[xmldsigReferenceType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* attribute: URI {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[xmldsigReferenceType_URI_CHARACTERS_SIZE]; + uint16_t charactersLen; + } URI ; + unsigned int URI_isUsed:1; + /* attribute: Type {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[xmldsigReferenceType_Type_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Type ; + unsigned int Type_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Transforms, Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct xmldsigTransformsType Transforms ; + unsigned int Transforms_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":DigestMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct xmldsigDigestMethodType DigestMethod ; + /* element: "http://www.w3.org/2000/09/xmldsig#":DigestValue, http://www.w3.org/2000/09/xmldsig#,DigestValueType */ + struct { + uint8_t bytes[xmldsigReferenceType_DigestValue_BYTES_SIZE]; + uint16_t bytesLen; + } DigestValue ; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define xmldsigSPKIDataType_SPKISexp_BYTES_SIZE 350 +#define xmldsigSPKIDataType_SPKISexp_ARRAY_SIZE 1 +#define xmldsigSPKIDataType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct xmldsigSPKIDataType { + /* element: "http://www.w3.org/2000/09/xmldsig#":SPKISexp, http://www.w3.org/2001/XMLSchema,base64Binary */ + struct { + struct { + uint8_t bytes[xmldsigSPKIDataType_SPKISexp_BYTES_SIZE]; + uint16_t bytesLen; + } array[xmldsigSPKIDataType_SPKISexp_ARRAY_SIZE]; + uint16_t arrayLen; + } SPKISexp; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[xmldsigSPKIDataType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ManifestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define xmldsigManifestType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigManifestType_Reference_ARRAY_SIZE 1 +struct xmldsigManifestType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[xmldsigManifestType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Reference, Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ + struct { + struct xmldsigReferenceType array[xmldsigManifestType_Reference_ARRAY_SIZE]; + uint16_t arrayLen; + } Reference; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */ +#define xmldsigRetrievalMethodType_URI_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigRetrievalMethodType_Type_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct xmldsigRetrievalMethodType { + /* attribute: URI {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[xmldsigRetrievalMethodType_URI_CHARACTERS_SIZE]; + uint16_t charactersLen; + } URI ; + unsigned int URI_isUsed:1; + /* attribute: Type {http://www.w3.org/2001/XMLSchema,anyURI} */ + struct { + exi_string_character_t characters[xmldsigRetrievalMethodType_Type_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Type ; + unsigned int Type_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Transforms, Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct xmldsigTransformsType Transforms ; + unsigned int Transforms_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define xmldsigSignedInfoType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigSignedInfoType_Reference_ARRAY_SIZE 1 +struct xmldsigSignedInfoType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[xmldsigSignedInfoType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct xmldsigCanonicalizationMethodType CanonicalizationMethod ; + /* element: "http://www.w3.org/2000/09/xmldsig#":SignatureMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct xmldsigSignatureMethodType SignatureMethod ; + /* element: "http://www.w3.org/2000/09/xmldsig#":Reference, Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ + struct { + struct xmldsigReferenceType array[xmldsigSignedInfoType_Reference_ARRAY_SIZE]; + uint16_t arrayLen; + } Reference; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertiesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignatureProperty{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define xmldsigSignaturePropertiesType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigSignaturePropertiesType_SignatureProperty_ARRAY_SIZE 1 +struct xmldsigSignaturePropertiesType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[xmldsigSignaturePropertiesType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":SignatureProperty, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct xmldsigSignaturePropertyType array[xmldsigSignaturePropertiesType_SignatureProperty_ARRAY_SIZE]; + uint16_t arrayLen; + } SignatureProperty; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */ +#define xmldsigKeyValueType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct xmldsigKeyValueType { + /* element: "http://www.w3.org/2000/09/xmldsig#":DSAKeyValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */ + struct xmldsigDSAKeyValueType DSAKeyValue ; + unsigned int DSAKeyValue_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":RSAKeyValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */ + struct xmldsigRSAKeyValueType RSAKeyValue ; + unsigned int RSAKeyValue_isUsed:1; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[xmldsigKeyValueType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +#define xmldsigKeyInfoType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigKeyInfoType_KeyName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigKeyInfoType_KeyName_ARRAY_SIZE 1 +#define xmldsigKeyInfoType_KeyValue_ARRAY_SIZE 1 +#define xmldsigKeyInfoType_RetrievalMethod_ARRAY_SIZE 1 +#define xmldsigKeyInfoType_X509Data_ARRAY_SIZE 1 +#define xmldsigKeyInfoType_PGPData_ARRAY_SIZE 1 +#define xmldsigKeyInfoType_SPKIData_ARRAY_SIZE 1 +#define xmldsigKeyInfoType_MgmtData_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigKeyInfoType_MgmtData_ARRAY_SIZE 1 +#define xmldsigKeyInfoType_ANY_CHARACTERS_SIZE 50 + EXTRA_CHAR +struct xmldsigKeyInfoType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[xmldsigKeyInfoType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":KeyName, http://www.w3.org/2001/XMLSchema,string */ + struct { + struct { + exi_string_character_t characters[xmldsigKeyInfoType_KeyName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } array[xmldsigKeyInfoType_KeyName_ARRAY_SIZE]; + uint16_t arrayLen; + } KeyName; + /* element: "http://www.w3.org/2000/09/xmldsig#":KeyValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */ + struct { + struct xmldsigKeyValueType array[xmldsigKeyInfoType_KeyValue_ARRAY_SIZE]; + uint16_t arrayLen; + } KeyValue; + /* element: "http://www.w3.org/2000/09/xmldsig#":RetrievalMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */ + struct { + struct xmldsigRetrievalMethodType array[xmldsigKeyInfoType_RetrievalMethod_ARRAY_SIZE]; + uint16_t arrayLen; + } RetrievalMethod; + /* element: "http://www.w3.org/2000/09/xmldsig#":X509Data, Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct xmldsigX509DataType array[xmldsigKeyInfoType_X509Data_ARRAY_SIZE]; + uint16_t arrayLen; + } X509Data; + /* element: "http://www.w3.org/2000/09/xmldsig#":PGPData, Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */ + struct { + struct xmldsigPGPDataType array[xmldsigKeyInfoType_PGPData_ARRAY_SIZE]; + uint16_t arrayLen; + } PGPData; + /* element: "http://www.w3.org/2000/09/xmldsig#":SPKIData, Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct xmldsigSPKIDataType array[xmldsigKeyInfoType_SPKIData_ARRAY_SIZE]; + uint16_t arrayLen; + } SPKIData; + /* element: "http://www.w3.org/2000/09/xmldsig#":MgmtData, http://www.w3.org/2001/XMLSchema,string */ + struct { + struct { + exi_string_character_t characters[xmldsigKeyInfoType_MgmtData_CHARACTERS_SIZE]; + uint16_t charactersLen; + } array[xmldsigKeyInfoType_MgmtData_ARRAY_SIZE]; + uint16_t arrayLen; + } MgmtData; + /* element: WC[##other:"http://www.w3.org/2000/09/xmldsig#"] */ + struct { + exi_string_character_t characters[xmldsigKeyInfoType_ANY_CHARACTERS_SIZE]; + uint16_t charactersLen; + } ANY ; + unsigned int ANY_isUsed:1; +}; + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +#define xmldsigSignatureType_Id_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define xmldsigSignatureType_Object_ARRAY_SIZE 1 +struct xmldsigSignatureType { + /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */ + struct { + exi_string_character_t characters[xmldsigSignatureType_Id_CHARACTERS_SIZE]; + uint16_t charactersLen; + } Id ; + unsigned int Id_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":SignedInfo, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ + struct xmldsigSignedInfoType SignedInfo ; + /* element: "http://www.w3.org/2000/09/xmldsig#":SignatureValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ + struct xmldsigSignatureValueType SignatureValue ; + /* element: "http://www.w3.org/2000/09/xmldsig#":KeyInfo, Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct xmldsigKeyInfoType KeyInfo ; + unsigned int KeyInfo_isUsed:1; + /* element: "http://www.w3.org/2000/09/xmldsig#":Object, Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ + struct { + struct xmldsigObjectType array[xmldsigSignatureType_Object_ARRAY_SIZE]; + uint16_t arrayLen; + } Object; +}; + + + +#define EXIDocument_MgmtData_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define EXIDocument_KeyName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define EXIDocument_DigestValue_BYTES_SIZE 350 +#define EXIFragment_DigestValue_BYTES_SIZE 350 +#define EXIFragment_SPKISexp_BYTES_SIZE 350 +#define EXIFragment_KeyName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define EXIFragment_X509IssuerName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define EXIFragment_MgmtData_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define EXIFragment_PGPKeyID_BYTES_SIZE 350 +#define EXIFragment_PGPKeyPacket_BYTES_SIZE 350 +#define EXIFragment_Exponent_BYTES_SIZE 350 +#define EXIFragment_P_BYTES_SIZE 350 +#define EXIFragment_Q_BYTES_SIZE 350 +#define EXIFragment_Seed_BYTES_SIZE 350 +#define EXIFragment_X509SubjectName_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define EXIFragment_X509Certificate_BYTES_SIZE 350 +#define EXIFragment_G_BYTES_SIZE 350 +#define EXIFragment_J_BYTES_SIZE 350 +#define EXIFragment_X509SKI_BYTES_SIZE 350 +#define EXIFragment_XPath_CHARACTERS_SIZE 50 + EXTRA_CHAR +#define EXIFragment_Modulus_BYTES_SIZE 350 +#define EXIFragment_X509CRL_BYTES_SIZE 350 +#define EXIFragment_Y_BYTES_SIZE 350 +#define EXIFragment_PgenCounter_BYTES_SIZE 350 + + +/* Global elements of EXI Document */ +struct xmldsigEXIDocument { +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + union { +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + struct xmldsigSignaturePropertyType SignatureProperty ; + struct xmldsigDSAKeyValueType DSAKeyValue ; + struct xmldsigSignaturePropertiesType SignatureProperties ; + struct xmldsigKeyValueType KeyValue ; + struct xmldsigTransformsType Transforms ; + struct xmldsigDigestMethodType DigestMethod ; + struct xmldsigSignatureType Signature ; + struct xmldsigRetrievalMethodType RetrievalMethod ; + struct xmldsigManifestType Manifest ; + struct xmldsigReferenceType Reference ; + struct xmldsigCanonicalizationMethodType CanonicalizationMethod ; + struct xmldsigRSAKeyValueType RSAKeyValue ; + struct xmldsigTransformType Transform ; + struct xmldsigPGPDataType PGPData ; + struct { + exi_string_character_t characters[EXIDocument_MgmtData_CHARACTERS_SIZE]; + uint16_t charactersLen; + } MgmtData ; + struct xmldsigSignatureMethodType SignatureMethod ; + struct xmldsigKeyInfoType KeyInfo ; + struct xmldsigSPKIDataType SPKIData ; + struct xmldsigX509DataType X509Data ; + struct xmldsigSignatureValueType SignatureValue ; + struct { + exi_string_character_t characters[EXIDocument_KeyName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } KeyName ; + struct { + uint8_t bytes[EXIDocument_DigestValue_BYTES_SIZE]; + uint16_t bytesLen; + } DigestValue ; + struct xmldsigSignedInfoType SignedInfo ; + struct xmldsigObjectType Object ; +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + }; +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + unsigned int SignatureProperty_isUsed:1; + unsigned int DSAKeyValue_isUsed:1; + unsigned int SignatureProperties_isUsed:1; + unsigned int KeyValue_isUsed:1; + unsigned int Transforms_isUsed:1; + unsigned int DigestMethod_isUsed:1; + unsigned int Signature_isUsed:1; + unsigned int RetrievalMethod_isUsed:1; + unsigned int Manifest_isUsed:1; + unsigned int Reference_isUsed:1; + unsigned int CanonicalizationMethod_isUsed:1; + unsigned int RSAKeyValue_isUsed:1; + unsigned int Transform_isUsed:1; + unsigned int PGPData_isUsed:1; + unsigned int MgmtData_isUsed:1; + unsigned int SignatureMethod_isUsed:1; + unsigned int KeyInfo_isUsed:1; + unsigned int SPKIData_isUsed:1; + unsigned int X509Data_isUsed:1; + unsigned int SignatureValue_isUsed:1; + unsigned int KeyName_isUsed:1; + unsigned int DigestValue_isUsed:1; + unsigned int SignedInfo_isUsed:1; + unsigned int Object_isUsed:1; + + + int _warning_; +}; + + +#if DEPLOY_XMLDSIG_CODEC_FRAGMENT == SUPPORT_YES +/* Possible elements of EXI Fragment */ +struct xmldsigEXIFragment { +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + union { +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + struct { + uint8_t bytes[EXIFragment_DigestValue_BYTES_SIZE]; + uint16_t bytesLen; + } DigestValue ; + struct xmldsigX509DataType X509Data ; + struct xmldsigKeyValueType KeyValue ; + struct xmldsigDigestMethodType DigestMethod ; + struct { + uint8_t bytes[EXIFragment_SPKISexp_BYTES_SIZE]; + uint16_t bytesLen; + } SPKISexp ; + struct xmldsigTransformsType Transforms ; + struct { + exi_string_character_t characters[EXIFragment_KeyName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } KeyName ; + struct { + exi_string_character_t characters[EXIFragment_X509IssuerName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } X509IssuerName ; + struct { + exi_string_character_t characters[EXIFragment_MgmtData_CHARACTERS_SIZE]; + uint16_t charactersLen; + } MgmtData ; + struct xmldsigReferenceType Reference ; + struct xmldsigSignaturePropertiesType SignatureProperties ; + struct { + uint8_t bytes[EXIFragment_PGPKeyID_BYTES_SIZE]; + uint16_t bytesLen; + } PGPKeyID ; + struct xmldsigPGPDataType PGPData ; + struct xmldsigDSAKeyValueType DSAKeyValue ; + struct xmldsigSignatureValueType SignatureValue ; + struct xmldsigKeyInfoType KeyInfo ; + struct xmldsigSignaturePropertyType SignatureProperty ; + struct { + uint8_t bytes[EXIFragment_PGPKeyPacket_BYTES_SIZE]; + uint16_t bytesLen; + } PGPKeyPacket ; + int64_t HMACOutputLength ; + struct { + uint8_t bytes[EXIFragment_Exponent_BYTES_SIZE]; + uint16_t bytesLen; + } Exponent ; + struct xmldsigManifestType Manifest ; + struct { + uint8_t bytes[EXIFragment_P_BYTES_SIZE]; + uint16_t bytesLen; + } P ; + struct xmldsigCanonicalizationMethodType CanonicalizationMethod ; + struct { + uint8_t bytes[EXIFragment_Q_BYTES_SIZE]; + uint16_t bytesLen; + } Q ; + struct { + uint8_t bytes[EXIFragment_Seed_BYTES_SIZE]; + uint16_t bytesLen; + } Seed ; + struct { + exi_string_character_t characters[EXIFragment_X509SubjectName_CHARACTERS_SIZE]; + uint16_t charactersLen; + } X509SubjectName ; + struct { + uint8_t bytes[EXIFragment_X509Certificate_BYTES_SIZE]; + uint16_t bytesLen; + } X509Certificate ; + struct xmldsigRSAKeyValueType RSAKeyValue ; + struct xmldsigX509IssuerSerialType X509IssuerSerial ; + struct xmldsigSPKIDataType SPKIData ; + struct { + uint8_t bytes[EXIFragment_G_BYTES_SIZE]; + uint16_t bytesLen; + } G ; + struct { + uint8_t bytes[EXIFragment_J_BYTES_SIZE]; + uint16_t bytesLen; + } J ; + struct xmldsigSignedInfoType SignedInfo ; + struct { + uint8_t bytes[EXIFragment_X509SKI_BYTES_SIZE]; + uint16_t bytesLen; + } X509SKI ; + struct xmldsigTransformType Transform ; + struct { + exi_string_character_t characters[EXIFragment_XPath_CHARACTERS_SIZE]; + uint16_t charactersLen; + } XPath ; + struct xmldsigObjectType Object ; + int64_t X509SerialNumber ; + struct xmldsigRetrievalMethodType RetrievalMethod ; + struct { + uint8_t bytes[EXIFragment_Modulus_BYTES_SIZE]; + uint16_t bytesLen; + } Modulus ; + struct { + uint8_t bytes[EXIFragment_X509CRL_BYTES_SIZE]; + uint16_t bytesLen; + } X509CRL ; + struct xmldsigSignatureType Signature ; + struct { + uint8_t bytes[EXIFragment_Y_BYTES_SIZE]; + uint16_t bytesLen; + } Y ; + struct xmldsigSignatureMethodType SignatureMethod ; + struct { + uint8_t bytes[EXIFragment_PgenCounter_BYTES_SIZE]; + uint16_t bytesLen; + } PgenCounter ; +#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES + }; +#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ + unsigned int DigestValue_isUsed:1; + unsigned int X509Data_isUsed:1; + unsigned int KeyValue_isUsed:1; + unsigned int DigestMethod_isUsed:1; + unsigned int SPKISexp_isUsed:1; + unsigned int Transforms_isUsed:1; + unsigned int KeyName_isUsed:1; + unsigned int X509IssuerName_isUsed:1; + unsigned int MgmtData_isUsed:1; + unsigned int Reference_isUsed:1; + unsigned int SignatureProperties_isUsed:1; + unsigned int PGPKeyID_isUsed:1; + unsigned int PGPData_isUsed:1; + unsigned int DSAKeyValue_isUsed:1; + unsigned int SignatureValue_isUsed:1; + unsigned int KeyInfo_isUsed:1; + unsigned int SignatureProperty_isUsed:1; + unsigned int PGPKeyPacket_isUsed:1; + unsigned int HMACOutputLength_isUsed:1; + unsigned int Exponent_isUsed:1; + unsigned int Manifest_isUsed:1; + unsigned int P_isUsed:1; + unsigned int CanonicalizationMethod_isUsed:1; + unsigned int Q_isUsed:1; + unsigned int Seed_isUsed:1; + unsigned int X509SubjectName_isUsed:1; + unsigned int X509Certificate_isUsed:1; + unsigned int RSAKeyValue_isUsed:1; + unsigned int X509IssuerSerial_isUsed:1; + unsigned int SPKIData_isUsed:1; + unsigned int G_isUsed:1; + unsigned int J_isUsed:1; + unsigned int SignedInfo_isUsed:1; + unsigned int X509SKI_isUsed:1; + unsigned int Transform_isUsed:1; + unsigned int XPath_isUsed:1; + unsigned int Object_isUsed:1; + unsigned int X509SerialNumber_isUsed:1; + unsigned int RetrievalMethod_isUsed:1; + unsigned int Modulus_isUsed:1; + unsigned int X509CRL_isUsed:1; + unsigned int Signature_isUsed:1; + unsigned int Y_isUsed:1; + unsigned int SignatureMethod_isUsed:1; + unsigned int PgenCounter_isUsed:1; + + + int _warning_; +}; +#endif /* DEPLOY_XMLDSIG_CODEC_FRAGMENT */ + + +/* Initialization methods for structs */ + +void init_xmldsigEXIDocument(struct xmldsigEXIDocument* exiDoc); +#if DEPLOY_XMLDSIG_CODEC_FRAGMENT == SUPPORT_YES +void init_xmldsigEXIFragment(struct xmldsigEXIFragment* exiFrag); +#endif /* DEPLOY_XMLDSIG_CODEC_FRAGMENT */ +void init_xmldsigCanonicalizationMethodType(struct xmldsigCanonicalizationMethodType* xmldsigCanonicalizationMethodType); +void init_xmldsigManifestType(struct xmldsigManifestType* xmldsigManifestType); +void init_xmldsigObjectType(struct xmldsigObjectType* xmldsigObjectType); +void init_xmldsigTransformType(struct xmldsigTransformType* xmldsigTransformType); +void init_xmldsigSignatureMethodType(struct xmldsigSignatureMethodType* xmldsigSignatureMethodType); +void init_xmldsigDigestMethodType(struct xmldsigDigestMethodType* xmldsigDigestMethodType); +void init_xmldsigRetrievalMethodType(struct xmldsigRetrievalMethodType* xmldsigRetrievalMethodType); +void init_xmldsigSignatureValueType(struct xmldsigSignatureValueType* xmldsigSignatureValueType); +void init_xmldsigX509IssuerSerialType(struct xmldsigX509IssuerSerialType* xmldsigX509IssuerSerialType); +void init_xmldsigSignedInfoType(struct xmldsigSignedInfoType* xmldsigSignedInfoType); +void init_xmldsigSignaturePropertiesType(struct xmldsigSignaturePropertiesType* xmldsigSignaturePropertiesType); +void init_xmldsigSignaturePropertyType(struct xmldsigSignaturePropertyType* xmldsigSignaturePropertyType); +void init_xmldsigKeyValueType(struct xmldsigKeyValueType* xmldsigKeyValueType); +void init_xmldsigRSAKeyValueType(struct xmldsigRSAKeyValueType* xmldsigRSAKeyValueType); +void init_xmldsigPGPDataType(struct xmldsigPGPDataType* xmldsigPGPDataType); +void init_xmldsigTransformsType(struct xmldsigTransformsType* xmldsigTransformsType); +void init_xmldsigX509DataType(struct xmldsigX509DataType* xmldsigX509DataType); +void init_xmldsigSignatureType(struct xmldsigSignatureType* xmldsigSignatureType); +void init_xmldsigDSAKeyValueType(struct xmldsigDSAKeyValueType* xmldsigDSAKeyValueType); +void init_xmldsigReferenceType(struct xmldsigReferenceType* xmldsigReferenceType); +void init_xmldsigSPKIDataType(struct xmldsigSPKIDataType* xmldsigSPKIDataType); +void init_xmldsigKeyInfoType(struct xmldsigKeyInfoType* xmldsigKeyInfoType); + + +#endif /* DEPLOY_XMLDSIG_CODEC */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/xmldsig/xmldsigEXIDatatypesDecoder.c b/csharp/vc2022/src/xmldsig/xmldsigEXIDatatypesDecoder.c new file mode 100644 index 0000000..4e4636d --- /dev/null +++ b/csharp/vc2022/src/xmldsig/xmldsigEXIDatatypesDecoder.c @@ -0,0 +1,4919 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: xmldsig-core-schema.xsd

+ * + * + ********************************************************************/ + + + + +#include "xmldsigEXIDatatypesDecoder.h" + +#include "DecoderChannel.h" +#include "EXIHeaderDecoder.h" + +#include "xmldsigEXIDatatypes.h" +#include "ErrorCodes.h" + +#ifndef EXI_xmldsig_DATATYPES_DECODER_C +#define EXI_xmldsig_DATATYPES_DECODER_C + +#if DEPLOY_XMLDSIG_CODEC == SUPPORT_YES + +/** event-code */ +static uint32_t eventCode; +static int errn; +static uint32_t uint32; + +/* Forward Declarations */ +static int decode_xmldsigCanonicalizationMethodType(bitstream_t* stream, struct xmldsigCanonicalizationMethodType* xmldsigCanonicalizationMethodType); +static int decode_xmldsigManifestType(bitstream_t* stream, struct xmldsigManifestType* xmldsigManifestType); +static int decode_xmldsigObjectType(bitstream_t* stream, struct xmldsigObjectType* xmldsigObjectType); +static int decode_xmldsigTransformType(bitstream_t* stream, struct xmldsigTransformType* xmldsigTransformType); +static int decode_xmldsigSignatureMethodType(bitstream_t* stream, struct xmldsigSignatureMethodType* xmldsigSignatureMethodType); +static int decode_xmldsigDigestMethodType(bitstream_t* stream, struct xmldsigDigestMethodType* xmldsigDigestMethodType); +static int decode_xmldsigRetrievalMethodType(bitstream_t* stream, struct xmldsigRetrievalMethodType* xmldsigRetrievalMethodType); +static int decode_xmldsigSignatureValueType(bitstream_t* stream, struct xmldsigSignatureValueType* xmldsigSignatureValueType); +static int decode_xmldsigX509IssuerSerialType(bitstream_t* stream, struct xmldsigX509IssuerSerialType* xmldsigX509IssuerSerialType); +static int decode_xmldsigSignedInfoType(bitstream_t* stream, struct xmldsigSignedInfoType* xmldsigSignedInfoType); +static int decode_xmldsigSignaturePropertiesType(bitstream_t* stream, struct xmldsigSignaturePropertiesType* xmldsigSignaturePropertiesType); +static int decode_xmldsigSignaturePropertyType(bitstream_t* stream, struct xmldsigSignaturePropertyType* xmldsigSignaturePropertyType); +static int decode_xmldsigKeyValueType(bitstream_t* stream, struct xmldsigKeyValueType* xmldsigKeyValueType); +static int decode_xmldsigRSAKeyValueType(bitstream_t* stream, struct xmldsigRSAKeyValueType* xmldsigRSAKeyValueType); +static int decode_xmldsigPGPDataType(bitstream_t* stream, struct xmldsigPGPDataType* xmldsigPGPDataType); +static int decode_xmldsigTransformsType(bitstream_t* stream, struct xmldsigTransformsType* xmldsigTransformsType); +static int decode_xmldsigX509DataType(bitstream_t* stream, struct xmldsigX509DataType* xmldsigX509DataType); +static int decode_xmldsigSignatureType(bitstream_t* stream, struct xmldsigSignatureType* xmldsigSignatureType); +static int decode_xmldsigDSAKeyValueType(bitstream_t* stream, struct xmldsigDSAKeyValueType* xmldsigDSAKeyValueType); +static int decode_xmldsigReferenceType(bitstream_t* stream, struct xmldsigReferenceType* xmldsigReferenceType); +static int decode_xmldsigSPKIDataType(bitstream_t* stream, struct xmldsigSPKIDataType* xmldsigSPKIDataType); +static int decode_xmldsigKeyInfoType(bitstream_t* stream, struct xmldsigKeyInfoType* xmldsigKeyInfoType); + +/* Deviant data decoding (skip functions) */ + + + /* Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_xmldsigCanonicalizationMethodType(bitstream_t* stream, struct xmldsigCanonicalizationMethodType* xmldsigCanonicalizationMethodType) { + int grammarID = 0; + int done = 0; + + init_xmldsigCanonicalizationMethodType(xmldsigCanonicalizationMethodType); + + while(!done) { + switch(grammarID) { + case 0: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigCanonicalizationMethodType->Algorithm.charactersLen); + if (errn == 0) { + if (xmldsigCanonicalizationMethodType->Algorithm.charactersLen >= 2) { + xmldsigCanonicalizationMethodType->Algorithm.charactersLen = (uint16_t)(xmldsigCanonicalizationMethodType->Algorithm.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigCanonicalizationMethodType->Algorithm.charactersLen, xmldsigCanonicalizationMethodType->Algorithm.characters, xmldsigCanonicalizationMethodType_Algorithm_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 1; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 2; + break; + case 1: + done = 1; + grammarID = 3; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &xmldsigCanonicalizationMethodType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigCanonicalizationMethodType->ANY.charactersLen >= 2) { + xmldsigCanonicalizationMethodType->ANY.charactersLen = (uint16_t)(xmldsigCanonicalizationMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigCanonicalizationMethodType->ANY.charactersLen, xmldsigCanonicalizationMethodType->ANY.characters, xmldsigCanonicalizationMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigCanonicalizationMethodType->ANY_isUsed = 1u; + grammarID = 2; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 2; + break; + case 1: + done = 1; + grammarID = 3; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &xmldsigCanonicalizationMethodType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigCanonicalizationMethodType->ANY.charactersLen >= 2) { + xmldsigCanonicalizationMethodType->ANY.charactersLen = (uint16_t)(xmldsigCanonicalizationMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigCanonicalizationMethodType->ANY.charactersLen, xmldsigCanonicalizationMethodType->ANY.characters, xmldsigCanonicalizationMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigCanonicalizationMethodType->ANY_isUsed = 1u; + grammarID = 2; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ManifestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_xmldsigManifestType(bitstream_t* stream, struct xmldsigManifestType* xmldsigManifestType) { + int grammarID = 4; + int done = 0; + + init_xmldsigManifestType(xmldsigManifestType); + + while(!done) { + switch(grammarID) { + case 4: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigManifestType->Id.charactersLen); + if (errn == 0) { + if (xmldsigManifestType->Id.charactersLen >= 2) { + xmldsigManifestType->Id.charactersLen = (uint16_t)(xmldsigManifestType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigManifestType->Id.charactersLen, xmldsigManifestType->Id.characters, xmldsigManifestType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigManifestType->Id_isUsed = 1u; + grammarID = 5; + break; + case 1: + if (xmldsigManifestType->Reference.arrayLen < xmldsigManifestType_Reference_ARRAY_SIZE) { + errn = decode_xmldsigReferenceType(stream, &xmldsigManifestType->Reference.array[xmldsigManifestType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 5: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigManifestType->Reference.arrayLen < xmldsigManifestType_Reference_ARRAY_SIZE) { + errn = decode_xmldsigReferenceType(stream, &xmldsigManifestType->Reference.array[xmldsigManifestType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 6: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigManifestType->Reference.arrayLen < xmldsigManifestType_Reference_ARRAY_SIZE) { + errn = decode_xmldsigReferenceType(stream, &xmldsigManifestType->Reference.array[xmldsigManifestType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 6; + break; + case 1: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_xmldsigObjectType(bitstream_t* stream, struct xmldsigObjectType* xmldsigObjectType) { + int grammarID = 7; + int done = 0; + + init_xmldsigObjectType(xmldsigObjectType); + + while(!done) { + switch(grammarID) { + case 7: + /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigObjectType->Encoding.charactersLen); + if (errn == 0) { + if (xmldsigObjectType->Encoding.charactersLen >= 2) { + xmldsigObjectType->Encoding.charactersLen = (uint16_t)(xmldsigObjectType->Encoding.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigObjectType->Encoding.charactersLen, xmldsigObjectType->Encoding.characters, xmldsigObjectType_Encoding_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigObjectType->Encoding_isUsed = 1u; + grammarID = 8; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &xmldsigObjectType->Id.charactersLen); + if (errn == 0) { + if (xmldsigObjectType->Id.charactersLen >= 2) { + xmldsigObjectType->Id.charactersLen = (uint16_t)(xmldsigObjectType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigObjectType->Id.charactersLen, xmldsigObjectType->Id.characters, xmldsigObjectType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigObjectType->Id_isUsed = 1u; + grammarID = 9; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &xmldsigObjectType->MimeType.charactersLen); + if (errn == 0) { + if (xmldsigObjectType->MimeType.charactersLen >= 2) { + xmldsigObjectType->MimeType.charactersLen = (uint16_t)(xmldsigObjectType->MimeType.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigObjectType->MimeType.charactersLen, xmldsigObjectType->MimeType.characters, xmldsigObjectType_MimeType_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigObjectType->MimeType_isUsed = 1u; + grammarID = 1; + break; + case 3: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 2; + break; + case 4: + done = 1; + grammarID = 3; + break; + case 5: + errn = decodeUnsignedInteger16(stream, &xmldsigObjectType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigObjectType->ANY.charactersLen >= 2) { + xmldsigObjectType->ANY.charactersLen = (uint16_t)(xmldsigObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigObjectType->ANY.charactersLen, xmldsigObjectType->ANY.characters, xmldsigObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigObjectType->ANY_isUsed = 1u; + grammarID = 2; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 8: + /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigObjectType->Id.charactersLen); + if (errn == 0) { + if (xmldsigObjectType->Id.charactersLen >= 2) { + xmldsigObjectType->Id.charactersLen = (uint16_t)(xmldsigObjectType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigObjectType->Id.charactersLen, xmldsigObjectType->Id.characters, xmldsigObjectType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigObjectType->Id_isUsed = 1u; + grammarID = 9; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &xmldsigObjectType->MimeType.charactersLen); + if (errn == 0) { + if (xmldsigObjectType->MimeType.charactersLen >= 2) { + xmldsigObjectType->MimeType.charactersLen = (uint16_t)(xmldsigObjectType->MimeType.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigObjectType->MimeType.charactersLen, xmldsigObjectType->MimeType.characters, xmldsigObjectType_MimeType_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigObjectType->MimeType_isUsed = 1u; + grammarID = 1; + break; + case 2: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 2; + break; + case 3: + done = 1; + grammarID = 3; + break; + case 4: + errn = decodeUnsignedInteger16(stream, &xmldsigObjectType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigObjectType->ANY.charactersLen >= 2) { + xmldsigObjectType->ANY.charactersLen = (uint16_t)(xmldsigObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigObjectType->ANY.charactersLen, xmldsigObjectType->ANY.characters, xmldsigObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigObjectType->ANY_isUsed = 1u; + grammarID = 2; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 9: + /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigObjectType->MimeType.charactersLen); + if (errn == 0) { + if (xmldsigObjectType->MimeType.charactersLen >= 2) { + xmldsigObjectType->MimeType.charactersLen = (uint16_t)(xmldsigObjectType->MimeType.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigObjectType->MimeType.charactersLen, xmldsigObjectType->MimeType.characters, xmldsigObjectType_MimeType_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigObjectType->MimeType_isUsed = 1u; + grammarID = 1; + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 2; + break; + case 2: + done = 1; + grammarID = 3; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &xmldsigObjectType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigObjectType->ANY.charactersLen >= 2) { + xmldsigObjectType->ANY.charactersLen = (uint16_t)(xmldsigObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigObjectType->ANY.charactersLen, xmldsigObjectType->ANY.characters, xmldsigObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigObjectType->ANY_isUsed = 1u; + grammarID = 2; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 2; + break; + case 1: + done = 1; + grammarID = 3; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &xmldsigObjectType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigObjectType->ANY.charactersLen >= 2) { + xmldsigObjectType->ANY.charactersLen = (uint16_t)(xmldsigObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigObjectType->ANY.charactersLen, xmldsigObjectType->ANY.characters, xmldsigObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigObjectType->ANY_isUsed = 1u; + grammarID = 2; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 2; + break; + case 1: + done = 1; + grammarID = 3; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &xmldsigObjectType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigObjectType->ANY.charactersLen >= 2) { + xmldsigObjectType->ANY.charactersLen = (uint16_t)(xmldsigObjectType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigObjectType->ANY.charactersLen, xmldsigObjectType->ANY.characters, xmldsigObjectType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigObjectType->ANY_isUsed = 1u; + grammarID = 2; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_xmldsigTransformType(bitstream_t* stream, struct xmldsigTransformType* xmldsigTransformType) { + int grammarID = 10; + int done = 0; + + init_xmldsigTransformType(xmldsigTransformType); + + while(!done) { + switch(grammarID) { + case 10: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigTransformType->Algorithm.charactersLen); + if (errn == 0) { + if (xmldsigTransformType->Algorithm.charactersLen >= 2) { + xmldsigTransformType->Algorithm.charactersLen = (uint16_t)(xmldsigTransformType->Algorithm.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigTransformType->Algorithm.charactersLen, xmldsigTransformType->Algorithm.characters, xmldsigTransformType_Algorithm_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 11; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 11: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigTransformType->XPath.arrayLen < xmldsigTransformType_XPath_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigTransformType->XPath.array[xmldsigTransformType->XPath.arrayLen].charactersLen); + if (errn == 0) { + if (xmldsigTransformType->XPath.array[xmldsigTransformType->XPath.arrayLen].charactersLen >= 2) { + xmldsigTransformType->XPath.array[xmldsigTransformType->XPath.arrayLen].charactersLen = (uint16_t)(xmldsigTransformType->XPath.array[xmldsigTransformType->XPath.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigTransformType->XPath.array[xmldsigTransformType->XPath.arrayLen].charactersLen, xmldsigTransformType->XPath.array[xmldsigTransformType->XPath.arrayLen].characters, xmldsigTransformType_XPath_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigTransformType->XPath.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 12; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 12; + break; + case 2: + done = 1; + grammarID = 3; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &xmldsigTransformType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigTransformType->ANY.charactersLen >= 2) { + xmldsigTransformType->ANY.charactersLen = (uint16_t)(xmldsigTransformType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigTransformType->ANY.charactersLen, xmldsigTransformType->ANY.characters, xmldsigTransformType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigTransformType->ANY_isUsed = 1u; + grammarID = 12; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 12: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigTransformType->XPath.arrayLen < xmldsigTransformType_XPath_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigTransformType->XPath.array[xmldsigTransformType->XPath.arrayLen].charactersLen); + if (errn == 0) { + if (xmldsigTransformType->XPath.array[xmldsigTransformType->XPath.arrayLen].charactersLen >= 2) { + xmldsigTransformType->XPath.array[xmldsigTransformType->XPath.arrayLen].charactersLen = (uint16_t)(xmldsigTransformType->XPath.array[xmldsigTransformType->XPath.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigTransformType->XPath.array[xmldsigTransformType->XPath.arrayLen].charactersLen, xmldsigTransformType->XPath.array[xmldsigTransformType->XPath.arrayLen].characters, xmldsigTransformType_XPath_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigTransformType->XPath.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 12; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 12; + break; + case 2: + done = 1; + grammarID = 3; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &xmldsigTransformType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigTransformType->ANY.charactersLen >= 2) { + xmldsigTransformType->ANY.charactersLen = (uint16_t)(xmldsigTransformType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigTransformType->ANY.charactersLen, xmldsigTransformType->ANY.characters, xmldsigTransformType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigTransformType->ANY_isUsed = 1u; + grammarID = 12; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_xmldsigSignatureMethodType(bitstream_t* stream, struct xmldsigSignatureMethodType* xmldsigSignatureMethodType) { + int grammarID = 13; + int done = 0; + + init_xmldsigSignatureMethodType(xmldsigSignatureMethodType); + + while(!done) { + switch(grammarID) { + case 13: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigSignatureMethodType->Algorithm.charactersLen); + if (errn == 0) { + if (xmldsigSignatureMethodType->Algorithm.charactersLen >= 2) { + xmldsigSignatureMethodType->Algorithm.charactersLen = (uint16_t)(xmldsigSignatureMethodType->Algorithm.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigSignatureMethodType->Algorithm.charactersLen, xmldsigSignatureMethodType->Algorithm.characters, xmldsigSignatureMethodType_Algorithm_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 14; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 14: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &xmldsigSignatureMethodType->HMACOutputLength); + xmldsigSignatureMethodType->HMACOutputLength_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 2; + break; + case 2: + done = 1; + grammarID = 3; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &xmldsigSignatureMethodType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigSignatureMethodType->ANY.charactersLen >= 2) { + xmldsigSignatureMethodType->ANY.charactersLen = (uint16_t)(xmldsigSignatureMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigSignatureMethodType->ANY.charactersLen, xmldsigSignatureMethodType->ANY.characters, xmldsigSignatureMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigSignatureMethodType->ANY_isUsed = 1u; + grammarID = 15; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 2; + break; + case 1: + done = 1; + grammarID = 3; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &xmldsigSignatureMethodType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigSignatureMethodType->ANY.charactersLen >= 2) { + xmldsigSignatureMethodType->ANY.charactersLen = (uint16_t)(xmldsigSignatureMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigSignatureMethodType->ANY.charactersLen, xmldsigSignatureMethodType->ANY.characters, xmldsigSignatureMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigSignatureMethodType->ANY_isUsed = 1u; + grammarID = 2; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 15: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &xmldsigSignatureMethodType->HMACOutputLength); + xmldsigSignatureMethodType->HMACOutputLength_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 2; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 2; + break; + case 2: + done = 1; + grammarID = 3; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &xmldsigSignatureMethodType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigSignatureMethodType->ANY.charactersLen >= 2) { + xmldsigSignatureMethodType->ANY.charactersLen = (uint16_t)(xmldsigSignatureMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigSignatureMethodType->ANY.charactersLen, xmldsigSignatureMethodType->ANY.characters, xmldsigSignatureMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigSignatureMethodType->ANY_isUsed = 1u; + grammarID = 15; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_xmldsigDigestMethodType(bitstream_t* stream, struct xmldsigDigestMethodType* xmldsigDigestMethodType) { + int grammarID = 0; + int done = 0; + + init_xmldsigDigestMethodType(xmldsigDigestMethodType); + + while(!done) { + switch(grammarID) { + case 0: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigDigestMethodType->Algorithm.charactersLen); + if (errn == 0) { + if (xmldsigDigestMethodType->Algorithm.charactersLen >= 2) { + xmldsigDigestMethodType->Algorithm.charactersLen = (uint16_t)(xmldsigDigestMethodType->Algorithm.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigDigestMethodType->Algorithm.charactersLen, xmldsigDigestMethodType->Algorithm.characters, xmldsigDigestMethodType_Algorithm_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 1; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 1: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 2; + break; + case 1: + done = 1; + grammarID = 3; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &xmldsigDigestMethodType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigDigestMethodType->ANY.charactersLen >= 2) { + xmldsigDigestMethodType->ANY.charactersLen = (uint16_t)(xmldsigDigestMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigDigestMethodType->ANY.charactersLen, xmldsigDigestMethodType->ANY.characters, xmldsigDigestMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigDigestMethodType->ANY_isUsed = 1u; + grammarID = 2; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 2; + break; + case 1: + done = 1; + grammarID = 3; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &xmldsigDigestMethodType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigDigestMethodType->ANY.charactersLen >= 2) { + xmldsigDigestMethodType->ANY.charactersLen = (uint16_t)(xmldsigDigestMethodType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigDigestMethodType->ANY.charactersLen, xmldsigDigestMethodType->ANY.characters, xmldsigDigestMethodType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigDigestMethodType->ANY_isUsed = 1u; + grammarID = 2; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */ +static int decode_xmldsigRetrievalMethodType(bitstream_t* stream, struct xmldsigRetrievalMethodType* xmldsigRetrievalMethodType) { + int grammarID = 16; + int done = 0; + + init_xmldsigRetrievalMethodType(xmldsigRetrievalMethodType); + + while(!done) { + switch(grammarID) { + case 16: + /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigRetrievalMethodType->Type.charactersLen); + if (errn == 0) { + if (xmldsigRetrievalMethodType->Type.charactersLen >= 2) { + xmldsigRetrievalMethodType->Type.charactersLen = (uint16_t)(xmldsigRetrievalMethodType->Type.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigRetrievalMethodType->Type.charactersLen, xmldsigRetrievalMethodType->Type.characters, xmldsigRetrievalMethodType_Type_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigRetrievalMethodType->Type_isUsed = 1u; + grammarID = 17; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &xmldsigRetrievalMethodType->URI.charactersLen); + if (errn == 0) { + if (xmldsigRetrievalMethodType->URI.charactersLen >= 2) { + xmldsigRetrievalMethodType->URI.charactersLen = (uint16_t)(xmldsigRetrievalMethodType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigRetrievalMethodType->URI.charactersLen, xmldsigRetrievalMethodType->URI.characters, xmldsigRetrievalMethodType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigRetrievalMethodType->URI_isUsed = 1u; + grammarID = 18; + break; + case 2: + errn = decode_xmldsigTransformsType(stream, &xmldsigRetrievalMethodType->Transforms); + xmldsigRetrievalMethodType->Transforms_isUsed = 1u; + grammarID = 19; + break; + case 3: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 17: + /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigRetrievalMethodType->URI.charactersLen); + if (errn == 0) { + if (xmldsigRetrievalMethodType->URI.charactersLen >= 2) { + xmldsigRetrievalMethodType->URI.charactersLen = (uint16_t)(xmldsigRetrievalMethodType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigRetrievalMethodType->URI.charactersLen, xmldsigRetrievalMethodType->URI.characters, xmldsigRetrievalMethodType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigRetrievalMethodType->URI_isUsed = 1u; + grammarID = 18; + break; + case 1: + errn = decode_xmldsigTransformsType(stream, &xmldsigRetrievalMethodType->Transforms); + xmldsigRetrievalMethodType->Transforms_isUsed = 1u; + grammarID = 19; + break; + case 2: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 18: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_xmldsigTransformsType(stream, &xmldsigRetrievalMethodType->Transforms); + xmldsigRetrievalMethodType->Transforms_isUsed = 1u; + grammarID = 19; + break; + case 1: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 19: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int decode_xmldsigSignatureValueType(bitstream_t* stream, struct xmldsigSignatureValueType* xmldsigSignatureValueType) { + int grammarID = 20; + int done = 0; + + init_xmldsigSignatureValueType(xmldsigSignatureValueType); + + while(!done) { + switch(grammarID) { + case 20: + /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigSignatureValueType->Id.charactersLen); + if (errn == 0) { + if (xmldsigSignatureValueType->Id.charactersLen >= 2) { + xmldsigSignatureValueType->Id.charactersLen = (uint16_t)(xmldsigSignatureValueType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigSignatureValueType->Id.charactersLen, xmldsigSignatureValueType->Id.characters, xmldsigSignatureValueType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigSignatureValueType->Id_isUsed = 1u; + grammarID = 21; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &xmldsigSignatureValueType->CONTENT.bytesLen); + if (errn == 0) { + errn = (xmldsigSignatureValueType->CONTENT.bytesLen) <= xmldsigSignatureValueType_CONTENT_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigSignatureValueType->CONTENT.bytesLen, xmldsigSignatureValueType->CONTENT.bytes); + } + grammarID = 19; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 21: + /* StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigSignatureValueType->CONTENT.bytesLen); + if (errn == 0) { + errn = (xmldsigSignatureValueType->CONTENT.bytesLen) <= xmldsigSignatureValueType_CONTENT_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigSignatureValueType->CONTENT.bytesLen, xmldsigSignatureValueType->CONTENT.bytes); + } + grammarID = 19; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 19: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */ +static int decode_xmldsigX509IssuerSerialType(bitstream_t* stream, struct xmldsigX509IssuerSerialType* xmldsigX509IssuerSerialType) { + int grammarID = 22; + int done = 0; + + init_xmldsigX509IssuerSerialType(xmldsigX509IssuerSerialType); + + while(!done) { + switch(grammarID) { + case 22: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigX509IssuerSerialType->X509IssuerName.charactersLen); + if (errn == 0) { + if (xmldsigX509IssuerSerialType->X509IssuerName.charactersLen >= 2) { + xmldsigX509IssuerSerialType->X509IssuerName.charactersLen = (uint16_t)(xmldsigX509IssuerSerialType->X509IssuerName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigX509IssuerSerialType->X509IssuerName.charactersLen, xmldsigX509IssuerSerialType->X509IssuerName.characters, xmldsigX509IssuerSerialType_X509IssuerName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 23; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 23: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &xmldsigX509IssuerSerialType->X509SerialNumber); + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 19; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 19: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_xmldsigSignedInfoType(bitstream_t* stream, struct xmldsigSignedInfoType* xmldsigSignedInfoType) { + int grammarID = 24; + int done = 0; + + init_xmldsigSignedInfoType(xmldsigSignedInfoType); + + while(!done) { + switch(grammarID) { + case 24: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigSignedInfoType->Id.charactersLen); + if (errn == 0) { + if (xmldsigSignedInfoType->Id.charactersLen >= 2) { + xmldsigSignedInfoType->Id.charactersLen = (uint16_t)(xmldsigSignedInfoType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigSignedInfoType->Id.charactersLen, xmldsigSignedInfoType->Id.characters, xmldsigSignedInfoType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigSignedInfoType->Id_isUsed = 1u; + grammarID = 25; + break; + case 1: + errn = decode_xmldsigCanonicalizationMethodType(stream, &xmldsigSignedInfoType->CanonicalizationMethod); + grammarID = 26; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 25: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_xmldsigCanonicalizationMethodType(stream, &xmldsigSignedInfoType->CanonicalizationMethod); + grammarID = 26; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 26: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_xmldsigSignatureMethodType(stream, &xmldsigSignedInfoType->SignatureMethod); + grammarID = 27; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 27: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigSignedInfoType->Reference.arrayLen < xmldsigSignedInfoType_Reference_ARRAY_SIZE) { + errn = decode_xmldsigReferenceType(stream, &xmldsigSignedInfoType->Reference.array[xmldsigSignedInfoType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 6; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 6: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigSignedInfoType->Reference.arrayLen < xmldsigSignedInfoType_Reference_ARRAY_SIZE) { + errn = decode_xmldsigReferenceType(stream, &xmldsigSignedInfoType->Reference.array[xmldsigSignedInfoType->Reference.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 6; + break; + case 1: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertiesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignatureProperty{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_xmldsigSignaturePropertiesType(bitstream_t* stream, struct xmldsigSignaturePropertiesType* xmldsigSignaturePropertiesType) { + int grammarID = 28; + int done = 0; + + init_xmldsigSignaturePropertiesType(xmldsigSignaturePropertiesType); + + while(!done) { + switch(grammarID) { + case 28: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigSignaturePropertiesType->Id.charactersLen); + if (errn == 0) { + if (xmldsigSignaturePropertiesType->Id.charactersLen >= 2) { + xmldsigSignaturePropertiesType->Id.charactersLen = (uint16_t)(xmldsigSignaturePropertiesType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigSignaturePropertiesType->Id.charactersLen, xmldsigSignaturePropertiesType->Id.characters, xmldsigSignaturePropertiesType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigSignaturePropertiesType->Id_isUsed = 1u; + grammarID = 29; + break; + case 1: + if (xmldsigSignaturePropertiesType->SignatureProperty.arrayLen < xmldsigSignaturePropertiesType_SignatureProperty_ARRAY_SIZE) { + errn = decode_xmldsigSignaturePropertyType(stream, &xmldsigSignaturePropertiesType->SignatureProperty.array[xmldsigSignaturePropertiesType->SignatureProperty.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 30; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 29: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigSignaturePropertiesType->SignatureProperty.arrayLen < xmldsigSignaturePropertiesType_SignatureProperty_ARRAY_SIZE) { + errn = decode_xmldsigSignaturePropertyType(stream, &xmldsigSignaturePropertiesType->SignatureProperty.array[xmldsigSignaturePropertiesType->SignatureProperty.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 30; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 30: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigSignaturePropertiesType->SignatureProperty.arrayLen < xmldsigSignaturePropertiesType_SignatureProperty_ARRAY_SIZE) { + errn = decode_xmldsigSignaturePropertyType(stream, &xmldsigSignaturePropertiesType->SignatureProperty.array[xmldsigSignaturePropertiesType->SignatureProperty.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 30; + break; + case 1: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_xmldsigSignaturePropertyType(bitstream_t* stream, struct xmldsigSignaturePropertyType* xmldsigSignaturePropertyType) { + int grammarID = 31; + int done = 0; + + init_xmldsigSignaturePropertyType(xmldsigSignaturePropertyType); + + while(!done) { + switch(grammarID) { + case 31: + /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigSignaturePropertyType->Id.charactersLen); + if (errn == 0) { + if (xmldsigSignaturePropertyType->Id.charactersLen >= 2) { + xmldsigSignaturePropertyType->Id.charactersLen = (uint16_t)(xmldsigSignaturePropertyType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigSignaturePropertyType->Id.charactersLen, xmldsigSignaturePropertyType->Id.characters, xmldsigSignaturePropertyType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigSignaturePropertyType->Id_isUsed = 1u; + grammarID = 32; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &xmldsigSignaturePropertyType->Target.charactersLen); + if (errn == 0) { + if (xmldsigSignaturePropertyType->Target.charactersLen >= 2) { + xmldsigSignaturePropertyType->Target.charactersLen = (uint16_t)(xmldsigSignaturePropertyType->Target.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigSignaturePropertyType->Target.charactersLen, xmldsigSignaturePropertyType->Target.characters, xmldsigSignaturePropertyType_Target_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 33; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 32: + /* StartTag[ATTRIBUTE[STRING](Target)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigSignaturePropertyType->Target.charactersLen); + if (errn == 0) { + if (xmldsigSignaturePropertyType->Target.charactersLen >= 2) { + xmldsigSignaturePropertyType->Target.charactersLen = (uint16_t)(xmldsigSignaturePropertyType->Target.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigSignaturePropertyType->Target.charactersLen, xmldsigSignaturePropertyType->Target.characters, xmldsigSignaturePropertyType_Target_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + grammarID = 33; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 33: + /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 2; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &xmldsigSignaturePropertyType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigSignaturePropertyType->ANY.charactersLen >= 2) { + xmldsigSignaturePropertyType->ANY.charactersLen = (uint16_t)(xmldsigSignaturePropertyType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigSignaturePropertyType->ANY.charactersLen, xmldsigSignaturePropertyType->ANY.characters, xmldsigSignaturePropertyType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigSignaturePropertyType->ANY_isUsed = 1u; + grammarID = 34; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 2: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 2; + break; + case 1: + done = 1; + grammarID = 3; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &xmldsigSignaturePropertyType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigSignaturePropertyType->ANY.charactersLen >= 2) { + xmldsigSignaturePropertyType->ANY.charactersLen = (uint16_t)(xmldsigSignaturePropertyType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigSignaturePropertyType->ANY.charactersLen, xmldsigSignaturePropertyType->ANY.characters, xmldsigSignaturePropertyType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigSignaturePropertyType->ANY_isUsed = 1u; + grammarID = 2; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 34: + /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 2; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &xmldsigSignaturePropertyType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigSignaturePropertyType->ANY.charactersLen >= 2) { + xmldsigSignaturePropertyType->ANY.charactersLen = (uint16_t)(xmldsigSignaturePropertyType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigSignaturePropertyType->ANY.charactersLen, xmldsigSignaturePropertyType->ANY.characters, xmldsigSignaturePropertyType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigSignaturePropertyType->ANY_isUsed = 1u; + grammarID = 34; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */ +static int decode_xmldsigKeyValueType(bitstream_t* stream, struct xmldsigKeyValueType* xmldsigKeyValueType) { + int grammarID = 35; + int done = 0; + + init_xmldsigKeyValueType(xmldsigKeyValueType); + + while(!done) { + switch(grammarID) { + case 35: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_xmldsigDSAKeyValueType(stream, &xmldsigKeyValueType->DSAKeyValue); + xmldsigKeyValueType->DSAKeyValue_isUsed = 1u; + grammarID = 36; + break; + case 1: + errn = decode_xmldsigRSAKeyValueType(stream, &xmldsigKeyValueType->RSAKeyValue); + xmldsigKeyValueType->RSAKeyValue_isUsed = 1u; + grammarID = 36; + break; + case 2: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 36; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &xmldsigKeyValueType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigKeyValueType->ANY.charactersLen >= 2) { + xmldsigKeyValueType->ANY.charactersLen = (uint16_t)(xmldsigKeyValueType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigKeyValueType->ANY.charactersLen, xmldsigKeyValueType->ANY.characters, xmldsigKeyValueType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigKeyValueType->ANY_isUsed = 1u; + grammarID = 37; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 36: + /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 3; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &xmldsigKeyValueType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigKeyValueType->ANY.charactersLen >= 2) { + xmldsigKeyValueType->ANY.charactersLen = (uint16_t)(xmldsigKeyValueType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigKeyValueType->ANY.charactersLen, xmldsigKeyValueType->ANY.characters, xmldsigKeyValueType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigKeyValueType->ANY_isUsed = 1u; + grammarID = 36; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 37: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_xmldsigDSAKeyValueType(stream, &xmldsigKeyValueType->DSAKeyValue); + xmldsigKeyValueType->DSAKeyValue_isUsed = 1u; + grammarID = 36; + break; + case 1: + errn = decode_xmldsigRSAKeyValueType(stream, &xmldsigKeyValueType->RSAKeyValue); + xmldsigKeyValueType->RSAKeyValue_isUsed = 1u; + grammarID = 36; + break; + case 2: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 36; + break; + case 3: + errn = decodeUnsignedInteger16(stream, &xmldsigKeyValueType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigKeyValueType->ANY.charactersLen >= 2) { + xmldsigKeyValueType->ANY.charactersLen = (uint16_t)(xmldsigKeyValueType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigKeyValueType->ANY.charactersLen, xmldsigKeyValueType->ANY.characters, xmldsigKeyValueType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigKeyValueType->ANY_isUsed = 1u; + grammarID = 37; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */ +static int decode_xmldsigRSAKeyValueType(bitstream_t* stream, struct xmldsigRSAKeyValueType* xmldsigRSAKeyValueType) { + int grammarID = 38; + int done = 0; + + init_xmldsigRSAKeyValueType(xmldsigRSAKeyValueType); + + while(!done) { + switch(grammarID) { + case 38: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigRSAKeyValueType->Modulus.bytesLen); + if (errn == 0) { + errn = (xmldsigRSAKeyValueType->Modulus.bytesLen) <= xmldsigRSAKeyValueType_Modulus_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigRSAKeyValueType->Modulus.bytesLen, xmldsigRSAKeyValueType->Modulus.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 39; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 39: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigRSAKeyValueType->Exponent.bytesLen); + if (errn == 0) { + errn = (xmldsigRSAKeyValueType->Exponent.bytesLen) <= xmldsigRSAKeyValueType_Exponent_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigRSAKeyValueType->Exponent.bytesLen, xmldsigRSAKeyValueType->Exponent.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 19; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 19: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */ +static int decode_xmldsigPGPDataType(bitstream_t* stream, struct xmldsigPGPDataType* xmldsigPGPDataType) { + int grammarID = 40; + int done = 0; + + init_xmldsigPGPDataType(xmldsigPGPDataType); + + while(!done) { + switch(grammarID) { + case 40: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigPGPDataType->PGPKeyID.bytesLen); + if (errn == 0) { + errn = (xmldsigPGPDataType->PGPKeyID.bytesLen) <= xmldsigPGPDataType_PGPKeyID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigPGPDataType->PGPKeyID.bytesLen, xmldsigPGPDataType->PGPKeyID.bytes); + } + xmldsigPGPDataType->PGPKeyID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 41; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigPGPDataType->PGPKeyPacket.bytesLen); + if (errn == 0) { + errn = (xmldsigPGPDataType->PGPKeyPacket.bytesLen) <= xmldsigPGPDataType_PGPKeyPacket_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigPGPDataType->PGPKeyPacket.bytesLen, xmldsigPGPDataType->PGPKeyPacket.bytes); + } + xmldsigPGPDataType->PGPKeyPacket_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 42; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 41: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigPGPDataType->PGPKeyPacket.bytesLen); + if (errn == 0) { + errn = (xmldsigPGPDataType->PGPKeyPacket.bytesLen) <= xmldsigPGPDataType_PGPKeyPacket_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigPGPDataType->PGPKeyPacket.bytesLen, xmldsigPGPDataType->PGPKeyPacket.bytes); + } + xmldsigPGPDataType->PGPKeyPacket_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 42; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 42; + break; + case 2: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 42: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 42; + break; + case 1: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_xmldsigTransformsType(bitstream_t* stream, struct xmldsigTransformsType* xmldsigTransformsType) { + int grammarID = 43; + int done = 0; + + init_xmldsigTransformsType(xmldsigTransformsType); + + while(!done) { + switch(grammarID) { + case 43: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigTransformsType->Transform.arrayLen < xmldsigTransformsType_Transform_ARRAY_SIZE) { + errn = decode_xmldsigTransformType(stream, &xmldsigTransformsType->Transform.array[xmldsigTransformsType->Transform.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 44; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 44: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigTransformsType->Transform.arrayLen < xmldsigTransformsType_Transform_ARRAY_SIZE) { + errn = decode_xmldsigTransformType(stream, &xmldsigTransformsType->Transform.array[xmldsigTransformsType->Transform.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 44; + break; + case 1: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_xmldsigX509DataType(bitstream_t* stream, struct xmldsigX509DataType* xmldsigX509DataType) { + int grammarID = 45; + int done = 0; + + init_xmldsigX509DataType(xmldsigX509DataType); + + while(!done) { + switch(grammarID) { + case 45: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigX509DataType->X509IssuerSerial.arrayLen < xmldsigX509DataType_X509IssuerSerial_ARRAY_SIZE) { + errn = decode_xmldsigX509IssuerSerialType(stream, &xmldsigX509DataType->X509IssuerSerial.array[xmldsigX509DataType->X509IssuerSerial.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 46; + break; + case 1: + if (xmldsigX509DataType->X509SKI.arrayLen < xmldsigX509DataType_X509SKI_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigX509DataType->X509SKI.array[xmldsigX509DataType->X509SKI.arrayLen].bytesLen); + if (errn == 0) { + errn = (xmldsigX509DataType->X509SKI.array[xmldsigX509DataType->X509SKI.arrayLen].bytesLen) <= xmldsigX509DataType_X509SKI_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigX509DataType->X509SKI.array[xmldsigX509DataType->X509SKI.arrayLen].bytesLen, xmldsigX509DataType->X509SKI.array[xmldsigX509DataType->X509SKI.arrayLen].bytes); + } + xmldsigX509DataType->X509SKI.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 46; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + if (xmldsigX509DataType->X509SubjectName.arrayLen < xmldsigX509DataType_X509SubjectName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigX509DataType->X509SubjectName.array[xmldsigX509DataType->X509SubjectName.arrayLen].charactersLen); + if (errn == 0) { + if (xmldsigX509DataType->X509SubjectName.array[xmldsigX509DataType->X509SubjectName.arrayLen].charactersLen >= 2) { + xmldsigX509DataType->X509SubjectName.array[xmldsigX509DataType->X509SubjectName.arrayLen].charactersLen = (uint16_t)(xmldsigX509DataType->X509SubjectName.array[xmldsigX509DataType->X509SubjectName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigX509DataType->X509SubjectName.array[xmldsigX509DataType->X509SubjectName.arrayLen].charactersLen, xmldsigX509DataType->X509SubjectName.array[xmldsigX509DataType->X509SubjectName.arrayLen].characters, xmldsigX509DataType_X509SubjectName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigX509DataType->X509SubjectName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 46; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + if (xmldsigX509DataType->X509Certificate.arrayLen < xmldsigX509DataType_X509Certificate_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigX509DataType->X509Certificate.array[xmldsigX509DataType->X509Certificate.arrayLen].bytesLen); + if (errn == 0) { + errn = (xmldsigX509DataType->X509Certificate.array[xmldsigX509DataType->X509Certificate.arrayLen].bytesLen) <= xmldsigX509DataType_X509Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigX509DataType->X509Certificate.array[xmldsigX509DataType->X509Certificate.arrayLen].bytesLen, xmldsigX509DataType->X509Certificate.array[xmldsigX509DataType->X509Certificate.arrayLen].bytes); + } + xmldsigX509DataType->X509Certificate.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 46; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + if (xmldsigX509DataType->X509CRL.arrayLen < xmldsigX509DataType_X509CRL_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigX509DataType->X509CRL.array[xmldsigX509DataType->X509CRL.arrayLen].bytesLen); + if (errn == 0) { + errn = (xmldsigX509DataType->X509CRL.array[xmldsigX509DataType->X509CRL.arrayLen].bytesLen) <= xmldsigX509DataType_X509CRL_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigX509DataType->X509CRL.array[xmldsigX509DataType->X509CRL.arrayLen].bytesLen, xmldsigX509DataType->X509CRL.array[xmldsigX509DataType->X509CRL.arrayLen].bytes); + } + xmldsigX509DataType->X509CRL.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 46; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 46; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 46: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigX509DataType->X509IssuerSerial.arrayLen < xmldsigX509DataType_X509IssuerSerial_ARRAY_SIZE) { + errn = decode_xmldsigX509IssuerSerialType(stream, &xmldsigX509DataType->X509IssuerSerial.array[xmldsigX509DataType->X509IssuerSerial.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 46; + break; + case 1: + if (xmldsigX509DataType->X509SKI.arrayLen < xmldsigX509DataType_X509SKI_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigX509DataType->X509SKI.array[xmldsigX509DataType->X509SKI.arrayLen].bytesLen); + if (errn == 0) { + errn = (xmldsigX509DataType->X509SKI.array[xmldsigX509DataType->X509SKI.arrayLen].bytesLen) <= xmldsigX509DataType_X509SKI_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigX509DataType->X509SKI.array[xmldsigX509DataType->X509SKI.arrayLen].bytesLen, xmldsigX509DataType->X509SKI.array[xmldsigX509DataType->X509SKI.arrayLen].bytes); + } + xmldsigX509DataType->X509SKI.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 46; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + if (xmldsigX509DataType->X509SubjectName.arrayLen < xmldsigX509DataType_X509SubjectName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigX509DataType->X509SubjectName.array[xmldsigX509DataType->X509SubjectName.arrayLen].charactersLen); + if (errn == 0) { + if (xmldsigX509DataType->X509SubjectName.array[xmldsigX509DataType->X509SubjectName.arrayLen].charactersLen >= 2) { + xmldsigX509DataType->X509SubjectName.array[xmldsigX509DataType->X509SubjectName.arrayLen].charactersLen = (uint16_t)(xmldsigX509DataType->X509SubjectName.array[xmldsigX509DataType->X509SubjectName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigX509DataType->X509SubjectName.array[xmldsigX509DataType->X509SubjectName.arrayLen].charactersLen, xmldsigX509DataType->X509SubjectName.array[xmldsigX509DataType->X509SubjectName.arrayLen].characters, xmldsigX509DataType_X509SubjectName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigX509DataType->X509SubjectName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 46; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 3: + if (xmldsigX509DataType->X509Certificate.arrayLen < xmldsigX509DataType_X509Certificate_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigX509DataType->X509Certificate.array[xmldsigX509DataType->X509Certificate.arrayLen].bytesLen); + if (errn == 0) { + errn = (xmldsigX509DataType->X509Certificate.array[xmldsigX509DataType->X509Certificate.arrayLen].bytesLen) <= xmldsigX509DataType_X509Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigX509DataType->X509Certificate.array[xmldsigX509DataType->X509Certificate.arrayLen].bytesLen, xmldsigX509DataType->X509Certificate.array[xmldsigX509DataType->X509Certificate.arrayLen].bytes); + } + xmldsigX509DataType->X509Certificate.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 46; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 4: + if (xmldsigX509DataType->X509CRL.arrayLen < xmldsigX509DataType_X509CRL_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigX509DataType->X509CRL.array[xmldsigX509DataType->X509CRL.arrayLen].bytesLen); + if (errn == 0) { + errn = (xmldsigX509DataType->X509CRL.array[xmldsigX509DataType->X509CRL.arrayLen].bytesLen) <= xmldsigX509DataType_X509CRL_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigX509DataType->X509CRL.array[xmldsigX509DataType->X509CRL.arrayLen].bytesLen, xmldsigX509DataType->X509CRL.array[xmldsigX509DataType->X509CRL.arrayLen].bytes); + } + xmldsigX509DataType->X509CRL.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 46; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 5: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 46; + break; + case 6: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int decode_xmldsigSignatureType(bitstream_t* stream, struct xmldsigSignatureType* xmldsigSignatureType) { + int grammarID = 47; + int done = 0; + + init_xmldsigSignatureType(xmldsigSignatureType); + + while(!done) { + switch(grammarID) { + case 47: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigSignatureType->Id.charactersLen); + if (errn == 0) { + if (xmldsigSignatureType->Id.charactersLen >= 2) { + xmldsigSignatureType->Id.charactersLen = (uint16_t)(xmldsigSignatureType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigSignatureType->Id.charactersLen, xmldsigSignatureType->Id.characters, xmldsigSignatureType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigSignatureType->Id_isUsed = 1u; + grammarID = 48; + break; + case 1: + errn = decode_xmldsigSignedInfoType(stream, &xmldsigSignatureType->SignedInfo); + grammarID = 49; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 48: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_xmldsigSignedInfoType(stream, &xmldsigSignatureType->SignedInfo); + grammarID = 49; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 49: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_xmldsigSignatureValueType(stream, &xmldsigSignatureType->SignatureValue); + grammarID = 50; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 50: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_xmldsigKeyInfoType(stream, &xmldsigSignatureType->KeyInfo); + xmldsigSignatureType->KeyInfo_isUsed = 1u; + grammarID = 51; + break; + case 1: + if (xmldsigSignatureType->Object.arrayLen < xmldsigSignatureType_Object_ARRAY_SIZE) { + errn = decode_xmldsigObjectType(stream, &xmldsigSignatureType->Object.array[xmldsigSignatureType->Object.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 51; + break; + case 2: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 51: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigSignatureType->Object.arrayLen < xmldsigSignatureType_Object_ARRAY_SIZE) { + errn = decode_xmldsigObjectType(stream, &xmldsigSignatureType->Object.array[xmldsigSignatureType->Object.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 51; + break; + case 1: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */ +static int decode_xmldsigDSAKeyValueType(bitstream_t* stream, struct xmldsigDSAKeyValueType* xmldsigDSAKeyValueType) { + int grammarID = 52; + int done = 0; + + init_xmldsigDSAKeyValueType(xmldsigDSAKeyValueType); + + while(!done) { + switch(grammarID) { + case 52: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigDSAKeyValueType->P.bytesLen); + if (errn == 0) { + errn = (xmldsigDSAKeyValueType->P.bytesLen) <= xmldsigDSAKeyValueType_P_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigDSAKeyValueType->P.bytesLen, xmldsigDSAKeyValueType->P.bytes); + } + xmldsigDSAKeyValueType->P_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 53; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigDSAKeyValueType->G.bytesLen); + if (errn == 0) { + errn = (xmldsigDSAKeyValueType->G.bytesLen) <= xmldsigDSAKeyValueType_G_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigDSAKeyValueType->G.bytesLen, xmldsigDSAKeyValueType->G.bytes); + } + xmldsigDSAKeyValueType->G_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 54; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigDSAKeyValueType->Y.bytesLen); + if (errn == 0) { + errn = (xmldsigDSAKeyValueType->Y.bytesLen) <= xmldsigDSAKeyValueType_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigDSAKeyValueType->Y.bytesLen, xmldsigDSAKeyValueType->Y.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 55; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 53: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigDSAKeyValueType->Q.bytesLen); + if (errn == 0) { + errn = (xmldsigDSAKeyValueType->Q.bytesLen) <= xmldsigDSAKeyValueType_Q_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigDSAKeyValueType->Q.bytesLen, xmldsigDSAKeyValueType->Q.bytes); + } + xmldsigDSAKeyValueType->Q_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 56; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 56: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigDSAKeyValueType->G.bytesLen); + if (errn == 0) { + errn = (xmldsigDSAKeyValueType->G.bytesLen) <= xmldsigDSAKeyValueType_G_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigDSAKeyValueType->G.bytesLen, xmldsigDSAKeyValueType->G.bytes); + } + xmldsigDSAKeyValueType->G_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 54; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigDSAKeyValueType->Y.bytesLen); + if (errn == 0) { + errn = (xmldsigDSAKeyValueType->Y.bytesLen) <= xmldsigDSAKeyValueType_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigDSAKeyValueType->Y.bytesLen, xmldsigDSAKeyValueType->Y.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 55; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 54: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigDSAKeyValueType->Y.bytesLen); + if (errn == 0) { + errn = (xmldsigDSAKeyValueType->Y.bytesLen) <= xmldsigDSAKeyValueType_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigDSAKeyValueType->Y.bytesLen, xmldsigDSAKeyValueType->Y.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 55; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 55: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigDSAKeyValueType->J.bytesLen); + if (errn == 0) { + errn = (xmldsigDSAKeyValueType->J.bytesLen) <= xmldsigDSAKeyValueType_J_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigDSAKeyValueType->J.bytesLen, xmldsigDSAKeyValueType->J.bytes); + } + xmldsigDSAKeyValueType->J_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 57; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigDSAKeyValueType->Seed.bytesLen); + if (errn == 0) { + errn = (xmldsigDSAKeyValueType->Seed.bytesLen) <= xmldsigDSAKeyValueType_Seed_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigDSAKeyValueType->Seed.bytesLen, xmldsigDSAKeyValueType->Seed.bytes); + } + xmldsigDSAKeyValueType->Seed_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 58; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 57: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigDSAKeyValueType->Seed.bytesLen); + if (errn == 0) { + errn = (xmldsigDSAKeyValueType->Seed.bytesLen) <= xmldsigDSAKeyValueType_Seed_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigDSAKeyValueType->Seed.bytesLen, xmldsigDSAKeyValueType->Seed.bytes); + } + xmldsigDSAKeyValueType->Seed_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 58; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 58: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigDSAKeyValueType->PgenCounter.bytesLen); + if (errn == 0) { + errn = (xmldsigDSAKeyValueType->PgenCounter.bytesLen) <= xmldsigDSAKeyValueType_PgenCounter_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigDSAKeyValueType->PgenCounter.bytesLen, xmldsigDSAKeyValueType->PgenCounter.bytes); + } + xmldsigDSAKeyValueType->PgenCounter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 19; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 19: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ +static int decode_xmldsigReferenceType(bitstream_t* stream, struct xmldsigReferenceType* xmldsigReferenceType) { + int grammarID = 59; + int done = 0; + + init_xmldsigReferenceType(xmldsigReferenceType); + + while(!done) { + switch(grammarID) { + case 59: + /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigReferenceType->Id.charactersLen); + if (errn == 0) { + if (xmldsigReferenceType->Id.charactersLen >= 2) { + xmldsigReferenceType->Id.charactersLen = (uint16_t)(xmldsigReferenceType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigReferenceType->Id.charactersLen, xmldsigReferenceType->Id.characters, xmldsigReferenceType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigReferenceType->Id_isUsed = 1u; + grammarID = 60; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &xmldsigReferenceType->Type.charactersLen); + if (errn == 0) { + if (xmldsigReferenceType->Type.charactersLen >= 2) { + xmldsigReferenceType->Type.charactersLen = (uint16_t)(xmldsigReferenceType->Type.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigReferenceType->Type.charactersLen, xmldsigReferenceType->Type.characters, xmldsigReferenceType_Type_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigReferenceType->Type_isUsed = 1u; + grammarID = 61; + break; + case 2: + errn = decodeUnsignedInteger16(stream, &xmldsigReferenceType->URI.charactersLen); + if (errn == 0) { + if (xmldsigReferenceType->URI.charactersLen >= 2) { + xmldsigReferenceType->URI.charactersLen = (uint16_t)(xmldsigReferenceType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigReferenceType->URI.charactersLen, xmldsigReferenceType->URI.characters, xmldsigReferenceType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigReferenceType->URI_isUsed = 1u; + grammarID = 62; + break; + case 3: + errn = decode_xmldsigTransformsType(stream, &xmldsigReferenceType->Transforms); + xmldsigReferenceType->Transforms_isUsed = 1u; + grammarID = 63; + break; + case 4: + errn = decode_xmldsigDigestMethodType(stream, &xmldsigReferenceType->DigestMethod); + grammarID = 64; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 60: + /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 3, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigReferenceType->Type.charactersLen); + if (errn == 0) { + if (xmldsigReferenceType->Type.charactersLen >= 2) { + xmldsigReferenceType->Type.charactersLen = (uint16_t)(xmldsigReferenceType->Type.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigReferenceType->Type.charactersLen, xmldsigReferenceType->Type.characters, xmldsigReferenceType_Type_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigReferenceType->Type_isUsed = 1u; + grammarID = 61; + break; + case 1: + errn = decodeUnsignedInteger16(stream, &xmldsigReferenceType->URI.charactersLen); + if (errn == 0) { + if (xmldsigReferenceType->URI.charactersLen >= 2) { + xmldsigReferenceType->URI.charactersLen = (uint16_t)(xmldsigReferenceType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigReferenceType->URI.charactersLen, xmldsigReferenceType->URI.characters, xmldsigReferenceType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigReferenceType->URI_isUsed = 1u; + grammarID = 62; + break; + case 2: + errn = decode_xmldsigTransformsType(stream, &xmldsigReferenceType->Transforms); + xmldsigReferenceType->Transforms_isUsed = 1u; + grammarID = 63; + break; + case 3: + errn = decode_xmldsigDigestMethodType(stream, &xmldsigReferenceType->DigestMethod); + grammarID = 64; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 61: + /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigReferenceType->URI.charactersLen); + if (errn == 0) { + if (xmldsigReferenceType->URI.charactersLen >= 2) { + xmldsigReferenceType->URI.charactersLen = (uint16_t)(xmldsigReferenceType->URI.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigReferenceType->URI.charactersLen, xmldsigReferenceType->URI.characters, xmldsigReferenceType_URI_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigReferenceType->URI_isUsed = 1u; + grammarID = 62; + break; + case 1: + errn = decode_xmldsigTransformsType(stream, &xmldsigReferenceType->Transforms); + xmldsigReferenceType->Transforms_isUsed = 1u; + grammarID = 63; + break; + case 2: + errn = decode_xmldsigDigestMethodType(stream, &xmldsigReferenceType->DigestMethod); + grammarID = 64; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 62: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_xmldsigTransformsType(stream, &xmldsigReferenceType->Transforms); + xmldsigReferenceType->Transforms_isUsed = 1u; + grammarID = 63; + break; + case 1: + errn = decode_xmldsigDigestMethodType(stream, &xmldsigReferenceType->DigestMethod); + grammarID = 64; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 63: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decode_xmldsigDigestMethodType(stream, &xmldsigReferenceType->DigestMethod); + grammarID = 64; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 64: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigReferenceType->DigestValue.bytesLen); + if (errn == 0) { + errn = (xmldsigReferenceType->DigestValue.bytesLen) <= xmldsigReferenceType_DigestValue_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigReferenceType->DigestValue.bytesLen, xmldsigReferenceType->DigestValue.bytes); + } + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 19; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 19: + /* Element[END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_xmldsigSPKIDataType(bitstream_t* stream, struct xmldsigSPKIDataType* xmldsigSPKIDataType) { + int grammarID = 65; + int done = 0; + + init_xmldsigSPKIDataType(xmldsigSPKIDataType); + + while(!done) { + switch(grammarID) { + case 65: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigSPKIDataType->SPKISexp.arrayLen < xmldsigSPKIDataType_SPKISexp_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType->SPKISexp.arrayLen].bytesLen); + if (errn == 0) { + errn = (xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType->SPKISexp.arrayLen].bytesLen) <= xmldsigSPKIDataType_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType->SPKISexp.arrayLen].bytesLen, xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType->SPKISexp.arrayLen].bytes); + } + xmldsigSPKIDataType->SPKISexp.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 66; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 66: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigSPKIDataType->SPKISexp.arrayLen < xmldsigSPKIDataType_SPKISexp_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType->SPKISexp.arrayLen].bytesLen); + if (errn == 0) { + errn = (xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType->SPKISexp.arrayLen].bytesLen) <= xmldsigSPKIDataType_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType->SPKISexp.arrayLen].bytesLen, xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType->SPKISexp.arrayLen].bytes); + } + xmldsigSPKIDataType->SPKISexp.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 66; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 67; + break; + case 2: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 67: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */ + errn = decodeNBitUnsignedInteger(stream, 2, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigSPKIDataType->SPKISexp.arrayLen < xmldsigSPKIDataType_SPKISexp_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType->SPKISexp.arrayLen].bytesLen); + if (errn == 0) { + errn = (xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType->SPKISexp.arrayLen].bytesLen) <= xmldsigSPKIDataType_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType->SPKISexp.arrayLen].bytesLen, xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType->SPKISexp.arrayLen].bytes); + } + xmldsigSPKIDataType->SPKISexp.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 66; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + done = 1; + grammarID = 3; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int decode_xmldsigKeyInfoType(bitstream_t* stream, struct xmldsigKeyInfoType* xmldsigKeyInfoType) { + int grammarID = 68; + int done = 0; + + init_xmldsigKeyInfoType(xmldsigKeyInfoType); + + while(!done) { + switch(grammarID) { + case 68: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + errn = decodeUnsignedInteger16(stream, &xmldsigKeyInfoType->Id.charactersLen); + if (errn == 0) { + if (xmldsigKeyInfoType->Id.charactersLen >= 2) { + xmldsigKeyInfoType->Id.charactersLen = (uint16_t)(xmldsigKeyInfoType->Id.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigKeyInfoType->Id.charactersLen, xmldsigKeyInfoType->Id.characters, xmldsigKeyInfoType_Id_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigKeyInfoType->Id_isUsed = 1u; + grammarID = 69; + break; + case 1: + if (xmldsigKeyInfoType->KeyName.arrayLen < xmldsigKeyInfoType_KeyName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen); + if (errn == 0) { + if (xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen >= 2) { + xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen, xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].characters, xmldsigKeyInfoType_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigKeyInfoType->KeyName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 70; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 2: + if (xmldsigKeyInfoType->KeyValue.arrayLen < xmldsigKeyInfoType_KeyValue_ARRAY_SIZE) { + errn = decode_xmldsigKeyValueType(stream, &xmldsigKeyInfoType->KeyValue.array[xmldsigKeyInfoType->KeyValue.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 3: + if (xmldsigKeyInfoType->RetrievalMethod.arrayLen < xmldsigKeyInfoType_RetrievalMethod_ARRAY_SIZE) { + errn = decode_xmldsigRetrievalMethodType(stream, &xmldsigKeyInfoType->RetrievalMethod.array[xmldsigKeyInfoType->RetrievalMethod.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 4: + if (xmldsigKeyInfoType->X509Data.arrayLen < xmldsigKeyInfoType_X509Data_ARRAY_SIZE) { + errn = decode_xmldsigX509DataType(stream, &xmldsigKeyInfoType->X509Data.array[xmldsigKeyInfoType->X509Data.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 5: + if (xmldsigKeyInfoType->PGPData.arrayLen < xmldsigKeyInfoType_PGPData_ARRAY_SIZE) { + errn = decode_xmldsigPGPDataType(stream, &xmldsigKeyInfoType->PGPData.array[xmldsigKeyInfoType->PGPData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 6: + if (xmldsigKeyInfoType->SPKIData.arrayLen < xmldsigKeyInfoType_SPKIData_ARRAY_SIZE) { + errn = decode_xmldsigSPKIDataType(stream, &xmldsigKeyInfoType->SPKIData.array[xmldsigKeyInfoType->SPKIData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 7: + if (xmldsigKeyInfoType->MgmtData.arrayLen < xmldsigKeyInfoType_MgmtData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen); + if (errn == 0) { + if (xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen >= 2) { + xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen, xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].characters, xmldsigKeyInfoType_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigKeyInfoType->MgmtData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 70; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 8: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 70; + break; + case 9: + errn = decodeUnsignedInteger16(stream, &xmldsigKeyInfoType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigKeyInfoType->ANY.charactersLen >= 2) { + xmldsigKeyInfoType->ANY.charactersLen = (uint16_t)(xmldsigKeyInfoType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigKeyInfoType->ANY.charactersLen, xmldsigKeyInfoType->ANY.characters, xmldsigKeyInfoType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigKeyInfoType->ANY_isUsed = 1u; + grammarID = 71; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 69: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigKeyInfoType->KeyName.arrayLen < xmldsigKeyInfoType_KeyName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen); + if (errn == 0) { + if (xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen >= 2) { + xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen, xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].characters, xmldsigKeyInfoType_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigKeyInfoType->KeyName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 70; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + if (xmldsigKeyInfoType->KeyValue.arrayLen < xmldsigKeyInfoType_KeyValue_ARRAY_SIZE) { + errn = decode_xmldsigKeyValueType(stream, &xmldsigKeyInfoType->KeyValue.array[xmldsigKeyInfoType->KeyValue.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 2: + if (xmldsigKeyInfoType->RetrievalMethod.arrayLen < xmldsigKeyInfoType_RetrievalMethod_ARRAY_SIZE) { + errn = decode_xmldsigRetrievalMethodType(stream, &xmldsigKeyInfoType->RetrievalMethod.array[xmldsigKeyInfoType->RetrievalMethod.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 3: + if (xmldsigKeyInfoType->X509Data.arrayLen < xmldsigKeyInfoType_X509Data_ARRAY_SIZE) { + errn = decode_xmldsigX509DataType(stream, &xmldsigKeyInfoType->X509Data.array[xmldsigKeyInfoType->X509Data.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 4: + if (xmldsigKeyInfoType->PGPData.arrayLen < xmldsigKeyInfoType_PGPData_ARRAY_SIZE) { + errn = decode_xmldsigPGPDataType(stream, &xmldsigKeyInfoType->PGPData.array[xmldsigKeyInfoType->PGPData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 5: + if (xmldsigKeyInfoType->SPKIData.arrayLen < xmldsigKeyInfoType_SPKIData_ARRAY_SIZE) { + errn = decode_xmldsigSPKIDataType(stream, &xmldsigKeyInfoType->SPKIData.array[xmldsigKeyInfoType->SPKIData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 6: + if (xmldsigKeyInfoType->MgmtData.arrayLen < xmldsigKeyInfoType_MgmtData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen); + if (errn == 0) { + if (xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen >= 2) { + xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen, xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].characters, xmldsigKeyInfoType_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigKeyInfoType->MgmtData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 70; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 7: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 70; + break; + case 8: + errn = decodeUnsignedInteger16(stream, &xmldsigKeyInfoType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigKeyInfoType->ANY.charactersLen >= 2) { + xmldsigKeyInfoType->ANY.charactersLen = (uint16_t)(xmldsigKeyInfoType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigKeyInfoType->ANY.charactersLen, xmldsigKeyInfoType->ANY.characters, xmldsigKeyInfoType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigKeyInfoType->ANY_isUsed = 1u; + grammarID = 71; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 70: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigKeyInfoType->KeyName.arrayLen < xmldsigKeyInfoType_KeyName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen); + if (errn == 0) { + if (xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen >= 2) { + xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen, xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].characters, xmldsigKeyInfoType_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigKeyInfoType->KeyName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 70; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + if (xmldsigKeyInfoType->KeyValue.arrayLen < xmldsigKeyInfoType_KeyValue_ARRAY_SIZE) { + errn = decode_xmldsigKeyValueType(stream, &xmldsigKeyInfoType->KeyValue.array[xmldsigKeyInfoType->KeyValue.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 2: + if (xmldsigKeyInfoType->RetrievalMethod.arrayLen < xmldsigKeyInfoType_RetrievalMethod_ARRAY_SIZE) { + errn = decode_xmldsigRetrievalMethodType(stream, &xmldsigKeyInfoType->RetrievalMethod.array[xmldsigKeyInfoType->RetrievalMethod.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 3: + if (xmldsigKeyInfoType->X509Data.arrayLen < xmldsigKeyInfoType_X509Data_ARRAY_SIZE) { + errn = decode_xmldsigX509DataType(stream, &xmldsigKeyInfoType->X509Data.array[xmldsigKeyInfoType->X509Data.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 4: + if (xmldsigKeyInfoType->PGPData.arrayLen < xmldsigKeyInfoType_PGPData_ARRAY_SIZE) { + errn = decode_xmldsigPGPDataType(stream, &xmldsigKeyInfoType->PGPData.array[xmldsigKeyInfoType->PGPData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 5: + if (xmldsigKeyInfoType->SPKIData.arrayLen < xmldsigKeyInfoType_SPKIData_ARRAY_SIZE) { + errn = decode_xmldsigSPKIDataType(stream, &xmldsigKeyInfoType->SPKIData.array[xmldsigKeyInfoType->SPKIData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 6: + if (xmldsigKeyInfoType->MgmtData.arrayLen < xmldsigKeyInfoType_MgmtData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen); + if (errn == 0) { + if (xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen >= 2) { + xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen, xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].characters, xmldsigKeyInfoType_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigKeyInfoType->MgmtData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 70; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 7: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 70; + break; + case 8: + done = 1; + grammarID = 3; + break; + case 9: + errn = decodeUnsignedInteger16(stream, &xmldsigKeyInfoType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigKeyInfoType->ANY.charactersLen >= 2) { + xmldsigKeyInfoType->ANY.charactersLen = (uint16_t)(xmldsigKeyInfoType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigKeyInfoType->ANY.charactersLen, xmldsigKeyInfoType->ANY.characters, xmldsigKeyInfoType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigKeyInfoType->ANY_isUsed = 1u; + grammarID = 70; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + case 71: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 4, &eventCode); + if (errn == 0) { + switch(eventCode) { + case 0: + if (xmldsigKeyInfoType->KeyName.arrayLen < xmldsigKeyInfoType_KeyName_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen); + if (errn == 0) { + if (xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen >= 2) { + xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].charactersLen, xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType->KeyName.arrayLen].characters, xmldsigKeyInfoType_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigKeyInfoType->KeyName.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 70; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 1: + if (xmldsigKeyInfoType->KeyValue.arrayLen < xmldsigKeyInfoType_KeyValue_ARRAY_SIZE) { + errn = decode_xmldsigKeyValueType(stream, &xmldsigKeyInfoType->KeyValue.array[xmldsigKeyInfoType->KeyValue.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 2: + if (xmldsigKeyInfoType->RetrievalMethod.arrayLen < xmldsigKeyInfoType_RetrievalMethod_ARRAY_SIZE) { + errn = decode_xmldsigRetrievalMethodType(stream, &xmldsigKeyInfoType->RetrievalMethod.array[xmldsigKeyInfoType->RetrievalMethod.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 3: + if (xmldsigKeyInfoType->X509Data.arrayLen < xmldsigKeyInfoType_X509Data_ARRAY_SIZE) { + errn = decode_xmldsigX509DataType(stream, &xmldsigKeyInfoType->X509Data.array[xmldsigKeyInfoType->X509Data.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 4: + if (xmldsigKeyInfoType->PGPData.arrayLen < xmldsigKeyInfoType_PGPData_ARRAY_SIZE) { + errn = decode_xmldsigPGPDataType(stream, &xmldsigKeyInfoType->PGPData.array[xmldsigKeyInfoType->PGPData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 5: + if (xmldsigKeyInfoType->SPKIData.arrayLen < xmldsigKeyInfoType_SPKIData_ARRAY_SIZE) { + errn = decode_xmldsigSPKIDataType(stream, &xmldsigKeyInfoType->SPKIData.array[xmldsigKeyInfoType->SPKIData.arrayLen++]); + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + grammarID = 70; + break; + case 6: + if (xmldsigKeyInfoType->MgmtData.arrayLen < xmldsigKeyInfoType_MgmtData_ARRAY_SIZE) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen); + if (errn == 0) { + if (xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen >= 2) { + xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].charactersLen, xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType->MgmtData.arrayLen].characters, xmldsigKeyInfoType_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigKeyInfoType->MgmtData.arrayLen++; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + } else { + errn = EXI_ERROR_OUT_OF_BOUNDS; + } + if(errn == 0) { + /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(eventCode == 0) { + grammarID = 70; + } else { + errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */ + } + } + break; + case 7: + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + /* TODO unsupported event : START_ELEMENT_GENERIC */ + grammarID = 70; + break; + case 8: + errn = decodeUnsignedInteger16(stream, &xmldsigKeyInfoType->ANY.charactersLen); + if (errn == 0) { + if (xmldsigKeyInfoType->ANY.charactersLen >= 2) { + xmldsigKeyInfoType->ANY.charactersLen = (uint16_t)(xmldsigKeyInfoType->ANY.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, xmldsigKeyInfoType->ANY.charactersLen, xmldsigKeyInfoType->ANY.characters, xmldsigKeyInfoType_ANY_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + xmldsigKeyInfoType->ANY_isUsed = 1u; + grammarID = 71; + break; + default: + errn = EXI_ERROR_UNKOWN_EVENT_CODE; + break; + } + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + + + + +int decode_xmldsigExiDocument(bitstream_t* stream, struct xmldsigEXIDocument* exiDoc) { + errn = readEXIHeader(stream); + + if(errn == 0) { + /* DocContent[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] */ + init_xmldsigEXIDocument(exiDoc); + errn = decodeNBitUnsignedInteger(stream, 5, &eventCode); + if(errn == 0) { + switch(eventCode) { + case 0: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */ + errn = decode_xmldsigCanonicalizationMethodType(stream, &exiDoc->CanonicalizationMethod); + exiDoc->CanonicalizationMethod_isUsed = 1u; + break; + case 1: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */ + errn = decode_xmldsigDSAKeyValueType(stream, &exiDoc->DSAKeyValue); + exiDoc->DSAKeyValue_isUsed = 1u; + break; + case 2: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */ + errn = decode_xmldsigDigestMethodType(stream, &exiDoc->DigestMethod); + exiDoc->DigestMethod_isUsed = 1u; + break; + case 3: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiDoc->DigestValue.bytesLen); + if (errn == 0) { + errn = (exiDoc->DigestValue.bytesLen) <= EXIDocument_DigestValue_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiDoc->DigestValue.bytesLen, exiDoc->DigestValue.bytes); + } + exiDoc->DigestValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 4: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */ + errn = decode_xmldsigKeyInfoType(stream, &exiDoc->KeyInfo); + exiDoc->KeyInfo_isUsed = 1u; + break; + case 5: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiDoc->KeyName.charactersLen); + if (errn == 0) { + if (exiDoc->KeyName.charactersLen >= 2) { + exiDoc->KeyName.charactersLen = (uint16_t)(exiDoc->KeyName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiDoc->KeyName.charactersLen, exiDoc->KeyName.characters, EXIDocument_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiDoc->KeyName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 6: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */ + errn = decode_xmldsigKeyValueType(stream, &exiDoc->KeyValue); + exiDoc->KeyValue_isUsed = 1u; + break; + case 7: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */ + errn = decode_xmldsigManifestType(stream, &exiDoc->Manifest); + exiDoc->Manifest_isUsed = 1u; + break; + case 8: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiDoc->MgmtData.charactersLen); + if (errn == 0) { + if (exiDoc->MgmtData.charactersLen >= 2) { + exiDoc->MgmtData.charactersLen = (uint16_t)(exiDoc->MgmtData.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiDoc->MgmtData.charactersLen, exiDoc->MgmtData.characters, EXIDocument_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiDoc->MgmtData_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 9: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */ + errn = decode_xmldsigObjectType(stream, &exiDoc->Object); + exiDoc->Object_isUsed = 1u; + break; + case 10: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */ + errn = decode_xmldsigPGPDataType(stream, &exiDoc->PGPData); + exiDoc->PGPData_isUsed = 1u; + break; + case 11: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */ + errn = decode_xmldsigRSAKeyValueType(stream, &exiDoc->RSAKeyValue); + exiDoc->RSAKeyValue_isUsed = 1u; + break; + case 12: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */ + errn = decode_xmldsigReferenceType(stream, &exiDoc->Reference); + exiDoc->Reference_isUsed = 1u; + break; + case 13: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */ + errn = decode_xmldsigRetrievalMethodType(stream, &exiDoc->RetrievalMethod); + exiDoc->RetrievalMethod_isUsed = 1u; + break; + case 14: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */ + errn = decode_xmldsigSPKIDataType(stream, &exiDoc->SPKIData); + exiDoc->SPKIData_isUsed = 1u; + break; + case 15: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */ + errn = decode_xmldsigSignatureType(stream, &exiDoc->Signature); + exiDoc->Signature_isUsed = 1u; + break; + case 16: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */ + errn = decode_xmldsigSignatureMethodType(stream, &exiDoc->SignatureMethod); + exiDoc->SignatureMethod_isUsed = 1u; + break; + case 17: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */ + errn = decode_xmldsigSignaturePropertiesType(stream, &exiDoc->SignatureProperties); + exiDoc->SignatureProperties_isUsed = 1u; + break; + case 18: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */ + errn = decode_xmldsigSignaturePropertyType(stream, &exiDoc->SignatureProperty); + exiDoc->SignatureProperty_isUsed = 1u; + break; + case 19: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */ + errn = decode_xmldsigSignatureValueType(stream, &exiDoc->SignatureValue); + exiDoc->SignatureValue_isUsed = 1u; + break; + case 20: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */ + errn = decode_xmldsigSignedInfoType(stream, &exiDoc->SignedInfo); + exiDoc->SignedInfo_isUsed = 1u; + break; + case 21: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */ + errn = decode_xmldsigTransformType(stream, &exiDoc->Transform); + exiDoc->Transform_isUsed = 1u; + break; + case 22: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */ + errn = decode_xmldsigTransformsType(stream, &exiDoc->Transforms); + exiDoc->Transforms_isUsed = 1u; + break; + case 23: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */ + errn = decode_xmldsigX509DataType(stream, &exiDoc->X509Data); + exiDoc->X509Data_isUsed = 1u; + break; + default: + errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; + break; + } + } + + } + + (void)exiDoc; /* avoid unused warning */ + (void)eventCode; /* avoid unused warning */ + (void)uint32; /* avoid unused warning */ + + return errn; +} + +#if DEPLOY_XMLDSIG_CODEC_FRAGMENT == SUPPORT_YES +int decode_xmldsigExiFragment(bitstream_t* stream, struct xmldsigEXIFragment* exiFrag) { + errn = readEXIHeader(stream); + + if(errn == 0) { + /* FragmentContent[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT_GENERIC, END_DOCUMENT] */ + init_xmldsigEXIFragment(exiFrag); + errn = decodeNBitUnsignedInteger(stream, 6, &eventCode); + if(errn == 0) { + switch(eventCode) { + case 0: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */ + errn = decode_xmldsigCanonicalizationMethodType(stream, &exiFrag->CanonicalizationMethod); + exiFrag->CanonicalizationMethod_isUsed = 1u; + break; + case 1: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */ + errn = decode_xmldsigDSAKeyValueType(stream, &exiFrag->DSAKeyValue); + exiFrag->DSAKeyValue_isUsed = 1u; + break; + case 2: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */ + errn = decode_xmldsigDigestMethodType(stream, &exiFrag->DigestMethod); + exiFrag->DigestMethod_isUsed = 1u; + break; + case 3: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->DigestValue.bytesLen); + if (errn == 0) { + errn = (exiFrag->DigestValue.bytesLen) <= EXIFragment_DigestValue_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->DigestValue.bytesLen, exiFrag->DigestValue.bytes); + } + exiFrag->DigestValue_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 4: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Exponent.bytesLen); + if (errn == 0) { + errn = (exiFrag->Exponent.bytesLen) <= EXIFragment_Exponent_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Exponent.bytesLen, exiFrag->Exponent.bytes); + } + exiFrag->Exponent_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 5: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->G.bytesLen); + if (errn == 0) { + errn = (exiFrag->G.bytesLen) <= EXIFragment_G_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->G.bytesLen, exiFrag->G.bytes); + } + exiFrag->G_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 6: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) */ + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &exiFrag->HMACOutputLength); + exiFrag->HMACOutputLength_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 7: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->J.bytesLen); + if (errn == 0) { + errn = (exiFrag->J.bytesLen) <= EXIFragment_J_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->J.bytesLen, exiFrag->J.bytes); + } + exiFrag->J_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 8: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */ + errn = decode_xmldsigKeyInfoType(stream, &exiFrag->KeyInfo); + exiFrag->KeyInfo_isUsed = 1u; + break; + case 9: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->KeyName.charactersLen); + if (errn == 0) { + if (exiFrag->KeyName.charactersLen >= 2) { + exiFrag->KeyName.charactersLen = (uint16_t)(exiFrag->KeyName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->KeyName.charactersLen, exiFrag->KeyName.characters, EXIFragment_KeyName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->KeyName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 10: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */ + errn = decode_xmldsigKeyValueType(stream, &exiFrag->KeyValue); + exiFrag->KeyValue_isUsed = 1u; + break; + case 11: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */ + errn = decode_xmldsigManifestType(stream, &exiFrag->Manifest); + exiFrag->Manifest_isUsed = 1u; + break; + case 12: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->MgmtData.charactersLen); + if (errn == 0) { + if (exiFrag->MgmtData.charactersLen >= 2) { + exiFrag->MgmtData.charactersLen = (uint16_t)(exiFrag->MgmtData.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->MgmtData.charactersLen, exiFrag->MgmtData.characters, EXIFragment_MgmtData_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->MgmtData_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 13: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Modulus.bytesLen); + if (errn == 0) { + errn = (exiFrag->Modulus.bytesLen) <= EXIFragment_Modulus_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Modulus.bytesLen, exiFrag->Modulus.bytes); + } + exiFrag->Modulus_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 14: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */ + errn = decode_xmldsigObjectType(stream, &exiFrag->Object); + exiFrag->Object_isUsed = 1u; + break; + case 15: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->P.bytesLen); + if (errn == 0) { + errn = (exiFrag->P.bytesLen) <= EXIFragment_P_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->P.bytesLen, exiFrag->P.bytes); + } + exiFrag->P_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 16: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */ + errn = decode_xmldsigPGPDataType(stream, &exiFrag->PGPData); + exiFrag->PGPData_isUsed = 1u; + break; + case 17: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->PGPKeyID.bytesLen); + if (errn == 0) { + errn = (exiFrag->PGPKeyID.bytesLen) <= EXIFragment_PGPKeyID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->PGPKeyID.bytesLen, exiFrag->PGPKeyID.bytes); + } + exiFrag->PGPKeyID_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 18: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) */ + errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name PGPKeyPacket */ + break; + case 19: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->PgenCounter.bytesLen); + if (errn == 0) { + errn = (exiFrag->PgenCounter.bytesLen) <= EXIFragment_PgenCounter_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->PgenCounter.bytesLen, exiFrag->PgenCounter.bytes); + } + exiFrag->PgenCounter_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 20: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Q.bytesLen); + if (errn == 0) { + errn = (exiFrag->Q.bytesLen) <= EXIFragment_Q_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Q.bytesLen, exiFrag->Q.bytes); + } + exiFrag->Q_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 21: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */ + errn = decode_xmldsigRSAKeyValueType(stream, &exiFrag->RSAKeyValue); + exiFrag->RSAKeyValue_isUsed = 1u; + break; + case 22: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */ + errn = decode_xmldsigReferenceType(stream, &exiFrag->Reference); + exiFrag->Reference_isUsed = 1u; + break; + case 23: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */ + errn = decode_xmldsigRetrievalMethodType(stream, &exiFrag->RetrievalMethod); + exiFrag->RetrievalMethod_isUsed = 1u; + break; + case 24: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */ + errn = decode_xmldsigSPKIDataType(stream, &exiFrag->SPKIData); + exiFrag->SPKIData_isUsed = 1u; + break; + case 25: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->SPKISexp.bytesLen); + if (errn == 0) { + errn = (exiFrag->SPKISexp.bytesLen) <= EXIFragment_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->SPKISexp.bytesLen, exiFrag->SPKISexp.bytes); + } + exiFrag->SPKISexp_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 26: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Seed.bytesLen); + if (errn == 0) { + errn = (exiFrag->Seed.bytesLen) <= EXIFragment_Seed_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Seed.bytesLen, exiFrag->Seed.bytes); + } + exiFrag->Seed_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 27: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */ + errn = decode_xmldsigSignatureType(stream, &exiFrag->Signature); + exiFrag->Signature_isUsed = 1u; + break; + case 28: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */ + errn = decode_xmldsigSignatureMethodType(stream, &exiFrag->SignatureMethod); + exiFrag->SignatureMethod_isUsed = 1u; + break; + case 29: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */ + errn = decode_xmldsigSignaturePropertiesType(stream, &exiFrag->SignatureProperties); + exiFrag->SignatureProperties_isUsed = 1u; + break; + case 30: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */ + errn = decode_xmldsigSignaturePropertyType(stream, &exiFrag->SignatureProperty); + exiFrag->SignatureProperty_isUsed = 1u; + break; + case 31: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */ + errn = decode_xmldsigSignatureValueType(stream, &exiFrag->SignatureValue); + exiFrag->SignatureValue_isUsed = 1u; + break; + case 32: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */ + errn = decode_xmldsigSignedInfoType(stream, &exiFrag->SignedInfo); + exiFrag->SignedInfo_isUsed = 1u; + break; + case 33: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */ + errn = decode_xmldsigTransformType(stream, &exiFrag->Transform); + exiFrag->Transform_isUsed = 1u; + break; + case 34: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */ + errn = decode_xmldsigTransformsType(stream, &exiFrag->Transforms); + exiFrag->Transforms_isUsed = 1u; + break; + case 35: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509CRL.bytesLen); + if (errn == 0) { + errn = (exiFrag->X509CRL.bytesLen) <= EXIFragment_X509CRL_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->X509CRL.bytesLen, exiFrag->X509CRL.bytes); + } + exiFrag->X509CRL_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 36: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509Certificate.bytesLen); + if (errn == 0) { + errn = (exiFrag->X509Certificate.bytesLen) <= EXIFragment_X509Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->X509Certificate.bytesLen, exiFrag->X509Certificate.bytes); + } + exiFrag->X509Certificate_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 37: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */ + errn = decode_xmldsigX509DataType(stream, &exiFrag->X509Data); + exiFrag->X509Data_isUsed = 1u; + break; + case 38: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509IssuerName.charactersLen); + if (errn == 0) { + if (exiFrag->X509IssuerName.charactersLen >= 2) { + exiFrag->X509IssuerName.charactersLen = (uint16_t)(exiFrag->X509IssuerName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->X509IssuerName.charactersLen, exiFrag->X509IssuerName.characters, EXIFragment_X509IssuerName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->X509IssuerName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 39: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial) */ + errn = decode_xmldsigX509IssuerSerialType(stream, &exiFrag->X509IssuerSerial); + exiFrag->X509IssuerSerial_isUsed = 1u; + break; + case 40: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) */ + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509SKI.bytesLen); + if (errn == 0) { + errn = (exiFrag->X509SKI.bytesLen) <= EXIFragment_X509SKI_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->X509SKI.bytesLen, exiFrag->X509SKI.bytes); + } + exiFrag->X509SKI_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 41: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber) */ + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeInteger64(stream, &exiFrag->X509SerialNumber); + exiFrag->X509SerialNumber_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 42: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->X509SubjectName.charactersLen); + if (errn == 0) { + if (exiFrag->X509SubjectName.charactersLen >= 2) { + exiFrag->X509SubjectName.charactersLen = (uint16_t)(exiFrag->X509SubjectName.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->X509SubjectName.charactersLen, exiFrag->X509SubjectName.characters, EXIFragment_X509SubjectName_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->X509SubjectName_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 43: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) */ + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->XPath.charactersLen); + if (errn == 0) { + if (exiFrag->XPath.charactersLen >= 2) { + exiFrag->XPath.charactersLen = (uint16_t)(exiFrag->XPath.charactersLen - 2); /* string table miss */ + errn = decodeCharacters(stream, exiFrag->XPath.charactersLen, exiFrag->XPath.characters, EXIFragment_XPath_CHARACTERS_SIZE); + } else { + /* string table hit */ + errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED; + } + } + exiFrag->XPath_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + case 44: + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) */ + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = decodeNBitUnsignedInteger(stream, 1, &eventCode); + if(errn == 0) { + if(eventCode == 0) { + errn = decodeUnsignedInteger16(stream, &exiFrag->Y.bytesLen); + if (errn == 0) { + errn = (exiFrag->Y.bytesLen) <= EXIFragment_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER; + } + if (errn == 0) { + errn = decodeBytes(stream, exiFrag->Y.bytesLen, exiFrag->Y.bytes); + } + exiFrag->Y_isUsed = 1u; + } else { + /* Second level event (e.g., xsi:type, xsi:nil, ...) */ + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + } + } + break; + default: + errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; + break; + } + } + if(errn == 0) { + /* EndDocument */ + errn = decodeNBitUnsignedInteger(stream, 6, &eventCode); + if (eventCode != 46) { + errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; + } + } + + } + + (void)exiFrag; /* avoid unused warning */ + + return errn; +} +#endif /* DEPLOY_XMLDSIG_CODEC_FRAGMENT */ + + +#endif /* DEPLOY_XMLDSIG_CODEC */ + +#endif + diff --git a/csharp/vc2022/src/xmldsig/xmldsigEXIDatatypesDecoder.h b/csharp/vc2022/src/xmldsig/xmldsigEXIDatatypesDecoder.h new file mode 100644 index 0000000..5c61d90 --- /dev/null +++ b/csharp/vc2022/src/xmldsig/xmldsigEXIDatatypesDecoder.h @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: xmldsig-core-schema.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIDatatypesDecoder.h + * \brief Decoder for datatype definitions + * + */ + +#ifndef EXI_xmldsig_DATATYPES_DECODER_H +#define EXI_xmldsig_DATATYPES_DECODER_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "xmldsigEXIDatatypes.h" + +#if DEPLOY_XMLDSIG_CODEC == SUPPORT_YES + +#include + +#include "EXITypes.h" + +int decode_xmldsigExiDocument(bitstream_t* stream, struct xmldsigEXIDocument* exiDoc); + +#if DEPLOY_XMLDSIG_CODEC_FRAGMENT == SUPPORT_YES +int decode_xmldsigExiFragment(bitstream_t* stream, struct xmldsigEXIFragment* exiFrag); +#endif /* DEPLOY_XMLDSIG_CODEC_FRAGMENT */ + +#endif /* DEPLOY_XMLDSIG_CODEC */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/csharp/vc2022/src/xmldsig/xmldsigEXIDatatypesEncoder.c b/csharp/vc2022/src/xmldsig/xmldsigEXIDatatypesEncoder.c new file mode 100644 index 0000000..1fc92d2 --- /dev/null +++ b/csharp/vc2022/src/xmldsig/xmldsigEXIDatatypesEncoder.c @@ -0,0 +1,3589 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: xmldsig-core-schema.xsd

+ * + * + ********************************************************************/ + + + + +#include "xmldsigEXIDatatypesEncoder.h" + +#include "EncoderChannel.h" +#include "EXIHeaderEncoder.h" + +#include "xmldsigEXIDatatypes.h" +#include "ErrorCodes.h" + +#ifndef EXI_xmldsig_DATATYPES_ENCODER_C +#define EXI_xmldsig_DATATYPES_ENCODER_C + +#if DEPLOY_XMLDSIG_CODEC == SUPPORT_YES + +static int errn; + +/* Forward Declarations */ +static int encode_xmldsigCanonicalizationMethodType(bitstream_t* stream, struct xmldsigCanonicalizationMethodType* xmldsigCanonicalizationMethodType); +static int encode_xmldsigManifestType(bitstream_t* stream, struct xmldsigManifestType* xmldsigManifestType); +static int encode_xmldsigObjectType(bitstream_t* stream, struct xmldsigObjectType* xmldsigObjectType); +static int encode_xmldsigTransformType(bitstream_t* stream, struct xmldsigTransformType* xmldsigTransformType); +static int encode_xmldsigSignatureMethodType(bitstream_t* stream, struct xmldsigSignatureMethodType* xmldsigSignatureMethodType); +static int encode_xmldsigDigestMethodType(bitstream_t* stream, struct xmldsigDigestMethodType* xmldsigDigestMethodType); +static int encode_xmldsigRetrievalMethodType(bitstream_t* stream, struct xmldsigRetrievalMethodType* xmldsigRetrievalMethodType); +static int encode_xmldsigSignatureValueType(bitstream_t* stream, struct xmldsigSignatureValueType* xmldsigSignatureValueType); +static int encode_xmldsigX509IssuerSerialType(bitstream_t* stream, struct xmldsigX509IssuerSerialType* xmldsigX509IssuerSerialType); +static int encode_xmldsigSignedInfoType(bitstream_t* stream, struct xmldsigSignedInfoType* xmldsigSignedInfoType); +static int encode_xmldsigSignaturePropertiesType(bitstream_t* stream, struct xmldsigSignaturePropertiesType* xmldsigSignaturePropertiesType); +static int encode_xmldsigSignaturePropertyType(bitstream_t* stream, struct xmldsigSignaturePropertyType* xmldsigSignaturePropertyType); +static int encode_xmldsigKeyValueType(bitstream_t* stream, struct xmldsigKeyValueType* xmldsigKeyValueType); +static int encode_xmldsigRSAKeyValueType(bitstream_t* stream, struct xmldsigRSAKeyValueType* xmldsigRSAKeyValueType); +static int encode_xmldsigPGPDataType(bitstream_t* stream, struct xmldsigPGPDataType* xmldsigPGPDataType); +static int encode_xmldsigTransformsType(bitstream_t* stream, struct xmldsigTransformsType* xmldsigTransformsType); +static int encode_xmldsigX509DataType(bitstream_t* stream, struct xmldsigX509DataType* xmldsigX509DataType); +static int encode_xmldsigSignatureType(bitstream_t* stream, struct xmldsigSignatureType* xmldsigSignatureType); +static int encode_xmldsigDSAKeyValueType(bitstream_t* stream, struct xmldsigDSAKeyValueType* xmldsigDSAKeyValueType); +static int encode_xmldsigReferenceType(bitstream_t* stream, struct xmldsigReferenceType* xmldsigReferenceType); +static int encode_xmldsigSPKIDataType(bitstream_t* stream, struct xmldsigSPKIDataType* xmldsigSPKIDataType); +static int encode_xmldsigKeyInfoType(bitstream_t* stream, struct xmldsigKeyInfoType* xmldsigKeyInfoType); + + + /* Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_xmldsigCanonicalizationMethodType(bitstream_t* stream, struct xmldsigCanonicalizationMethodType* xmldsigCanonicalizationMethodType) { + int grammarID = 0; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 0: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigCanonicalizationMethodType->Algorithm.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigCanonicalizationMethodType->Algorithm.characters, xmldsigCanonicalizationMethodType->Algorithm.charactersLen); + } + } + grammarID = 1; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 2; + } else if ( xmldsigCanonicalizationMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else if ( xmldsigCanonicalizationMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigCanonicalizationMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigCanonicalizationMethodType->ANY.characters, xmldsigCanonicalizationMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 2; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 2; + } else if ( xmldsigCanonicalizationMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else if ( xmldsigCanonicalizationMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigCanonicalizationMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigCanonicalizationMethodType->ANY.characters, xmldsigCanonicalizationMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 2; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ManifestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_xmldsigManifestType(bitstream_t* stream, struct xmldsigManifestType* xmldsigManifestType) { + int grammarID = 4; + int done = 0; + + unsigned int xmldsigManifestType_Reference_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 4: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + if ( xmldsigManifestType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigManifestType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigManifestType->Id.characters, xmldsigManifestType->Id.charactersLen); + } + } + grammarID = 5; + } else if (xmldsigManifestType_Reference_currArrayIndex < xmldsigManifestType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_xmldsigReferenceType(stream, &xmldsigManifestType->Reference.array [xmldsigManifestType_Reference_currArrayIndex++]); + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 5: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + if (xmldsigManifestType_Reference_currArrayIndex < xmldsigManifestType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_xmldsigReferenceType(stream, &xmldsigManifestType->Reference.array [xmldsigManifestType_Reference_currArrayIndex++]); + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 6: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ + if (xmldsigManifestType_Reference_currArrayIndex < xmldsigManifestType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_xmldsigReferenceType(stream, &xmldsigManifestType->Reference.array [xmldsigManifestType_Reference_currArrayIndex++]); + } + grammarID = 6; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_xmldsigObjectType(bitstream_t* stream, struct xmldsigObjectType* xmldsigObjectType) { + int grammarID = 7; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 7: + /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( xmldsigObjectType->Encoding_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigObjectType->Encoding.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigObjectType->Encoding.characters, xmldsigObjectType->Encoding.charactersLen); + } + } + grammarID = 8; + } else if ( xmldsigObjectType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigObjectType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigObjectType->Id.characters, xmldsigObjectType->Id.charactersLen); + } + } + grammarID = 9; + } else if ( xmldsigObjectType->MimeType_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigObjectType->MimeType.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigObjectType->MimeType.characters, xmldsigObjectType->MimeType.charactersLen); + } + } + grammarID = 1; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 2; + } else if ( xmldsigObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else if ( xmldsigObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 5); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigObjectType->ANY.characters, xmldsigObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 2; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 8: + /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( xmldsigObjectType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigObjectType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigObjectType->Id.characters, xmldsigObjectType->Id.charactersLen); + } + } + grammarID = 9; + } else if ( xmldsigObjectType->MimeType_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigObjectType->MimeType.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigObjectType->MimeType.characters, xmldsigObjectType->MimeType.charactersLen); + } + } + grammarID = 1; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 2; + } else if ( xmldsigObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else if ( xmldsigObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigObjectType->ANY.characters, xmldsigObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 2; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 9: + /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( xmldsigObjectType->MimeType_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigObjectType->MimeType.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigObjectType->MimeType.characters, xmldsigObjectType->MimeType.charactersLen); + } + } + grammarID = 1; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 2; + } else if ( xmldsigObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else if ( xmldsigObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigObjectType->ANY.characters, xmldsigObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 2; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 2; + } else if ( xmldsigObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else if ( xmldsigObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigObjectType->ANY.characters, xmldsigObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 2; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 2; + } else if ( xmldsigObjectType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else if ( xmldsigObjectType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigObjectType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigObjectType->ANY.characters, xmldsigObjectType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 2; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_xmldsigTransformType(bitstream_t* stream, struct xmldsigTransformType* xmldsigTransformType) { + int grammarID = 10; + int done = 0; + int wcDone = 0; + + unsigned int xmldsigTransformType_XPath_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 10: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigTransformType->Algorithm.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigTransformType->Algorithm.characters, xmldsigTransformType->Algorithm.charactersLen); + } + } + grammarID = 11; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 11: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (xmldsigTransformType_XPath_currArrayIndex < xmldsigTransformType->XPath.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigTransformType->XPath.array[xmldsigTransformType_XPath_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigTransformType->XPath.array[xmldsigTransformType_XPath_currArrayIndex].characters, xmldsigTransformType->XPath.array[xmldsigTransformType_XPath_currArrayIndex].charactersLen); + xmldsigTransformType_XPath_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 12; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 12; + } else if ( xmldsigTransformType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else if ( xmldsigTransformType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigTransformType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigTransformType->ANY.characters, xmldsigTransformType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 12; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 12: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (xmldsigTransformType_XPath_currArrayIndex < xmldsigTransformType->XPath.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigTransformType->XPath.array[xmldsigTransformType_XPath_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigTransformType->XPath.array[xmldsigTransformType_XPath_currArrayIndex].characters, xmldsigTransformType->XPath.array[xmldsigTransformType_XPath_currArrayIndex].charactersLen); + xmldsigTransformType_XPath_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 12; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 12; + } else if ( xmldsigTransformType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else if ( xmldsigTransformType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigTransformType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigTransformType->ANY.characters, xmldsigTransformType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 12; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_xmldsigSignatureMethodType(bitstream_t* stream, struct xmldsigSignatureMethodType* xmldsigSignatureMethodType) { + int grammarID = 13; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 13: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSignatureMethodType->Algorithm.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigSignatureMethodType->Algorithm.characters, xmldsigSignatureMethodType->Algorithm.charactersLen); + } + } + grammarID = 14; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 14: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( xmldsigSignatureMethodType->HMACOutputLength_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, xmldsigSignatureMethodType->HMACOutputLength); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 2; + } else if ( xmldsigSignatureMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else if ( xmldsigSignatureMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSignatureMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigSignatureMethodType->ANY.characters, xmldsigSignatureMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 15; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 2; + } else if ( xmldsigSignatureMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else if ( xmldsigSignatureMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSignatureMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigSignatureMethodType->ANY.characters, xmldsigSignatureMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 2; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 15: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( xmldsigSignatureMethodType->HMACOutputLength_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, xmldsigSignatureMethodType->HMACOutputLength); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 2; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 2; + } else if ( xmldsigSignatureMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else if ( xmldsigSignatureMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSignatureMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigSignatureMethodType->ANY.characters, xmldsigSignatureMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 15; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_xmldsigDigestMethodType(bitstream_t* stream, struct xmldsigDigestMethodType* xmldsigDigestMethodType) { + int grammarID = 0; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 0: + /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigDigestMethodType->Algorithm.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigDigestMethodType->Algorithm.characters, xmldsigDigestMethodType->Algorithm.charactersLen); + } + } + grammarID = 1; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 1: + /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 2; + } else if ( xmldsigDigestMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else if ( xmldsigDigestMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigDigestMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigDigestMethodType->ANY.characters, xmldsigDigestMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 2; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 2; + } else if ( xmldsigDigestMethodType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else if ( xmldsigDigestMethodType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigDigestMethodType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigDigestMethodType->ANY.characters, xmldsigDigestMethodType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 2; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */ +static int encode_xmldsigRetrievalMethodType(bitstream_t* stream, struct xmldsigRetrievalMethodType* xmldsigRetrievalMethodType) { + int grammarID = 16; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 16: + /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + if ( xmldsigRetrievalMethodType->Type_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigRetrievalMethodType->Type.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigRetrievalMethodType->Type.characters, xmldsigRetrievalMethodType->Type.charactersLen); + } + } + grammarID = 17; + } else if ( xmldsigRetrievalMethodType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigRetrievalMethodType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigRetrievalMethodType->URI.characters, xmldsigRetrievalMethodType->URI.charactersLen); + } + } + grammarID = 18; + } else if ( xmldsigRetrievalMethodType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_xmldsigTransformsType(stream, &xmldsigRetrievalMethodType->Transforms ); + } + grammarID = 19; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 17: + /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + if ( xmldsigRetrievalMethodType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigRetrievalMethodType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigRetrievalMethodType->URI.characters, xmldsigRetrievalMethodType->URI.charactersLen); + } + } + grammarID = 18; + } else if ( xmldsigRetrievalMethodType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_xmldsigTransformsType(stream, &xmldsigRetrievalMethodType->Transforms ); + } + grammarID = 19; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 18: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ + if ( xmldsigRetrievalMethodType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_xmldsigTransformsType(stream, &xmldsigRetrievalMethodType->Transforms ); + } + grammarID = 19; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 19: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */ +static int encode_xmldsigSignatureValueType(bitstream_t* stream, struct xmldsigSignatureValueType* xmldsigSignatureValueType) { + int grammarID = 20; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 20: + /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */ + if ( xmldsigSignatureValueType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSignatureValueType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigSignatureValueType->Id.characters, xmldsigSignatureValueType->Id.charactersLen); + } + } + grammarID = 21; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSignatureValueType->CONTENT.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigSignatureValueType->CONTENT.bytes, xmldsigSignatureValueType->CONTENT.bytesLen); + } + } + grammarID = 19; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 21: + /* StartTag[CHARACTERS[BINARY_BASE64]] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSignatureValueType->CONTENT.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigSignatureValueType->CONTENT.bytes, xmldsigSignatureValueType->CONTENT.bytesLen); + } + } + grammarID = 19; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 19: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */ +static int encode_xmldsigX509IssuerSerialType(bitstream_t* stream, struct xmldsigX509IssuerSerialType* xmldsigX509IssuerSerialType) { + int grammarID = 22; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 22: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigX509IssuerSerialType->X509IssuerName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigX509IssuerSerialType->X509IssuerName.characters, xmldsigX509IssuerSerialType->X509IssuerName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 23; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 23: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, xmldsigX509IssuerSerialType->X509SerialNumber); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 19; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 19: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_xmldsigSignedInfoType(bitstream_t* stream, struct xmldsigSignedInfoType* xmldsigSignedInfoType) { + int grammarID = 24; + int done = 0; + + unsigned int xmldsigSignedInfoType_Reference_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 24: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ + if ( xmldsigSignedInfoType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSignedInfoType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigSignedInfoType->Id.characters, xmldsigSignedInfoType->Id.charactersLen); + } + } + grammarID = 25; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_xmldsigCanonicalizationMethodType(stream, &xmldsigSignedInfoType->CanonicalizationMethod ); + } + grammarID = 26; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 25: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_xmldsigCanonicalizationMethodType(stream, &xmldsigSignedInfoType->CanonicalizationMethod ); + } + grammarID = 26; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 26: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_xmldsigSignatureMethodType(stream, &xmldsigSignedInfoType->SignatureMethod ); + } + grammarID = 27; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 27: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ + if (xmldsigSignedInfoType_Reference_currArrayIndex < xmldsigSignedInfoType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_xmldsigReferenceType(stream, &xmldsigSignedInfoType->Reference.array [xmldsigSignedInfoType_Reference_currArrayIndex++]); + } + grammarID = 6; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 6: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ + if (xmldsigSignedInfoType_Reference_currArrayIndex < xmldsigSignedInfoType->Reference.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_xmldsigReferenceType(stream, &xmldsigSignedInfoType->Reference.array [xmldsigSignedInfoType_Reference_currArrayIndex++]); + } + grammarID = 6; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertiesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignatureProperty{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_xmldsigSignaturePropertiesType(bitstream_t* stream, struct xmldsigSignaturePropertiesType* xmldsigSignaturePropertiesType) { + int grammarID = 28; + int done = 0; + + unsigned int xmldsigSignaturePropertiesType_SignatureProperty_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 28: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ + if ( xmldsigSignaturePropertiesType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSignaturePropertiesType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigSignaturePropertiesType->Id.characters, xmldsigSignaturePropertiesType->Id.charactersLen); + } + } + grammarID = 29; + } else if (xmldsigSignaturePropertiesType_SignatureProperty_currArrayIndex < xmldsigSignaturePropertiesType->SignatureProperty.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_xmldsigSignaturePropertyType(stream, &xmldsigSignaturePropertiesType->SignatureProperty.array [xmldsigSignaturePropertiesType_SignatureProperty_currArrayIndex++]); + } + grammarID = 30; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 29: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ + if (xmldsigSignaturePropertiesType_SignatureProperty_currArrayIndex < xmldsigSignaturePropertiesType->SignatureProperty.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_xmldsigSignaturePropertyType(stream, &xmldsigSignaturePropertiesType->SignatureProperty.array [xmldsigSignaturePropertiesType_SignatureProperty_currArrayIndex++]); + } + grammarID = 30; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 30: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */ + if (xmldsigSignaturePropertiesType_SignatureProperty_currArrayIndex < xmldsigSignaturePropertiesType->SignatureProperty.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_xmldsigSignaturePropertyType(stream, &xmldsigSignaturePropertiesType->SignatureProperty.array [xmldsigSignaturePropertiesType_SignatureProperty_currArrayIndex++]); + } + grammarID = 30; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_xmldsigSignaturePropertyType(bitstream_t* stream, struct xmldsigSignaturePropertyType* xmldsigSignaturePropertyType) { + int grammarID = 31; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 31: + /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */ + if ( xmldsigSignaturePropertyType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSignaturePropertyType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigSignaturePropertyType->Id.characters, xmldsigSignaturePropertyType->Id.charactersLen); + } + } + grammarID = 32; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSignaturePropertyType->Target.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigSignaturePropertyType->Target.characters, xmldsigSignaturePropertyType->Target.charactersLen); + } + } + grammarID = 33; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 32: + /* StartTag[ATTRIBUTE[STRING](Target)] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSignaturePropertyType->Target.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigSignaturePropertyType->Target.characters, xmldsigSignaturePropertyType->Target.charactersLen); + } + } + grammarID = 33; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 33: + /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 2; + } else if ( xmldsigSignaturePropertyType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSignaturePropertyType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigSignaturePropertyType->ANY.characters, xmldsigSignaturePropertyType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 34; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 2: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 2; + } else if ( xmldsigSignaturePropertyType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else if ( xmldsigSignaturePropertyType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSignaturePropertyType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigSignaturePropertyType->ANY.characters, xmldsigSignaturePropertyType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 2; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 34: + /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 2; + } else if ( xmldsigSignaturePropertyType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSignaturePropertyType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigSignaturePropertyType->ANY.characters, xmldsigSignaturePropertyType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 34; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */ +static int encode_xmldsigKeyValueType(bitstream_t* stream, struct xmldsigKeyValueType* xmldsigKeyValueType) { + int grammarID = 35; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 35: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if ( xmldsigKeyValueType->DSAKeyValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_xmldsigDSAKeyValueType(stream, &xmldsigKeyValueType->DSAKeyValue ); + } + grammarID = 36; + } else if ( xmldsigKeyValueType->RSAKeyValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_xmldsigRSAKeyValueType(stream, &xmldsigKeyValueType->RSAKeyValue ); + } + grammarID = 36; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 36; + } else if ( xmldsigKeyValueType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigKeyValueType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigKeyValueType->ANY.characters, xmldsigKeyValueType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 37; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 36: + /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if ( xmldsigKeyValueType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else if ( xmldsigKeyValueType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigKeyValueType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigKeyValueType->ANY.characters, xmldsigKeyValueType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 36; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 37: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if ( xmldsigKeyValueType->DSAKeyValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_xmldsigDSAKeyValueType(stream, &xmldsigKeyValueType->DSAKeyValue ); + } + grammarID = 36; + } else if ( xmldsigKeyValueType->RSAKeyValue_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + errn = encode_xmldsigRSAKeyValueType(stream, &xmldsigKeyValueType->RSAKeyValue ); + } + grammarID = 36; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 36; + } else if ( xmldsigKeyValueType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigKeyValueType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigKeyValueType->ANY.characters, xmldsigKeyValueType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 37; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */ +static int encode_xmldsigRSAKeyValueType(bitstream_t* stream, struct xmldsigRSAKeyValueType* xmldsigRSAKeyValueType) { + int grammarID = 38; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 38: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigRSAKeyValueType->Modulus.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigRSAKeyValueType->Modulus.bytes, xmldsigRSAKeyValueType->Modulus.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 39; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 39: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigRSAKeyValueType->Exponent.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigRSAKeyValueType->Exponent.bytes, xmldsigRSAKeyValueType->Exponent.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 19; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 19: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */ +static int encode_xmldsigPGPDataType(bitstream_t* stream, struct xmldsigPGPDataType* xmldsigPGPDataType) { + int grammarID = 40; + int done = 0; + int wcDone = 0; + + + while(!done) { + switch(grammarID) { + case 40: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */ + if ( xmldsigPGPDataType->PGPKeyID_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigPGPDataType->PGPKeyID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigPGPDataType->PGPKeyID.bytes, xmldsigPGPDataType->PGPKeyID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 41; + } else if ( xmldsigPGPDataType->PGPKeyPacket_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigPGPDataType->PGPKeyPacket.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigPGPDataType->PGPKeyPacket.bytes, xmldsigPGPDataType->PGPKeyPacket.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 42; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 41: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */ + if ( xmldsigPGPDataType->PGPKeyPacket_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigPGPDataType->PGPKeyPacket.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigPGPDataType->PGPKeyPacket.bytes, xmldsigPGPDataType->PGPKeyPacket.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 42; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 42; + } else if ( xmldsigPGPDataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 42: + /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */ + if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 42; + } else if ( xmldsigPGPDataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_xmldsigTransformsType(bitstream_t* stream, struct xmldsigTransformsType* xmldsigTransformsType) { + int grammarID = 43; + int done = 0; + + unsigned int xmldsigTransformsType_Transform_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 43: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */ + if (xmldsigTransformsType_Transform_currArrayIndex < xmldsigTransformsType->Transform.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_xmldsigTransformType(stream, &xmldsigTransformsType->Transform.array [xmldsigTransformsType_Transform_currArrayIndex++]); + } + grammarID = 44; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 44: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */ + if (xmldsigTransformsType_Transform_currArrayIndex < xmldsigTransformsType->Transform.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_xmldsigTransformType(stream, &xmldsigTransformsType->Transform.array [xmldsigTransformsType_Transform_currArrayIndex++]); + } + grammarID = 44; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_xmldsigX509DataType(bitstream_t* stream, struct xmldsigX509DataType* xmldsigX509DataType) { + int grammarID = 45; + int done = 0; + int wcDone = 0; + + unsigned int xmldsigX509DataType_X509IssuerSerial_currArrayIndex = 0; + unsigned int xmldsigX509DataType_X509SKI_currArrayIndex = 0; + unsigned int xmldsigX509DataType_X509SubjectName_currArrayIndex = 0; + unsigned int xmldsigX509DataType_X509Certificate_currArrayIndex = 0; + unsigned int xmldsigX509DataType_X509CRL_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 45: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */ + if (xmldsigX509DataType_X509IssuerSerial_currArrayIndex < xmldsigX509DataType->X509IssuerSerial.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_xmldsigX509IssuerSerialType(stream, &xmldsigX509DataType->X509IssuerSerial.array [xmldsigX509DataType_X509IssuerSerial_currArrayIndex++]); + } + grammarID = 46; + } else if (xmldsigX509DataType_X509SKI_currArrayIndex < xmldsigX509DataType->X509SKI.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigX509DataType->X509SKI.array[xmldsigX509DataType_X509SKI_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigX509DataType->X509SKI.array[xmldsigX509DataType_X509SKI_currArrayIndex].bytes, xmldsigX509DataType->X509SKI.array[xmldsigX509DataType_X509SKI_currArrayIndex].bytesLen); + xmldsigX509DataType_X509SKI_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 46; + } else if (xmldsigX509DataType_X509SubjectName_currArrayIndex < xmldsigX509DataType->X509SubjectName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigX509DataType->X509SubjectName.array[xmldsigX509DataType_X509SubjectName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigX509DataType->X509SubjectName.array[xmldsigX509DataType_X509SubjectName_currArrayIndex].characters, xmldsigX509DataType->X509SubjectName.array[xmldsigX509DataType_X509SubjectName_currArrayIndex].charactersLen); + xmldsigX509DataType_X509SubjectName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 46; + } else if (xmldsigX509DataType_X509Certificate_currArrayIndex < xmldsigX509DataType->X509Certificate.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigX509DataType->X509Certificate.array[xmldsigX509DataType_X509Certificate_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigX509DataType->X509Certificate.array[xmldsigX509DataType_X509Certificate_currArrayIndex].bytes, xmldsigX509DataType->X509Certificate.array[xmldsigX509DataType_X509Certificate_currArrayIndex].bytesLen); + xmldsigX509DataType_X509Certificate_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 46; + } else if (xmldsigX509DataType_X509CRL_currArrayIndex < xmldsigX509DataType->X509CRL.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigX509DataType->X509CRL.array[xmldsigX509DataType_X509CRL_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigX509DataType->X509CRL.array[xmldsigX509DataType_X509CRL_currArrayIndex].bytes, xmldsigX509DataType->X509CRL.array[xmldsigX509DataType_X509CRL_currArrayIndex].bytesLen); + xmldsigX509DataType_X509CRL_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 46; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 46; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 46: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */ + if (xmldsigX509DataType_X509IssuerSerial_currArrayIndex < xmldsigX509DataType->X509IssuerSerial.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + errn = encode_xmldsigX509IssuerSerialType(stream, &xmldsigX509DataType->X509IssuerSerial.array [xmldsigX509DataType_X509IssuerSerial_currArrayIndex++]); + } + grammarID = 46; + } else if (xmldsigX509DataType_X509SKI_currArrayIndex < xmldsigX509DataType->X509SKI.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigX509DataType->X509SKI.array[xmldsigX509DataType_X509SKI_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigX509DataType->X509SKI.array[xmldsigX509DataType_X509SKI_currArrayIndex].bytes, xmldsigX509DataType->X509SKI.array[xmldsigX509DataType_X509SKI_currArrayIndex].bytesLen); + xmldsigX509DataType_X509SKI_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 46; + } else if (xmldsigX509DataType_X509SubjectName_currArrayIndex < xmldsigX509DataType->X509SubjectName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigX509DataType->X509SubjectName.array[xmldsigX509DataType_X509SubjectName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigX509DataType->X509SubjectName.array[xmldsigX509DataType_X509SubjectName_currArrayIndex].characters, xmldsigX509DataType->X509SubjectName.array[xmldsigX509DataType_X509SubjectName_currArrayIndex].charactersLen); + xmldsigX509DataType_X509SubjectName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 46; + } else if (xmldsigX509DataType_X509Certificate_currArrayIndex < xmldsigX509DataType->X509Certificate.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigX509DataType->X509Certificate.array[xmldsigX509DataType_X509Certificate_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigX509DataType->X509Certificate.array[xmldsigX509DataType_X509Certificate_currArrayIndex].bytes, xmldsigX509DataType->X509Certificate.array[xmldsigX509DataType_X509Certificate_currArrayIndex].bytesLen); + xmldsigX509DataType_X509Certificate_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 46; + } else if (xmldsigX509DataType_X509CRL_currArrayIndex < xmldsigX509DataType->X509CRL.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigX509DataType->X509CRL.array[xmldsigX509DataType_X509CRL_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigX509DataType->X509CRL.array[xmldsigX509DataType_X509CRL_currArrayIndex].bytes, xmldsigX509DataType->X509CRL.array[xmldsigX509DataType_X509CRL_currArrayIndex].bytesLen); + xmldsigX509DataType_X509CRL_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 46; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 46; + } else if ( xmldsigX509DataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 3, 6); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */ +static int encode_xmldsigSignatureType(bitstream_t* stream, struct xmldsigSignatureType* xmldsigSignatureType) { + int grammarID = 47; + int done = 0; + + unsigned int xmldsigSignatureType_Object_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 47: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ + if ( xmldsigSignatureType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSignatureType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigSignatureType->Id.characters, xmldsigSignatureType->Id.charactersLen); + } + } + grammarID = 48; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_xmldsigSignedInfoType(stream, &xmldsigSignatureType->SignedInfo ); + } + grammarID = 49; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 48: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_xmldsigSignedInfoType(stream, &xmldsigSignatureType->SignedInfo ); + } + grammarID = 49; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 49: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_xmldsigSignatureValueType(stream, &xmldsigSignatureType->SignatureValue ); + } + grammarID = 50; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 50: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ + if ( xmldsigSignatureType->KeyInfo_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_xmldsigKeyInfoType(stream, &xmldsigSignatureType->KeyInfo ); + } + grammarID = 51; + } else if (xmldsigSignatureType_Object_currArrayIndex < xmldsigSignatureType->Object.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_xmldsigObjectType(stream, &xmldsigSignatureType->Object.array [xmldsigSignatureType_Object_currArrayIndex++]); + } + grammarID = 51; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 51: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ + if (xmldsigSignatureType_Object_currArrayIndex < xmldsigSignatureType->Object.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_xmldsigObjectType(stream, &xmldsigSignatureType->Object.array [xmldsigSignatureType_Object_currArrayIndex++]); + } + grammarID = 51; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */ +static int encode_xmldsigDSAKeyValueType(bitstream_t* stream, struct xmldsigDSAKeyValueType* xmldsigDSAKeyValueType) { + int grammarID = 52; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 52: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + if ( xmldsigDSAKeyValueType->P_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigDSAKeyValueType->P.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigDSAKeyValueType->P.bytes, xmldsigDSAKeyValueType->P.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 53; + } else if ( xmldsigDSAKeyValueType->G_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigDSAKeyValueType->G.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigDSAKeyValueType->G.bytes, xmldsigDSAKeyValueType->G.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 54; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigDSAKeyValueType->Y.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigDSAKeyValueType->Y.bytes, xmldsigDSAKeyValueType->Y.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 55; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 53: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */ + if ( xmldsigDSAKeyValueType->Q_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigDSAKeyValueType->Q.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigDSAKeyValueType->Q.bytes, xmldsigDSAKeyValueType->Q.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 56; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 56: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + if ( xmldsigDSAKeyValueType->G_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigDSAKeyValueType->G.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigDSAKeyValueType->G.bytes, xmldsigDSAKeyValueType->G.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 54; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigDSAKeyValueType->Y.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigDSAKeyValueType->Y.bytes, xmldsigDSAKeyValueType->Y.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 55; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 54: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigDSAKeyValueType->Y.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigDSAKeyValueType->Y.bytes, xmldsigDSAKeyValueType->Y.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 55; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 55: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ + if ( xmldsigDSAKeyValueType->J_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigDSAKeyValueType->J.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigDSAKeyValueType->J.bytes, xmldsigDSAKeyValueType->J.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 57; + } else if ( xmldsigDSAKeyValueType->Seed_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigDSAKeyValueType->Seed.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigDSAKeyValueType->Seed.bytes, xmldsigDSAKeyValueType->Seed.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 58; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 57: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ + if ( xmldsigDSAKeyValueType->Seed_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigDSAKeyValueType->Seed.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigDSAKeyValueType->Seed.bytes, xmldsigDSAKeyValueType->Seed.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 58; + } else if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 58: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */ + if ( xmldsigDSAKeyValueType->PgenCounter_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigDSAKeyValueType->PgenCounter.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigDSAKeyValueType->PgenCounter.bytes, xmldsigDSAKeyValueType->PgenCounter.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 19; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 19: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */ +static int encode_xmldsigReferenceType(bitstream_t* stream, struct xmldsigReferenceType* xmldsigReferenceType) { + int grammarID = 59; + int done = 0; + + + while(!done) { + switch(grammarID) { + case 59: + /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( xmldsigReferenceType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigReferenceType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigReferenceType->Id.characters, xmldsigReferenceType->Id.charactersLen); + } + } + grammarID = 60; + } else if ( xmldsigReferenceType->Type_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigReferenceType->Type.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigReferenceType->Type.characters, xmldsigReferenceType->Type.charactersLen); + } + } + grammarID = 61; + } else if ( xmldsigReferenceType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigReferenceType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigReferenceType->URI.characters, xmldsigReferenceType->URI.charactersLen); + } + } + grammarID = 62; + } else if ( xmldsigReferenceType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_xmldsigTransformsType(stream, &xmldsigReferenceType->Transforms ); + } + grammarID = 63; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 4); + if(errn == 0) { + errn = encode_xmldsigDigestMethodType(stream, &xmldsigReferenceType->DigestMethod ); + } + grammarID = 64; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 60: + /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( xmldsigReferenceType->Type_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigReferenceType->Type.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigReferenceType->Type.characters, xmldsigReferenceType->Type.charactersLen); + } + } + grammarID = 61; + } else if ( xmldsigReferenceType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 1); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigReferenceType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigReferenceType->URI.characters, xmldsigReferenceType->URI.charactersLen); + } + } + grammarID = 62; + } else if ( xmldsigReferenceType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 3, 2); + if(errn == 0) { + errn = encode_xmldsigTransformsType(stream, &xmldsigReferenceType->Transforms ); + } + grammarID = 63; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 3, 3); + if(errn == 0) { + errn = encode_xmldsigDigestMethodType(stream, &xmldsigReferenceType->DigestMethod ); + } + grammarID = 64; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 61: + /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( xmldsigReferenceType->URI_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigReferenceType->URI.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigReferenceType->URI.characters, xmldsigReferenceType->URI.charactersLen); + } + } + grammarID = 62; + } else if ( xmldsigReferenceType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_xmldsigTransformsType(stream, &xmldsigReferenceType->Transforms ); + } + grammarID = 63; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + errn = encode_xmldsigDigestMethodType(stream, &xmldsigReferenceType->DigestMethod ); + } + grammarID = 64; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 62: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( xmldsigReferenceType->Transforms_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + errn = encode_xmldsigTransformsType(stream, &xmldsigReferenceType->Transforms ); + } + grammarID = 63; + } else if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + errn = encode_xmldsigDigestMethodType(stream, &xmldsigReferenceType->DigestMethod ); + } + grammarID = 64; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 63: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encode_xmldsigDigestMethodType(stream, &xmldsigReferenceType->DigestMethod ); + } + grammarID = 64; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 64: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */ + if ( 1 == 1 ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigReferenceType->DigestValue.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigReferenceType->DigestValue.bytes, xmldsigReferenceType->DigestValue.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 19; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 19: + /* Element[END_ELEMENT] */ + if (1==1) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_xmldsigSPKIDataType(bitstream_t* stream, struct xmldsigSPKIDataType* xmldsigSPKIDataType) { + int grammarID = 65; + int done = 0; + int wcDone = 0; + + unsigned int xmldsigSPKIDataType_SPKISexp_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 65: + /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */ + if (xmldsigSPKIDataType_SPKISexp_currArrayIndex < xmldsigSPKIDataType->SPKISexp.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType_SPKISexp_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType_SPKISexp_currArrayIndex].bytes, xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType_SPKISexp_currArrayIndex].bytesLen); + xmldsigSPKIDataType_SPKISexp_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 66; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 66: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */ + if (xmldsigSPKIDataType_SPKISexp_currArrayIndex < xmldsigSPKIDataType->SPKISexp.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType_SPKISexp_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType_SPKISexp_currArrayIndex].bytes, xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType_SPKISexp_currArrayIndex].bytesLen); + xmldsigSPKIDataType_SPKISexp_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 66; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 67; + } else if ( xmldsigSPKIDataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 2); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 67: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */ + if (xmldsigSPKIDataType_SPKISexp_currArrayIndex < xmldsigSPKIDataType->SPKISexp.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 2, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType_SPKISexp_currArrayIndex].bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType_SPKISexp_currArrayIndex].bytes, xmldsigSPKIDataType->SPKISexp.array[xmldsigSPKIDataType_SPKISexp_currArrayIndex].bytesLen); + xmldsigSPKIDataType_SPKISexp_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 66; + } else if ( xmldsigSPKIDataType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 2, 1); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + +/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */ +static int encode_xmldsigKeyInfoType(bitstream_t* stream, struct xmldsigKeyInfoType* xmldsigKeyInfoType) { + int grammarID = 68; + int done = 0; + int wcDone = 0; + + unsigned int xmldsigKeyInfoType_KeyName_currArrayIndex = 0; + unsigned int xmldsigKeyInfoType_KeyValue_currArrayIndex = 0; + unsigned int xmldsigKeyInfoType_RetrievalMethod_currArrayIndex = 0; + unsigned int xmldsigKeyInfoType_X509Data_currArrayIndex = 0; + unsigned int xmldsigKeyInfoType_PGPData_currArrayIndex = 0; + unsigned int xmldsigKeyInfoType_SPKIData_currArrayIndex = 0; + unsigned int xmldsigKeyInfoType_MgmtData_currArrayIndex = 0; + + while(!done) { + switch(grammarID) { + case 68: + /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if ( xmldsigKeyInfoType->Id_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigKeyInfoType->Id.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigKeyInfoType->Id.characters, xmldsigKeyInfoType->Id.charactersLen); + } + } + grammarID = 69; + } else if (xmldsigKeyInfoType_KeyName_currArrayIndex < xmldsigKeyInfoType->KeyName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType_KeyName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType_KeyName_currArrayIndex].characters, xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType_KeyName_currArrayIndex].charactersLen); + xmldsigKeyInfoType_KeyName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 70; + } else if (xmldsigKeyInfoType_KeyValue_currArrayIndex < xmldsigKeyInfoType->KeyValue.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + errn = encode_xmldsigKeyValueType(stream, &xmldsigKeyInfoType->KeyValue.array [xmldsigKeyInfoType_KeyValue_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_RetrievalMethod_currArrayIndex < xmldsigKeyInfoType->RetrievalMethod.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + errn = encode_xmldsigRetrievalMethodType(stream, &xmldsigKeyInfoType->RetrievalMethod.array [xmldsigKeyInfoType_RetrievalMethod_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_X509Data_currArrayIndex < xmldsigKeyInfoType->X509Data.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + errn = encode_xmldsigX509DataType(stream, &xmldsigKeyInfoType->X509Data.array [xmldsigKeyInfoType_X509Data_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_PGPData_currArrayIndex < xmldsigKeyInfoType->PGPData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + errn = encode_xmldsigPGPDataType(stream, &xmldsigKeyInfoType->PGPData.array [xmldsigKeyInfoType_PGPData_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_SPKIData_currArrayIndex < xmldsigKeyInfoType->SPKIData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + errn = encode_xmldsigSPKIDataType(stream, &xmldsigKeyInfoType->SPKIData.array [xmldsigKeyInfoType_SPKIData_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_MgmtData_currArrayIndex < xmldsigKeyInfoType->MgmtData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 7); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType_MgmtData_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType_MgmtData_currArrayIndex].characters, xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType_MgmtData_currArrayIndex].charactersLen); + xmldsigKeyInfoType_MgmtData_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 70; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 70; + } else if ( xmldsigKeyInfoType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 9); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigKeyInfoType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigKeyInfoType->ANY.characters, xmldsigKeyInfoType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 71; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 69: + /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if (xmldsigKeyInfoType_KeyName_currArrayIndex < xmldsigKeyInfoType->KeyName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType_KeyName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType_KeyName_currArrayIndex].characters, xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType_KeyName_currArrayIndex].charactersLen); + xmldsigKeyInfoType_KeyName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 70; + } else if (xmldsigKeyInfoType_KeyValue_currArrayIndex < xmldsigKeyInfoType->KeyValue.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + errn = encode_xmldsigKeyValueType(stream, &xmldsigKeyInfoType->KeyValue.array [xmldsigKeyInfoType_KeyValue_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_RetrievalMethod_currArrayIndex < xmldsigKeyInfoType->RetrievalMethod.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + errn = encode_xmldsigRetrievalMethodType(stream, &xmldsigKeyInfoType->RetrievalMethod.array [xmldsigKeyInfoType_RetrievalMethod_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_X509Data_currArrayIndex < xmldsigKeyInfoType->X509Data.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + errn = encode_xmldsigX509DataType(stream, &xmldsigKeyInfoType->X509Data.array [xmldsigKeyInfoType_X509Data_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_PGPData_currArrayIndex < xmldsigKeyInfoType->PGPData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + errn = encode_xmldsigPGPDataType(stream, &xmldsigKeyInfoType->PGPData.array [xmldsigKeyInfoType_PGPData_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_SPKIData_currArrayIndex < xmldsigKeyInfoType->SPKIData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + errn = encode_xmldsigSPKIDataType(stream, &xmldsigKeyInfoType->SPKIData.array [xmldsigKeyInfoType_SPKIData_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_MgmtData_currArrayIndex < xmldsigKeyInfoType->MgmtData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType_MgmtData_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType_MgmtData_currArrayIndex].characters, xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType_MgmtData_currArrayIndex].charactersLen); + xmldsigKeyInfoType_MgmtData_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 70; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 70; + } else if ( xmldsigKeyInfoType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 8); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigKeyInfoType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigKeyInfoType->ANY.characters, xmldsigKeyInfoType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 71; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 70: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ + if (xmldsigKeyInfoType_KeyName_currArrayIndex < xmldsigKeyInfoType->KeyName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType_KeyName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType_KeyName_currArrayIndex].characters, xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType_KeyName_currArrayIndex].charactersLen); + xmldsigKeyInfoType_KeyName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 70; + } else if (xmldsigKeyInfoType_KeyValue_currArrayIndex < xmldsigKeyInfoType->KeyValue.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + errn = encode_xmldsigKeyValueType(stream, &xmldsigKeyInfoType->KeyValue.array [xmldsigKeyInfoType_KeyValue_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_RetrievalMethod_currArrayIndex < xmldsigKeyInfoType->RetrievalMethod.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + errn = encode_xmldsigRetrievalMethodType(stream, &xmldsigKeyInfoType->RetrievalMethod.array [xmldsigKeyInfoType_RetrievalMethod_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_X509Data_currArrayIndex < xmldsigKeyInfoType->X509Data.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + errn = encode_xmldsigX509DataType(stream, &xmldsigKeyInfoType->X509Data.array [xmldsigKeyInfoType_X509Data_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_PGPData_currArrayIndex < xmldsigKeyInfoType->PGPData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + errn = encode_xmldsigPGPDataType(stream, &xmldsigKeyInfoType->PGPData.array [xmldsigKeyInfoType_PGPData_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_SPKIData_currArrayIndex < xmldsigKeyInfoType->SPKIData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + errn = encode_xmldsigSPKIDataType(stream, &xmldsigKeyInfoType->SPKIData.array [xmldsigKeyInfoType_SPKIData_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_MgmtData_currArrayIndex < xmldsigKeyInfoType->MgmtData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType_MgmtData_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType_MgmtData_currArrayIndex].characters, xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType_MgmtData_currArrayIndex].charactersLen); + xmldsigKeyInfoType_MgmtData_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 70; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 70; + } else if ( xmldsigKeyInfoType->ANY_isUsed == 0u || wcDone ) { + errn = encodeNBitUnsignedInteger(stream, 4, 8); + if(errn == 0) { + done = 1; + } + grammarID = 3; + } else if ( xmldsigKeyInfoType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 9); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigKeyInfoType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigKeyInfoType->ANY.characters, xmldsigKeyInfoType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 70; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + case 71: + /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ + if (xmldsigKeyInfoType_KeyName_currArrayIndex < xmldsigKeyInfoType->KeyName.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 0); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType_KeyName_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType_KeyName_currArrayIndex].characters, xmldsigKeyInfoType->KeyName.array[xmldsigKeyInfoType_KeyName_currArrayIndex].charactersLen); + xmldsigKeyInfoType_KeyName_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 70; + } else if (xmldsigKeyInfoType_KeyValue_currArrayIndex < xmldsigKeyInfoType->KeyValue.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 1); + if(errn == 0) { + errn = encode_xmldsigKeyValueType(stream, &xmldsigKeyInfoType->KeyValue.array [xmldsigKeyInfoType_KeyValue_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_RetrievalMethod_currArrayIndex < xmldsigKeyInfoType->RetrievalMethod.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 2); + if(errn == 0) { + errn = encode_xmldsigRetrievalMethodType(stream, &xmldsigKeyInfoType->RetrievalMethod.array [xmldsigKeyInfoType_RetrievalMethod_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_X509Data_currArrayIndex < xmldsigKeyInfoType->X509Data.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 3); + if(errn == 0) { + errn = encode_xmldsigX509DataType(stream, &xmldsigKeyInfoType->X509Data.array [xmldsigKeyInfoType_X509Data_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_PGPData_currArrayIndex < xmldsigKeyInfoType->PGPData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 4); + if(errn == 0) { + errn = encode_xmldsigPGPDataType(stream, &xmldsigKeyInfoType->PGPData.array [xmldsigKeyInfoType_PGPData_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_SPKIData_currArrayIndex < xmldsigKeyInfoType->SPKIData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 5); + if(errn == 0) { + errn = encode_xmldsigSPKIDataType(stream, &xmldsigKeyInfoType->SPKIData.array [xmldsigKeyInfoType_SPKIData_currArrayIndex++]); + } + grammarID = 70; + } else if (xmldsigKeyInfoType_MgmtData_currArrayIndex < xmldsigKeyInfoType->MgmtData.arrayLen ) { + errn = encodeNBitUnsignedInteger(stream, 4, 6); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType_MgmtData_currArrayIndex].charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType_MgmtData_currArrayIndex].characters, xmldsigKeyInfoType->MgmtData.array[xmldsigKeyInfoType_MgmtData_currArrayIndex].charactersLen); + xmldsigKeyInfoType_MgmtData_currArrayIndex++; + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + grammarID = 70; + } else if (1==0) { + errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; + grammarID = 70; + } else if ( xmldsigKeyInfoType->ANY_isUsed == 1u ) { + errn = encodeNBitUnsignedInteger(stream, 4, 8); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(xmldsigKeyInfoType->ANY.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, xmldsigKeyInfoType->ANY.characters, xmldsigKeyInfoType->ANY.charactersLen); + } + } + wcDone = 1; + grammarID = 71; + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + break; + default: + errn = EXI_ERROR_UNKOWN_GRAMMAR_ID; + break; + } + if(errn) { + done = 1; + } + } + return errn; +} + + + +int encode_xmldsigExiDocument(bitstream_t* stream, struct xmldsigEXIDocument* exiDoc) { + errn = writeEXIHeader(stream); + + if(errn == 0) { + /* DocContent[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] */ + if ( exiDoc->CanonicalizationMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */ + errn = encodeNBitUnsignedInteger(stream, 5, 0); + if(errn == 0) { + errn = encode_xmldsigCanonicalizationMethodType(stream, &exiDoc->CanonicalizationMethod ); + } + } else if ( exiDoc->DSAKeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 5, 1); + if(errn == 0) { + errn = encode_xmldsigDSAKeyValueType(stream, &exiDoc->DSAKeyValue ); + } + } else if ( exiDoc->DigestMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */ + errn = encodeNBitUnsignedInteger(stream, 5, 2); + if(errn == 0) { + errn = encode_xmldsigDigestMethodType(stream, &exiDoc->DigestMethod ); + } + } else if ( exiDoc->DigestValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */ + errn = encodeNBitUnsignedInteger(stream, 5, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiDoc->DigestValue.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiDoc->DigestValue.bytes, exiDoc->DigestValue.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiDoc->KeyInfo_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */ + errn = encodeNBitUnsignedInteger(stream, 5, 4); + if(errn == 0) { + errn = encode_xmldsigKeyInfoType(stream, &exiDoc->KeyInfo ); + } + } else if ( exiDoc->KeyName_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */ + errn = encodeNBitUnsignedInteger(stream, 5, 5); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiDoc->KeyName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiDoc->KeyName.characters, exiDoc->KeyName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiDoc->KeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 5, 6); + if(errn == 0) { + errn = encode_xmldsigKeyValueType(stream, &exiDoc->KeyValue ); + } + } else if ( exiDoc->Manifest_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */ + errn = encodeNBitUnsignedInteger(stream, 5, 7); + if(errn == 0) { + errn = encode_xmldsigManifestType(stream, &exiDoc->Manifest ); + } + } else if ( exiDoc->MgmtData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */ + errn = encodeNBitUnsignedInteger(stream, 5, 8); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiDoc->MgmtData.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiDoc->MgmtData.characters, exiDoc->MgmtData.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiDoc->Object_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */ + errn = encodeNBitUnsignedInteger(stream, 5, 9); + if(errn == 0) { + errn = encode_xmldsigObjectType(stream, &exiDoc->Object ); + } + } else if ( exiDoc->PGPData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */ + errn = encodeNBitUnsignedInteger(stream, 5, 10); + if(errn == 0) { + errn = encode_xmldsigPGPDataType(stream, &exiDoc->PGPData ); + } + } else if ( exiDoc->RSAKeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 5, 11); + if(errn == 0) { + errn = encode_xmldsigRSAKeyValueType(stream, &exiDoc->RSAKeyValue ); + } + } else if ( exiDoc->Reference_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */ + errn = encodeNBitUnsignedInteger(stream, 5, 12); + if(errn == 0) { + errn = encode_xmldsigReferenceType(stream, &exiDoc->Reference ); + } + } else if ( exiDoc->RetrievalMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */ + errn = encodeNBitUnsignedInteger(stream, 5, 13); + if(errn == 0) { + errn = encode_xmldsigRetrievalMethodType(stream, &exiDoc->RetrievalMethod ); + } + } else if ( exiDoc->SPKIData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */ + errn = encodeNBitUnsignedInteger(stream, 5, 14); + if(errn == 0) { + errn = encode_xmldsigSPKIDataType(stream, &exiDoc->SPKIData ); + } + } else if ( exiDoc->Signature_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */ + errn = encodeNBitUnsignedInteger(stream, 5, 15); + if(errn == 0) { + errn = encode_xmldsigSignatureType(stream, &exiDoc->Signature ); + } + } else if ( exiDoc->SignatureMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */ + errn = encodeNBitUnsignedInteger(stream, 5, 16); + if(errn == 0) { + errn = encode_xmldsigSignatureMethodType(stream, &exiDoc->SignatureMethod ); + } + } else if ( exiDoc->SignatureProperties_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */ + errn = encodeNBitUnsignedInteger(stream, 5, 17); + if(errn == 0) { + errn = encode_xmldsigSignaturePropertiesType(stream, &exiDoc->SignatureProperties ); + } + } else if ( exiDoc->SignatureProperty_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */ + errn = encodeNBitUnsignedInteger(stream, 5, 18); + if(errn == 0) { + errn = encode_xmldsigSignaturePropertyType(stream, &exiDoc->SignatureProperty ); + } + } else if ( exiDoc->SignatureValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */ + errn = encodeNBitUnsignedInteger(stream, 5, 19); + if(errn == 0) { + errn = encode_xmldsigSignatureValueType(stream, &exiDoc->SignatureValue ); + } + } else if ( exiDoc->SignedInfo_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */ + errn = encodeNBitUnsignedInteger(stream, 5, 20); + if(errn == 0) { + errn = encode_xmldsigSignedInfoType(stream, &exiDoc->SignedInfo ); + } + } else if ( exiDoc->Transform_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */ + errn = encodeNBitUnsignedInteger(stream, 5, 21); + if(errn == 0) { + errn = encode_xmldsigTransformType(stream, &exiDoc->Transform ); + } + } else if ( exiDoc->Transforms_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */ + errn = encodeNBitUnsignedInteger(stream, 5, 22); + if(errn == 0) { + errn = encode_xmldsigTransformsType(stream, &exiDoc->Transforms ); + } + } else if ( exiDoc->X509Data_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */ + errn = encodeNBitUnsignedInteger(stream, 5, 23); + if(errn == 0) { + errn = encode_xmldsigX509DataType(stream, &exiDoc->X509Data ); + } + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + + } + + if(errn == 0) { + /* flush any pending bits */ + errn = encodeFinish(stream); + } + + return errn; +} + +#if DEPLOY_XMLDSIG_CODEC_FRAGMENT == SUPPORT_YES +int encode_xmldsigExiFragment(bitstream_t* stream, struct xmldsigEXIFragment* exiFrag) { + errn = writeEXIHeader(stream); + + if(errn == 0) { + /* FragmentContent[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT_GENERIC, END_DOCUMENT] */ + if ( exiFrag->CanonicalizationMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */ + errn = encodeNBitUnsignedInteger(stream, 6, 0); + if(errn == 0) { + errn = encode_xmldsigCanonicalizationMethodType(stream, &exiFrag->CanonicalizationMethod ); + } + } else if ( exiFrag->DSAKeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 6, 1); + if(errn == 0) { + errn = encode_xmldsigDSAKeyValueType(stream, &exiFrag->DSAKeyValue ); + } + } else if ( exiFrag->DigestMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */ + errn = encodeNBitUnsignedInteger(stream, 6, 2); + if(errn == 0) { + errn = encode_xmldsigDigestMethodType(stream, &exiFrag->DigestMethod ); + } + } else if ( exiFrag->DigestValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */ + errn = encodeNBitUnsignedInteger(stream, 6, 3); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->DigestValue.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->DigestValue.bytes, exiFrag->DigestValue.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Exponent_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent) */ + errn = encodeNBitUnsignedInteger(stream, 6, 4); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Exponent.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Exponent.bytes, exiFrag->Exponent.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->G_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) */ + errn = encodeNBitUnsignedInteger(stream, 6, 5); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->G.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->G.bytes, exiFrag->G.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->HMACOutputLength_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) */ + errn = encodeNBitUnsignedInteger(stream, 6, 6); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, exiFrag->HMACOutputLength); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->J_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J) */ + errn = encodeNBitUnsignedInteger(stream, 6, 7); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->J.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->J.bytes, exiFrag->J.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->KeyInfo_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */ + errn = encodeNBitUnsignedInteger(stream, 6, 8); + if(errn == 0) { + errn = encode_xmldsigKeyInfoType(stream, &exiFrag->KeyInfo ); + } + } else if ( exiFrag->KeyName_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */ + errn = encodeNBitUnsignedInteger(stream, 6, 9); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->KeyName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->KeyName.characters, exiFrag->KeyName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->KeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 6, 10); + if(errn == 0) { + errn = encode_xmldsigKeyValueType(stream, &exiFrag->KeyValue ); + } + } else if ( exiFrag->Manifest_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */ + errn = encodeNBitUnsignedInteger(stream, 6, 11); + if(errn == 0) { + errn = encode_xmldsigManifestType(stream, &exiFrag->Manifest ); + } + } else if ( exiFrag->MgmtData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */ + errn = encodeNBitUnsignedInteger(stream, 6, 12); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->MgmtData.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->MgmtData.characters, exiFrag->MgmtData.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Modulus_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus) */ + errn = encodeNBitUnsignedInteger(stream, 6, 13); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Modulus.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Modulus.bytes, exiFrag->Modulus.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Object_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */ + errn = encodeNBitUnsignedInteger(stream, 6, 14); + if(errn == 0) { + errn = encode_xmldsigObjectType(stream, &exiFrag->Object ); + } + } else if ( exiFrag->P_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P) */ + errn = encodeNBitUnsignedInteger(stream, 6, 15); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->P.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->P.bytes, exiFrag->P.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PGPData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */ + errn = encodeNBitUnsignedInteger(stream, 6, 16); + if(errn == 0) { + errn = encode_xmldsigPGPDataType(stream, &exiFrag->PGPData ); + } + } else if ( exiFrag->PGPKeyID_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID) */ + errn = encodeNBitUnsignedInteger(stream, 6, 17); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->PGPKeyID.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->PGPKeyID.bytes, exiFrag->PGPKeyID.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->PGPKeyPacket_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) */ + errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name PGPKeyPacket */ + } else if ( exiFrag->PgenCounter_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter) */ + errn = encodeNBitUnsignedInteger(stream, 6, 19); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->PgenCounter.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->PgenCounter.bytes, exiFrag->PgenCounter.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Q_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q) */ + errn = encodeNBitUnsignedInteger(stream, 6, 20); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Q.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Q.bytes, exiFrag->Q.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->RSAKeyValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */ + errn = encodeNBitUnsignedInteger(stream, 6, 21); + if(errn == 0) { + errn = encode_xmldsigRSAKeyValueType(stream, &exiFrag->RSAKeyValue ); + } + } else if ( exiFrag->Reference_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */ + errn = encodeNBitUnsignedInteger(stream, 6, 22); + if(errn == 0) { + errn = encode_xmldsigReferenceType(stream, &exiFrag->Reference ); + } + } else if ( exiFrag->RetrievalMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */ + errn = encodeNBitUnsignedInteger(stream, 6, 23); + if(errn == 0) { + errn = encode_xmldsigRetrievalMethodType(stream, &exiFrag->RetrievalMethod ); + } + } else if ( exiFrag->SPKIData_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */ + errn = encodeNBitUnsignedInteger(stream, 6, 24); + if(errn == 0) { + errn = encode_xmldsigSPKIDataType(stream, &exiFrag->SPKIData ); + } + } else if ( exiFrag->SPKISexp_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) */ + errn = encodeNBitUnsignedInteger(stream, 6, 25); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SPKISexp.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->SPKISexp.bytes, exiFrag->SPKISexp.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Seed_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) */ + errn = encodeNBitUnsignedInteger(stream, 6, 26); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Seed.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Seed.bytes, exiFrag->Seed.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Signature_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */ + errn = encodeNBitUnsignedInteger(stream, 6, 27); + if(errn == 0) { + errn = encode_xmldsigSignatureType(stream, &exiFrag->Signature ); + } + } else if ( exiFrag->SignatureMethod_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */ + errn = encodeNBitUnsignedInteger(stream, 6, 28); + if(errn == 0) { + errn = encode_xmldsigSignatureMethodType(stream, &exiFrag->SignatureMethod ); + } + } else if ( exiFrag->SignatureProperties_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */ + errn = encodeNBitUnsignedInteger(stream, 6, 29); + if(errn == 0) { + errn = encode_xmldsigSignaturePropertiesType(stream, &exiFrag->SignatureProperties ); + } + } else if ( exiFrag->SignatureProperty_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */ + errn = encodeNBitUnsignedInteger(stream, 6, 30); + if(errn == 0) { + errn = encode_xmldsigSignaturePropertyType(stream, &exiFrag->SignatureProperty ); + } + } else if ( exiFrag->SignatureValue_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */ + errn = encodeNBitUnsignedInteger(stream, 6, 31); + if(errn == 0) { + errn = encode_xmldsigSignatureValueType(stream, &exiFrag->SignatureValue ); + } + } else if ( exiFrag->SignedInfo_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */ + errn = encodeNBitUnsignedInteger(stream, 6, 32); + if(errn == 0) { + errn = encode_xmldsigSignedInfoType(stream, &exiFrag->SignedInfo ); + } + } else if ( exiFrag->Transform_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */ + errn = encodeNBitUnsignedInteger(stream, 6, 33); + if(errn == 0) { + errn = encode_xmldsigTransformType(stream, &exiFrag->Transform ); + } + } else if ( exiFrag->Transforms_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */ + errn = encodeNBitUnsignedInteger(stream, 6, 34); + if(errn == 0) { + errn = encode_xmldsigTransformsType(stream, &exiFrag->Transforms ); + } + } else if ( exiFrag->X509CRL_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) */ + errn = encodeNBitUnsignedInteger(stream, 6, 35); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509CRL.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->X509CRL.bytes, exiFrag->X509CRL.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509Certificate_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) */ + errn = encodeNBitUnsignedInteger(stream, 6, 36); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509Certificate.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->X509Certificate.bytes, exiFrag->X509Certificate.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509Data_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */ + errn = encodeNBitUnsignedInteger(stream, 6, 37); + if(errn == 0) { + errn = encode_xmldsigX509DataType(stream, &exiFrag->X509Data ); + } + } else if ( exiFrag->X509IssuerName_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName) */ + errn = encodeNBitUnsignedInteger(stream, 6, 38); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509IssuerName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->X509IssuerName.characters, exiFrag->X509IssuerName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509IssuerSerial_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial) */ + errn = encodeNBitUnsignedInteger(stream, 6, 39); + if(errn == 0) { + errn = encode_xmldsigX509IssuerSerialType(stream, &exiFrag->X509IssuerSerial ); + } + } else if ( exiFrag->X509SKI_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) */ + errn = encodeNBitUnsignedInteger(stream, 6, 40); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509SKI.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->X509SKI.bytes, exiFrag->X509SKI.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509SerialNumber_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber) */ + errn = encodeNBitUnsignedInteger(stream, 6, 41); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeInteger64(stream, exiFrag->X509SerialNumber); + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->X509SubjectName_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) */ + errn = encodeNBitUnsignedInteger(stream, 6, 42); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509SubjectName.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->X509SubjectName.characters, exiFrag->X509SubjectName.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->XPath_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) */ + errn = encodeNBitUnsignedInteger(stream, 6, 43); + if(errn == 0) { + /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + /* encode string as string table miss (+2 len)*/ + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->XPath.charactersLen + 2)); + if (errn == 0) { + errn = encodeCharacters(stream, exiFrag->XPath.characters, exiFrag->XPath.charactersLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else if ( exiFrag->Y_isUsed == 1u ) { + /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) */ + errn = encodeNBitUnsignedInteger(stream, 6, 44); + if(errn == 0) { + /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + if(errn == 0) { + errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Y.bytesLen)); + if (errn == 0) { + errn = encodeBytes(stream, exiFrag->Y.bytes, exiFrag->Y.bytesLen); + } + /* valid EE */ + errn = encodeNBitUnsignedInteger(stream, 1, 0); + } + } + } else { + errn = EXI_ERROR_UNKOWN_EVENT; + } + } + if(errn == 0) { + /* EndDocument */ + errn = encodeNBitUnsignedInteger(stream, 6, 46); + } + + + if(errn == 0) { + /* flush any pending bits */ + errn = encodeFinish(stream); + } + + return errn; +} +#endif /* DEPLOY_XMLDSIG_CODEC_FRAGMENT */ + + +#endif /* DEPLOY_XMLDSIG_CODEC */ + +#endif + diff --git a/csharp/vc2022/src/xmldsig/xmldsigEXIDatatypesEncoder.h b/csharp/vc2022/src/xmldsig/xmldsigEXIDatatypesEncoder.h new file mode 100644 index 0000000..297d98c --- /dev/null +++ b/csharp/vc2022/src/xmldsig/xmldsigEXIDatatypesEncoder.h @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2007-2018 Siemens AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 . + */ + +/******************************************************************* + * + * @author Daniel.Peintner.EXT@siemens.com + * @version 0.9.4 + * @contact Richard.Kuntschke@siemens.com + * + *

Code generated by EXIdizer

+ *

Schema: xmldsig-core-schema.xsd

+ * + * + ********************************************************************/ + + + +/** + * \file EXIDatatypesEncoder.h + * \brief Encoder for datatype definitions + * + */ + +#ifndef EXI_xmldsig_DATATYPES_ENCODER_H +#define EXI_xmldsig_DATATYPES_ENCODER_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "xmldsigEXIDatatypes.h" + +#if DEPLOY_XMLDSIG_CODEC == SUPPORT_YES + +#include + +#include "EXITypes.h" + +int encode_xmldsigExiDocument(bitstream_t* stream, struct xmldsigEXIDocument* exiDoc); + +#if DEPLOY_XMLDSIG_CODEC_FRAGMENT == SUPPORT_YES +int encode_xmldsigExiFragment(bitstream_t* stream, struct xmldsigEXIFragment* exiFrag); +#endif /* DEPLOY_XMLDSIG_CODEC_FRAGMENT */ + + +#endif /* DEPLOY_XMLDSIG_CODEC */ + +#ifdef __cplusplus +} +#endif + +#endif