blob: 3608fa176b40af511774e79b4bd49eb7bdf9ace6 [file] [log] [blame]
// This C++ source file was generated by the TTCN-3 compiler
// of the TTCN-3 Test Executor version CRL 113 200/6 R6A
// for Lénárd Nagy (elnrnag@elx78355y6x) on Thu Oct 24 10:29:40 2019
// Copyright (c) 2000-2019 Ericsson Telecom AB
// Do not edit this file unless you know what you are doing.
/* Including header files */
#include "IsobusCMMessageTypes.hh"
namespace IsobusCMMessageTypes {
/* Prototypes of static functions */
static void pre_init_module();
static void post_init_module();
/* Literal string constants */
static const unsigned char os_0_octets[] = { 16 },
os_1_octets[] = { 17 },
os_2_octets[] = { 19 },
os_3_octets[] = { 32 },
os_5_octets[] = { 33 },
os_6_octets[] = { 34 },
os_7_octets[] = { 35 },
os_4_octets[] = { 255 };
static const OCTETSTRING os_0(1, os_0_octets),
os_1(1, os_1_octets),
os_2(1, os_2_octets),
os_3(1, os_3_octets),
os_5(1, os_5_octets),
os_6(1, os_6_octets),
os_7(1, os_7_octets),
os_4(1, os_4_octets);
static const unsigned char module_checksum[] = { 0xf5, 0x67, 0x02, 0xbc, 0x33, 0x07, 0xbc, 0xd1, 0x80, 0xb3, 0xef, 0x1b, 0x59, 0x25, 0x7c, 0x3f };
/* Global variable definitions */
const TTCN_RAWdescriptor_t SEQ__NO_raw_ = {8,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t SEQ__NO_xer_ = { {"SEQ_NO>\n", "SEQ_NO>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t SEQ__NO_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t SEQ__NO_descr_ = { "@IsobusCMMessageTypes.SEQ_NO", &INTEGER_ber_, &SEQ__NO_raw_, &INTEGER_text_, &SEQ__NO_xer_, &INTEGER_json_, &SEQ__NO_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t NUMBER__OF__PACKETS_raw_ = {8,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t NUMBER__OF__PACKETS_xer_ = { {"NUMBER_OF_PACKETS>\n", "NUMBER_OF_PACKETS>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t NUMBER__OF__PACKETS_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t NUMBER__OF__PACKETS_descr_ = { "@IsobusCMMessageTypes.NUMBER_OF_PACKETS", &INTEGER_ber_, &NUMBER__OF__PACKETS_raw_, &INTEGER_text_, &NUMBER__OF__PACKETS_xer_, &INTEGER_json_, &NUMBER__OF__PACKETS_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t Ctrl_xer_ = { {"Ctrl>\n", "Ctrl>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int Ctrl_oer_ext_arr_[0] = {};
const int Ctrl_oer_p_[0] = {};
const TTCN_OERdescriptor_t Ctrl_oer_ = { -1, TRUE, 1, FALSE, 0, 0, Ctrl_oer_ext_arr_, 0, Ctrl_oer_p_};
const TTCN_Typedescriptor_t Ctrl_descr_ = { "@IsobusCMMessageTypes.Ctrl", &OCTETSTRING_ber_, &General__Types::OCT1_raw_, &OCTETSTRING_text_, &Ctrl_xer_, &OCTETSTRING_json_, &Ctrl_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t RequestToSend_ctrl_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t RequestToSend_ctrl_xer_ = { {"ctrl>\n", "ctrl>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int RequestToSend_ctrl_oer_ext_arr_[0] = {};
const int RequestToSend_ctrl_oer_p_[0] = {};
const TTCN_OERdescriptor_t RequestToSend_ctrl_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RequestToSend_ctrl_oer_ext_arr_, 0, RequestToSend_ctrl_oer_p_};
const TTCN_Typedescriptor_t RequestToSend_ctrl_descr_ = { "@IsobusCMMessageTypes.RequestToSend.ctrl", &OCTETSTRING_ber_, &RequestToSend_ctrl_raw_, &OCTETSTRING_text_, &RequestToSend_ctrl_xer_, &OCTETSTRING_json_, &RequestToSend_ctrl_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t RequestToSend_msgSizeInBytes_xer_ = { {"msgSizeInBytes>\n", "msgSizeInBytes>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t RequestToSend_msgSizeInBytes_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t RequestToSend_msgSizeInBytes_descr_ = { "@IsobusCMMessageTypes.RequestToSend.msgSizeInBytes", &INTEGER_ber_, &IsobusMessageTypes::INT2_raw_, &INTEGER_text_, &RequestToSend_msgSizeInBytes_xer_, &INTEGER_json_, &RequestToSend_msgSizeInBytes_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t RequestToSend_totalNumberOfPackets_xer_ = { {"totalNumberOfPackets>\n", "totalNumberOfPackets>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t RequestToSend_totalNumberOfPackets_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t RequestToSend_totalNumberOfPackets_descr_ = { "@IsobusCMMessageTypes.RequestToSend.totalNumberOfPackets", &INTEGER_ber_, &NUMBER__OF__PACKETS_raw_, &INTEGER_text_, &RequestToSend_totalNumberOfPackets_xer_, &INTEGER_json_, &RequestToSend_totalNumberOfPackets_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t RequestToSend_maxNoOfPacketsInResponseToCTS_xer_ = { {"maxNoOfPacketsInResponseToCTS>\n", "maxNoOfPacketsInResponseToCTS>\n"}, {31, 31}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t RequestToSend_maxNoOfPacketsInResponseToCTS_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t RequestToSend_maxNoOfPacketsInResponseToCTS_descr_ = { "@IsobusCMMessageTypes.RequestToSend.maxNoOfPacketsInResponseToCTS", &INTEGER_ber_, &General__Types::INT1_raw_, &INTEGER_text_, &RequestToSend_maxNoOfPacketsInResponseToCTS_xer_, &INTEGER_json_, &RequestToSend_maxNoOfPacketsInResponseToCTS_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t RequestToSend_pgnOfMultiPacketMessage_xer_ = { {"pgnOfMultiPacketMessage>\n", "pgnOfMultiPacketMessage>\n"}, {25, 25}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t RequestToSend_pgnOfMultiPacketMessage_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t RequestToSend_pgnOfMultiPacketMessage_descr_ = { "@IsobusCMMessageTypes.RequestToSend.pgnOfMultiPacketMessage", &INTEGER_ber_, &IsobusMessageTypes::INT24nb_raw_, &INTEGER_text_, &RequestToSend_pgnOfMultiPacketMessage_xer_, &INTEGER_json_, &RequestToSend_pgnOfMultiPacketMessage_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t RequestToSend_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
// No XER for RequestToSend
const TTCN_Typedescriptor_t RequestToSend_descr_ = { "@IsobusCMMessageTypes.RequestToSend", NULL, &RequestToSend_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ClearToSend_ctrl_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t ClearToSend_ctrl_xer_ = { {"ctrl>\n", "ctrl>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int ClearToSend_ctrl_oer_ext_arr_[0] = {};
const int ClearToSend_ctrl_oer_p_[0] = {};
const TTCN_OERdescriptor_t ClearToSend_ctrl_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ClearToSend_ctrl_oer_ext_arr_, 0, ClearToSend_ctrl_oer_p_};
const TTCN_Typedescriptor_t ClearToSend_ctrl_descr_ = { "@IsobusCMMessageTypes.ClearToSend.ctrl", &OCTETSTRING_ber_, &ClearToSend_ctrl_raw_, &OCTETSTRING_text_, &ClearToSend_ctrl_xer_, &OCTETSTRING_json_, &ClearToSend_ctrl_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t ClearToSend_totalNumberOfPackets_xer_ = { {"totalNumberOfPackets>\n", "totalNumberOfPackets>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ClearToSend_totalNumberOfPackets_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ClearToSend_totalNumberOfPackets_descr_ = { "@IsobusCMMessageTypes.ClearToSend.totalNumberOfPackets", &INTEGER_ber_, &NUMBER__OF__PACKETS_raw_, &INTEGER_text_, &ClearToSend_totalNumberOfPackets_xer_, &INTEGER_json_, &ClearToSend_totalNumberOfPackets_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t ClearToSend_nextPacketNumber_xer_ = { {"nextPacketNumber>\n", "nextPacketNumber>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ClearToSend_nextPacketNumber_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ClearToSend_nextPacketNumber_descr_ = { "@IsobusCMMessageTypes.ClearToSend.nextPacketNumber", &INTEGER_ber_, &General__Types::INT1_raw_, &INTEGER_text_, &ClearToSend_nextPacketNumber_xer_, &INTEGER_json_, &ClearToSend_nextPacketNumber_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ClearToSend_reserved4_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t ClearToSend_reserved4_xer_ = { {"reserved4>\n", "reserved4>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int ClearToSend_reserved4_oer_ext_arr_[0] = {};
const int ClearToSend_reserved4_oer_p_[0] = {};
const TTCN_OERdescriptor_t ClearToSend_reserved4_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ClearToSend_reserved4_oer_ext_arr_, 0, ClearToSend_reserved4_oer_p_};
const TTCN_Typedescriptor_t ClearToSend_reserved4_descr_ = { "@IsobusCMMessageTypes.ClearToSend.reserved4", &OCTETSTRING_ber_, &ClearToSend_reserved4_raw_, &OCTETSTRING_text_, &ClearToSend_reserved4_xer_, &OCTETSTRING_json_, &ClearToSend_reserved4_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ClearToSend_reserved5_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t ClearToSend_reserved5_xer_ = { {"reserved5>\n", "reserved5>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int ClearToSend_reserved5_oer_ext_arr_[0] = {};
const int ClearToSend_reserved5_oer_p_[0] = {};
const TTCN_OERdescriptor_t ClearToSend_reserved5_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ClearToSend_reserved5_oer_ext_arr_, 0, ClearToSend_reserved5_oer_p_};
const TTCN_Typedescriptor_t ClearToSend_reserved5_descr_ = { "@IsobusCMMessageTypes.ClearToSend.reserved5", &OCTETSTRING_ber_, &ClearToSend_reserved5_raw_, &OCTETSTRING_text_, &ClearToSend_reserved5_xer_, &OCTETSTRING_json_, &ClearToSend_reserved5_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t ClearToSend_pgnOfMultiPacketMessage_xer_ = { {"pgnOfMultiPacketMessage>\n", "pgnOfMultiPacketMessage>\n"}, {25, 25}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ClearToSend_pgnOfMultiPacketMessage_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ClearToSend_pgnOfMultiPacketMessage_descr_ = { "@IsobusCMMessageTypes.ClearToSend.pgnOfMultiPacketMessage", &INTEGER_ber_, &IsobusMessageTypes::INT24nb_raw_, &INTEGER_text_, &ClearToSend_pgnOfMultiPacketMessage_xer_, &INTEGER_json_, &ClearToSend_pgnOfMultiPacketMessage_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ClearToSend_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
// No XER for ClearToSend
const TTCN_Typedescriptor_t ClearToSend_descr_ = { "@IsobusCMMessageTypes.ClearToSend", NULL, &ClearToSend_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t EndOfMessageAcknowledgement_ctrl_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t EndOfMessageAcknowledgement_ctrl_xer_ = { {"ctrl>\n", "ctrl>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int EndOfMessageAcknowledgement_ctrl_oer_ext_arr_[0] = {};
const int EndOfMessageAcknowledgement_ctrl_oer_p_[0] = {};
const TTCN_OERdescriptor_t EndOfMessageAcknowledgement_ctrl_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EndOfMessageAcknowledgement_ctrl_oer_ext_arr_, 0, EndOfMessageAcknowledgement_ctrl_oer_p_};
const TTCN_Typedescriptor_t EndOfMessageAcknowledgement_ctrl_descr_ = { "@IsobusCMMessageTypes.EndOfMessageAcknowledgement.ctrl", &OCTETSTRING_ber_, &EndOfMessageAcknowledgement_ctrl_raw_, &OCTETSTRING_text_, &EndOfMessageAcknowledgement_ctrl_xer_, &OCTETSTRING_json_, &EndOfMessageAcknowledgement_ctrl_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t EndOfMessageAcknowledgement_msgSizeInByte_xer_ = { {"msgSizeInByte>\n", "msgSizeInByte>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t EndOfMessageAcknowledgement_msgSizeInByte_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t EndOfMessageAcknowledgement_msgSizeInByte_descr_ = { "@IsobusCMMessageTypes.EndOfMessageAcknowledgement.msgSizeInByte", &INTEGER_ber_, &IsobusMessageTypes::INT2_raw_, &INTEGER_text_, &EndOfMessageAcknowledgement_msgSizeInByte_xer_, &INTEGER_json_, &EndOfMessageAcknowledgement_msgSizeInByte_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t EndOfMessageAcknowledgement_totalNumberOfPackets_xer_ = { {"totalNumberOfPackets>\n", "totalNumberOfPackets>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t EndOfMessageAcknowledgement_totalNumberOfPackets_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t EndOfMessageAcknowledgement_totalNumberOfPackets_descr_ = { "@IsobusCMMessageTypes.EndOfMessageAcknowledgement.totalNumberOfPackets", &INTEGER_ber_, &NUMBER__OF__PACKETS_raw_, &INTEGER_text_, &EndOfMessageAcknowledgement_totalNumberOfPackets_xer_, &INTEGER_json_, &EndOfMessageAcknowledgement_totalNumberOfPackets_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t EndOfMessageAcknowledgement_reserved5_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t EndOfMessageAcknowledgement_reserved5_xer_ = { {"reserved5>\n", "reserved5>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int EndOfMessageAcknowledgement_reserved5_oer_ext_arr_[0] = {};
const int EndOfMessageAcknowledgement_reserved5_oer_p_[0] = {};
const TTCN_OERdescriptor_t EndOfMessageAcknowledgement_reserved5_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EndOfMessageAcknowledgement_reserved5_oer_ext_arr_, 0, EndOfMessageAcknowledgement_reserved5_oer_p_};
const TTCN_Typedescriptor_t EndOfMessageAcknowledgement_reserved5_descr_ = { "@IsobusCMMessageTypes.EndOfMessageAcknowledgement.reserved5", &OCTETSTRING_ber_, &EndOfMessageAcknowledgement_reserved5_raw_, &OCTETSTRING_text_, &EndOfMessageAcknowledgement_reserved5_xer_, &OCTETSTRING_json_, &EndOfMessageAcknowledgement_reserved5_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t EndOfMessageAcknowledgement_pgnOfMultiPacketMessage_xer_ = { {"pgnOfMultiPacketMessage>\n", "pgnOfMultiPacketMessage>\n"}, {25, 25}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t EndOfMessageAcknowledgement_pgnOfMultiPacketMessage_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t EndOfMessageAcknowledgement_pgnOfMultiPacketMessage_descr_ = { "@IsobusCMMessageTypes.EndOfMessageAcknowledgement.pgnOfMultiPacketMessage", &INTEGER_ber_, &IsobusMessageTypes::INT24nb_raw_, &INTEGER_text_, &EndOfMessageAcknowledgement_pgnOfMultiPacketMessage_xer_, &INTEGER_json_, &EndOfMessageAcknowledgement_pgnOfMultiPacketMessage_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t EndOfMessageAcknowledgement_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
// No XER for EndOfMessageAcknowledgement
const TTCN_Typedescriptor_t EndOfMessageAcknowledgement_descr_ = { "@IsobusCMMessageTypes.EndOfMessageAcknowledgement", NULL, &EndOfMessageAcknowledgement_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t e__ConnectionAbort__AbortReason_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,8,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
// No XER for e__ConnectionAbort__AbortReason
const TTCN_Typedescriptor_t e__ConnectionAbort__AbortReason_descr_ = { "@IsobusCMMessageTypes.e_ConnectionAbort_AbortReason", NULL, &e__ConnectionAbort__AbortReason_raw_, NULL, NULL, &ENUMERATED_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ConnectionAbort_ctrl_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t ConnectionAbort_ctrl_xer_ = { {"ctrl>\n", "ctrl>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int ConnectionAbort_ctrl_oer_ext_arr_[0] = {};
const int ConnectionAbort_ctrl_oer_p_[0] = {};
const TTCN_OERdescriptor_t ConnectionAbort_ctrl_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ConnectionAbort_ctrl_oer_ext_arr_, 0, ConnectionAbort_ctrl_oer_p_};
const TTCN_Typedescriptor_t ConnectionAbort_ctrl_descr_ = { "@IsobusCMMessageTypes.ConnectionAbort.ctrl", &OCTETSTRING_ber_, &ConnectionAbort_ctrl_raw_, &OCTETSTRING_text_, &ConnectionAbort_ctrl_xer_, &OCTETSTRING_json_, &ConnectionAbort_ctrl_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ConnectionAbort_reserved3_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t ConnectionAbort_reserved3_xer_ = { {"reserved3>\n", "reserved3>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int ConnectionAbort_reserved3_oer_ext_arr_[0] = {};
const int ConnectionAbort_reserved3_oer_p_[0] = {};
const TTCN_OERdescriptor_t ConnectionAbort_reserved3_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ConnectionAbort_reserved3_oer_ext_arr_, 0, ConnectionAbort_reserved3_oer_p_};
const TTCN_Typedescriptor_t ConnectionAbort_reserved3_descr_ = { "@IsobusCMMessageTypes.ConnectionAbort.reserved3", &OCTETSTRING_ber_, &ConnectionAbort_reserved3_raw_, &OCTETSTRING_text_, &ConnectionAbort_reserved3_xer_, &OCTETSTRING_json_, &ConnectionAbort_reserved3_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ConnectionAbort_reserved4_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t ConnectionAbort_reserved4_xer_ = { {"reserved4>\n", "reserved4>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int ConnectionAbort_reserved4_oer_ext_arr_[0] = {};
const int ConnectionAbort_reserved4_oer_p_[0] = {};
const TTCN_OERdescriptor_t ConnectionAbort_reserved4_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ConnectionAbort_reserved4_oer_ext_arr_, 0, ConnectionAbort_reserved4_oer_p_};
const TTCN_Typedescriptor_t ConnectionAbort_reserved4_descr_ = { "@IsobusCMMessageTypes.ConnectionAbort.reserved4", &OCTETSTRING_ber_, &ConnectionAbort_reserved4_raw_, &OCTETSTRING_text_, &ConnectionAbort_reserved4_xer_, &OCTETSTRING_json_, &ConnectionAbort_reserved4_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ConnectionAbort_reserved5_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t ConnectionAbort_reserved5_xer_ = { {"reserved5>\n", "reserved5>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int ConnectionAbort_reserved5_oer_ext_arr_[0] = {};
const int ConnectionAbort_reserved5_oer_p_[0] = {};
const TTCN_OERdescriptor_t ConnectionAbort_reserved5_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ConnectionAbort_reserved5_oer_ext_arr_, 0, ConnectionAbort_reserved5_oer_p_};
const TTCN_Typedescriptor_t ConnectionAbort_reserved5_descr_ = { "@IsobusCMMessageTypes.ConnectionAbort.reserved5", &OCTETSTRING_ber_, &ConnectionAbort_reserved5_raw_, &OCTETSTRING_text_, &ConnectionAbort_reserved5_xer_, &OCTETSTRING_json_, &ConnectionAbort_reserved5_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t ConnectionAbort_pgnOfMultiPacketMessage_xer_ = { {"pgnOfMultiPacketMessage>\n", "pgnOfMultiPacketMessage>\n"}, {25, 25}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ConnectionAbort_pgnOfMultiPacketMessage_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ConnectionAbort_pgnOfMultiPacketMessage_descr_ = { "@IsobusCMMessageTypes.ConnectionAbort.pgnOfMultiPacketMessage", &INTEGER_ber_, &IsobusMessageTypes::INT24nb_raw_, &INTEGER_text_, &ConnectionAbort_pgnOfMultiPacketMessage_xer_, &INTEGER_json_, &ConnectionAbort_pgnOfMultiPacketMessage_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ConnectionAbort_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
// No XER for ConnectionAbort
const TTCN_Typedescriptor_t ConnectionAbort_descr_ = { "@IsobusCMMessageTypes.ConnectionAbort", NULL, &ConnectionAbort_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t BroadcastAnnounce_ctrl_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t BroadcastAnnounce_ctrl_xer_ = { {"ctrl>\n", "ctrl>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int BroadcastAnnounce_ctrl_oer_ext_arr_[0] = {};
const int BroadcastAnnounce_ctrl_oer_p_[0] = {};
const TTCN_OERdescriptor_t BroadcastAnnounce_ctrl_oer_ = { -1, TRUE, 1, FALSE, 0, 0, BroadcastAnnounce_ctrl_oer_ext_arr_, 0, BroadcastAnnounce_ctrl_oer_p_};
const TTCN_Typedescriptor_t BroadcastAnnounce_ctrl_descr_ = { "@IsobusCMMessageTypes.BroadcastAnnounce.ctrl", &OCTETSTRING_ber_, &BroadcastAnnounce_ctrl_raw_, &OCTETSTRING_text_, &BroadcastAnnounce_ctrl_xer_, &OCTETSTRING_json_, &BroadcastAnnounce_ctrl_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t BroadcastAnnounce_msgSizeInByte_xer_ = { {"msgSizeInByte>\n", "msgSizeInByte>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t BroadcastAnnounce_msgSizeInByte_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t BroadcastAnnounce_msgSizeInByte_descr_ = { "@IsobusCMMessageTypes.BroadcastAnnounce.msgSizeInByte", &INTEGER_ber_, &IsobusMessageTypes::INT2_raw_, &INTEGER_text_, &BroadcastAnnounce_msgSizeInByte_xer_, &INTEGER_json_, &BroadcastAnnounce_msgSizeInByte_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t BroadcastAnnounce_totalNumberOfPackets_xer_ = { {"totalNumberOfPackets>\n", "totalNumberOfPackets>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t BroadcastAnnounce_totalNumberOfPackets_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t BroadcastAnnounce_totalNumberOfPackets_descr_ = { "@IsobusCMMessageTypes.BroadcastAnnounce.totalNumberOfPackets", &INTEGER_ber_, &NUMBER__OF__PACKETS_raw_, &INTEGER_text_, &BroadcastAnnounce_totalNumberOfPackets_xer_, &INTEGER_json_, &BroadcastAnnounce_totalNumberOfPackets_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t BroadcastAnnounce_reserved5_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t BroadcastAnnounce_reserved5_xer_ = { {"reserved5>\n", "reserved5>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int BroadcastAnnounce_reserved5_oer_ext_arr_[0] = {};
const int BroadcastAnnounce_reserved5_oer_p_[0] = {};
const TTCN_OERdescriptor_t BroadcastAnnounce_reserved5_oer_ = { -1, TRUE, 1, FALSE, 0, 0, BroadcastAnnounce_reserved5_oer_ext_arr_, 0, BroadcastAnnounce_reserved5_oer_p_};
const TTCN_Typedescriptor_t BroadcastAnnounce_reserved5_descr_ = { "@IsobusCMMessageTypes.BroadcastAnnounce.reserved5", &OCTETSTRING_ber_, &BroadcastAnnounce_reserved5_raw_, &OCTETSTRING_text_, &BroadcastAnnounce_reserved5_xer_, &OCTETSTRING_json_, &BroadcastAnnounce_reserved5_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t BroadcastAnnounce_pgnOfMultiPacketMessage_xer_ = { {"pgnOfMultiPacketMessage>\n", "pgnOfMultiPacketMessage>\n"}, {25, 25}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t BroadcastAnnounce_pgnOfMultiPacketMessage_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t BroadcastAnnounce_pgnOfMultiPacketMessage_descr_ = { "@IsobusCMMessageTypes.BroadcastAnnounce.pgnOfMultiPacketMessage", &INTEGER_ber_, &IsobusMessageTypes::INT24nb_raw_, &INTEGER_text_, &BroadcastAnnounce_pgnOfMultiPacketMessage_xer_, &INTEGER_json_, &BroadcastAnnounce_pgnOfMultiPacketMessage_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t BroadcastAnnounce_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
// No XER for BroadcastAnnounce
const TTCN_Typedescriptor_t BroadcastAnnounce_descr_ = { "@IsobusCMMessageTypes.BroadcastAnnounce", NULL, &BroadcastAnnounce_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t TP__CM_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
// No XER for TP__CM
const TTCN_Typedescriptor_t TP__CM_descr_ = { "@IsobusCMMessageTypes.TP_CM", NULL, &TP__CM_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ETP__MSG__SIZE_raw_ = {32,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t ETP__MSG__SIZE_xer_ = { {"ETP_MSG_SIZE>\n", "ETP_MSG_SIZE>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ETP__MSG__SIZE_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ETP__MSG__SIZE_descr_ = { "@IsobusCMMessageTypes.ETP_MSG_SIZE", &INTEGER_ber_, &ETP__MSG__SIZE_raw_, &INTEGER_text_, &ETP__MSG__SIZE_xer_, &INTEGER_json_, &ETP__MSG__SIZE_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ExtendedMessageRequestToSend_ctrl_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t ExtendedMessageRequestToSend_ctrl_xer_ = { {"ctrl>\n", "ctrl>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int ExtendedMessageRequestToSend_ctrl_oer_ext_arr_[0] = {};
const int ExtendedMessageRequestToSend_ctrl_oer_p_[0] = {};
const TTCN_OERdescriptor_t ExtendedMessageRequestToSend_ctrl_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ExtendedMessageRequestToSend_ctrl_oer_ext_arr_, 0, ExtendedMessageRequestToSend_ctrl_oer_p_};
const TTCN_Typedescriptor_t ExtendedMessageRequestToSend_ctrl_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageRequestToSend.ctrl", &OCTETSTRING_ber_, &ExtendedMessageRequestToSend_ctrl_raw_, &OCTETSTRING_text_, &ExtendedMessageRequestToSend_ctrl_xer_, &OCTETSTRING_json_, &ExtendedMessageRequestToSend_ctrl_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t ExtendedMessageRequestToSend_msgSizeInBytes_xer_ = { {"msgSizeInBytes>\n", "msgSizeInBytes>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ExtendedMessageRequestToSend_msgSizeInBytes_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ExtendedMessageRequestToSend_msgSizeInBytes_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageRequestToSend.msgSizeInBytes", &INTEGER_ber_, &ETP__MSG__SIZE_raw_, &INTEGER_text_, &ExtendedMessageRequestToSend_msgSizeInBytes_xer_, &INTEGER_json_, &ExtendedMessageRequestToSend_msgSizeInBytes_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t ExtendedMessageRequestToSend_pgnOfExtendedPacketedMessage_xer_ = { {"pgnOfExtendedPacketedMessage>\n", "pgnOfExtendedPacketedMessage>\n"}, {30, 30}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ExtendedMessageRequestToSend_pgnOfExtendedPacketedMessage_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ExtendedMessageRequestToSend_pgnOfExtendedPacketedMessage_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageRequestToSend.pgnOfExtendedPacketedMessage", &INTEGER_ber_, &IsobusMessageTypes::INT24nb_raw_, &INTEGER_text_, &ExtendedMessageRequestToSend_pgnOfExtendedPacketedMessage_xer_, &INTEGER_json_, &ExtendedMessageRequestToSend_pgnOfExtendedPacketedMessage_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ExtendedMessageRequestToSend_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
// No XER for ExtendedMessageRequestToSend
const TTCN_Typedescriptor_t ExtendedMessageRequestToSend_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageRequestToSend", NULL, &ExtendedMessageRequestToSend_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ETP__NextPacketNumberToSend_raw_ = {32,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t ETP__NextPacketNumberToSend_xer_ = { {"ETP_NextPacketNumberToSend>\n", "ETP_NextPacketNumberToSend>\n"}, {28, 28}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ETP__NextPacketNumberToSend_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ETP__NextPacketNumberToSend_descr_ = { "@IsobusCMMessageTypes.ETP_NextPacketNumberToSend", &INTEGER_ber_, &ETP__NextPacketNumberToSend_raw_, &INTEGER_text_, &ETP__NextPacketNumberToSend_xer_, &INTEGER_json_, &ETP__NextPacketNumberToSend_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ExtendedMessageClearToSend_ctrl_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t ExtendedMessageClearToSend_ctrl_xer_ = { {"ctrl>\n", "ctrl>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int ExtendedMessageClearToSend_ctrl_oer_ext_arr_[0] = {};
const int ExtendedMessageClearToSend_ctrl_oer_p_[0] = {};
const TTCN_OERdescriptor_t ExtendedMessageClearToSend_ctrl_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ExtendedMessageClearToSend_ctrl_oer_ext_arr_, 0, ExtendedMessageClearToSend_ctrl_oer_p_};
const TTCN_Typedescriptor_t ExtendedMessageClearToSend_ctrl_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageClearToSend.ctrl", &OCTETSTRING_ber_, &ExtendedMessageClearToSend_ctrl_raw_, &OCTETSTRING_text_, &ExtendedMessageClearToSend_ctrl_xer_, &OCTETSTRING_json_, &ExtendedMessageClearToSend_ctrl_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t ExtendedMessageClearToSend_NumberOfPacketsToSend_xer_ = { {"NumberOfPacketsToSend>\n", "NumberOfPacketsToSend>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ExtendedMessageClearToSend_NumberOfPacketsToSend_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ExtendedMessageClearToSend_NumberOfPacketsToSend_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageClearToSend.NumberOfPacketsToSend", &INTEGER_ber_, &General__Types::INT1_raw_, &INTEGER_text_, &ExtendedMessageClearToSend_NumberOfPacketsToSend_xer_, &INTEGER_json_, &ExtendedMessageClearToSend_NumberOfPacketsToSend_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t ExtendedMessageClearToSend_nextPacketNumberToSend_xer_ = { {"nextPacketNumberToSend>\n", "nextPacketNumberToSend>\n"}, {24, 24}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ExtendedMessageClearToSend_nextPacketNumberToSend_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ExtendedMessageClearToSend_nextPacketNumberToSend_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageClearToSend.nextPacketNumberToSend", &INTEGER_ber_, &ETP__NextPacketNumberToSend_raw_, &INTEGER_text_, &ExtendedMessageClearToSend_nextPacketNumberToSend_xer_, &INTEGER_json_, &ExtendedMessageClearToSend_nextPacketNumberToSend_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t ExtendedMessageClearToSend_pgnOfExtendedPacketedMessage_xer_ = { {"pgnOfExtendedPacketedMessage>\n", "pgnOfExtendedPacketedMessage>\n"}, {30, 30}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ExtendedMessageClearToSend_pgnOfExtendedPacketedMessage_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ExtendedMessageClearToSend_pgnOfExtendedPacketedMessage_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageClearToSend.pgnOfExtendedPacketedMessage", &INTEGER_ber_, &IsobusMessageTypes::INT24nb_raw_, &INTEGER_text_, &ExtendedMessageClearToSend_pgnOfExtendedPacketedMessage_xer_, &INTEGER_json_, &ExtendedMessageClearToSend_pgnOfExtendedPacketedMessage_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ExtendedMessageClearToSend_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
// No XER for ExtendedMessageClearToSend
const TTCN_Typedescriptor_t ExtendedMessageClearToSend_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageClearToSend", NULL, &ExtendedMessageClearToSend_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ETP__NoPacketForOffset_raw_ = {8,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t ETP__NoPacketForOffset_xer_ = { {"ETP_NoPacketForOffset>\n", "ETP_NoPacketForOffset>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ETP__NoPacketForOffset_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ETP__NoPacketForOffset_descr_ = { "@IsobusCMMessageTypes.ETP_NoPacketForOffset", &INTEGER_ber_, &ETP__NoPacketForOffset_raw_, &INTEGER_text_, &ETP__NoPacketForOffset_xer_, &INTEGER_json_, &ETP__NoPacketForOffset_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ExtendedMessageDataPacketOffset_ctrl_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t ExtendedMessageDataPacketOffset_ctrl_xer_ = { {"ctrl>\n", "ctrl>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int ExtendedMessageDataPacketOffset_ctrl_oer_ext_arr_[0] = {};
const int ExtendedMessageDataPacketOffset_ctrl_oer_p_[0] = {};
const TTCN_OERdescriptor_t ExtendedMessageDataPacketOffset_ctrl_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ExtendedMessageDataPacketOffset_ctrl_oer_ext_arr_, 0, ExtendedMessageDataPacketOffset_ctrl_oer_p_};
const TTCN_Typedescriptor_t ExtendedMessageDataPacketOffset_ctrl_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageDataPacketOffset.ctrl", &OCTETSTRING_ber_, &ExtendedMessageDataPacketOffset_ctrl_raw_, &OCTETSTRING_text_, &ExtendedMessageDataPacketOffset_ctrl_xer_, &OCTETSTRING_json_, &ExtendedMessageDataPacketOffset_ctrl_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t ExtendedMessageDataPacketOffset_numberOfPacketsToWhichToApplyTheOffset_xer_ = { {"numberOfPacketsToWhichToApplyTheOffset>\n", "numberOfPacketsToWhichToApplyTheOffset>\n"}, {40, 40}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ExtendedMessageDataPacketOffset_numberOfPacketsToWhichToApplyTheOffset_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ExtendedMessageDataPacketOffset_numberOfPacketsToWhichToApplyTheOffset_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageDataPacketOffset.numberOfPacketsToWhichToApplyTheOffset", &INTEGER_ber_, &ETP__NoPacketForOffset_raw_, &INTEGER_text_, &ExtendedMessageDataPacketOffset_numberOfPacketsToWhichToApplyTheOffset_xer_, &INTEGER_json_, &ExtendedMessageDataPacketOffset_numberOfPacketsToWhichToApplyTheOffset_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t ExtendedMessageDataPacketOffset_totalNumberOfPackets_xer_ = { {"totalNumberOfPackets>\n", "totalNumberOfPackets>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ExtendedMessageDataPacketOffset_totalNumberOfPackets_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ExtendedMessageDataPacketOffset_totalNumberOfPackets_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageDataPacketOffset.totalNumberOfPackets", &INTEGER_ber_, &NUMBER__OF__PACKETS_raw_, &INTEGER_text_, &ExtendedMessageDataPacketOffset_totalNumberOfPackets_xer_, &INTEGER_json_, &ExtendedMessageDataPacketOffset_totalNumberOfPackets_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t ExtendedMessageDataPacketOffset_dataPacketOffset_xer_ = { {"dataPacketOffset>\n", "dataPacketOffset>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ExtendedMessageDataPacketOffset_dataPacketOffset_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ExtendedMessageDataPacketOffset_dataPacketOffset_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageDataPacketOffset.dataPacketOffset", &INTEGER_ber_, &ETP__NextPacketNumberToSend_raw_, &INTEGER_text_, &ExtendedMessageDataPacketOffset_dataPacketOffset_xer_, &INTEGER_json_, &ExtendedMessageDataPacketOffset_dataPacketOffset_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t ExtendedMessageDataPacketOffset_pgnOfExtendedPacketedMessage_xer_ = { {"pgnOfExtendedPacketedMessage>\n", "pgnOfExtendedPacketedMessage>\n"}, {30, 30}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ExtendedMessageDataPacketOffset_pgnOfExtendedPacketedMessage_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ExtendedMessageDataPacketOffset_pgnOfExtendedPacketedMessage_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageDataPacketOffset.pgnOfExtendedPacketedMessage", &INTEGER_ber_, &IsobusMessageTypes::INT24nb_raw_, &INTEGER_text_, &ExtendedMessageDataPacketOffset_pgnOfExtendedPacketedMessage_xer_, &INTEGER_json_, &ExtendedMessageDataPacketOffset_pgnOfExtendedPacketedMessage_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ExtendedMessageDataPacketOffset_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
// No XER for ExtendedMessageDataPacketOffset
const TTCN_Typedescriptor_t ExtendedMessageDataPacketOffset_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageDataPacketOffset", NULL, &ExtendedMessageDataPacketOffset_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ExtendedMessageEndOfMessageAcknowledgement_ctrl_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t ExtendedMessageEndOfMessageAcknowledgement_ctrl_xer_ = { {"ctrl>\n", "ctrl>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int ExtendedMessageEndOfMessageAcknowledgement_ctrl_oer_ext_arr_[0] = {};
const int ExtendedMessageEndOfMessageAcknowledgement_ctrl_oer_p_[0] = {};
const TTCN_OERdescriptor_t ExtendedMessageEndOfMessageAcknowledgement_ctrl_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ExtendedMessageEndOfMessageAcknowledgement_ctrl_oer_ext_arr_, 0, ExtendedMessageEndOfMessageAcknowledgement_ctrl_oer_p_};
const TTCN_Typedescriptor_t ExtendedMessageEndOfMessageAcknowledgement_ctrl_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageEndOfMessageAcknowledgement.ctrl", &OCTETSTRING_ber_, &ExtendedMessageEndOfMessageAcknowledgement_ctrl_raw_, &OCTETSTRING_text_, &ExtendedMessageEndOfMessageAcknowledgement_ctrl_xer_, &OCTETSTRING_json_, &ExtendedMessageEndOfMessageAcknowledgement_ctrl_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t ExtendedMessageEndOfMessageAcknowledgement_numberOfBytesTransferred_xer_ = { {"numberOfBytesTransferred>\n", "numberOfBytesTransferred>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ExtendedMessageEndOfMessageAcknowledgement_numberOfBytesTransferred_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ExtendedMessageEndOfMessageAcknowledgement_numberOfBytesTransferred_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageEndOfMessageAcknowledgement.numberOfBytesTransferred", &INTEGER_ber_, &ETP__MSG__SIZE_raw_, &INTEGER_text_, &ExtendedMessageEndOfMessageAcknowledgement_numberOfBytesTransferred_xer_, &INTEGER_json_, &ExtendedMessageEndOfMessageAcknowledgement_numberOfBytesTransferred_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t ExtendedMessageEndOfMessageAcknowledgement_pgnOfExtendedPacketedMessage_xer_ = { {"pgnOfExtendedPacketedMessage>\n", "pgnOfExtendedPacketedMessage>\n"}, {30, 30}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ExtendedMessageEndOfMessageAcknowledgement_pgnOfExtendedPacketedMessage_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ExtendedMessageEndOfMessageAcknowledgement_pgnOfExtendedPacketedMessage_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageEndOfMessageAcknowledgement.pgnOfExtendedPacketedMessage", &INTEGER_ber_, &IsobusMessageTypes::INT24nb_raw_, &INTEGER_text_, &ExtendedMessageEndOfMessageAcknowledgement_pgnOfExtendedPacketedMessage_xer_, &INTEGER_json_, &ExtendedMessageEndOfMessageAcknowledgement_pgnOfExtendedPacketedMessage_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ExtendedMessageEndOfMessageAcknowledgement_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
// No XER for ExtendedMessageEndOfMessageAcknowledgement
const TTCN_Typedescriptor_t ExtendedMessageEndOfMessageAcknowledgement_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageEndOfMessageAcknowledgement", NULL, &ExtendedMessageEndOfMessageAcknowledgement_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t e__ETP__ConnectionAbort__AbortReason_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,8,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
// No XER for e__ETP__ConnectionAbort__AbortReason
const TTCN_Typedescriptor_t e__ETP__ConnectionAbort__AbortReason_descr_ = { "@IsobusCMMessageTypes.e_ETP_ConnectionAbort_AbortReason", NULL, &e__ETP__ConnectionAbort__AbortReason_raw_, NULL, NULL, &ENUMERATED_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ExtendedMessageConnectionAbort_ctrl_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t ExtendedMessageConnectionAbort_ctrl_xer_ = { {"ctrl>\n", "ctrl>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int ExtendedMessageConnectionAbort_ctrl_oer_ext_arr_[0] = {};
const int ExtendedMessageConnectionAbort_ctrl_oer_p_[0] = {};
const TTCN_OERdescriptor_t ExtendedMessageConnectionAbort_ctrl_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ExtendedMessageConnectionAbort_ctrl_oer_ext_arr_, 0, ExtendedMessageConnectionAbort_ctrl_oer_p_};
const TTCN_Typedescriptor_t ExtendedMessageConnectionAbort_ctrl_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageConnectionAbort.ctrl", &OCTETSTRING_ber_, &ExtendedMessageConnectionAbort_ctrl_raw_, &OCTETSTRING_text_, &ExtendedMessageConnectionAbort_ctrl_xer_, &OCTETSTRING_json_, &ExtendedMessageConnectionAbort_ctrl_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ExtendedMessageConnectionAbort_reserved3_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t ExtendedMessageConnectionAbort_reserved3_xer_ = { {"reserved3>\n", "reserved3>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int ExtendedMessageConnectionAbort_reserved3_oer_ext_arr_[0] = {};
const int ExtendedMessageConnectionAbort_reserved3_oer_p_[0] = {};
const TTCN_OERdescriptor_t ExtendedMessageConnectionAbort_reserved3_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ExtendedMessageConnectionAbort_reserved3_oer_ext_arr_, 0, ExtendedMessageConnectionAbort_reserved3_oer_p_};
const TTCN_Typedescriptor_t ExtendedMessageConnectionAbort_reserved3_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageConnectionAbort.reserved3", &OCTETSTRING_ber_, &ExtendedMessageConnectionAbort_reserved3_raw_, &OCTETSTRING_text_, &ExtendedMessageConnectionAbort_reserved3_xer_, &OCTETSTRING_json_, &ExtendedMessageConnectionAbort_reserved3_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ExtendedMessageConnectionAbort_reserved4_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t ExtendedMessageConnectionAbort_reserved4_xer_ = { {"reserved4>\n", "reserved4>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int ExtendedMessageConnectionAbort_reserved4_oer_ext_arr_[0] = {};
const int ExtendedMessageConnectionAbort_reserved4_oer_p_[0] = {};
const TTCN_OERdescriptor_t ExtendedMessageConnectionAbort_reserved4_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ExtendedMessageConnectionAbort_reserved4_oer_ext_arr_, 0, ExtendedMessageConnectionAbort_reserved4_oer_p_};
const TTCN_Typedescriptor_t ExtendedMessageConnectionAbort_reserved4_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageConnectionAbort.reserved4", &OCTETSTRING_ber_, &ExtendedMessageConnectionAbort_reserved4_raw_, &OCTETSTRING_text_, &ExtendedMessageConnectionAbort_reserved4_xer_, &OCTETSTRING_json_, &ExtendedMessageConnectionAbort_reserved4_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ExtendedMessageConnectionAbort_reserved5_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
const XERdescriptor_t ExtendedMessageConnectionAbort_reserved5_xer_ = { {"reserved5>\n", "reserved5>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int ExtendedMessageConnectionAbort_reserved5_oer_ext_arr_[0] = {};
const int ExtendedMessageConnectionAbort_reserved5_oer_p_[0] = {};
const TTCN_OERdescriptor_t ExtendedMessageConnectionAbort_reserved5_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ExtendedMessageConnectionAbort_reserved5_oer_ext_arr_, 0, ExtendedMessageConnectionAbort_reserved5_oer_p_};
const TTCN_Typedescriptor_t ExtendedMessageConnectionAbort_reserved5_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageConnectionAbort.reserved5", &OCTETSTRING_ber_, &ExtendedMessageConnectionAbort_reserved5_raw_, &OCTETSTRING_text_, &ExtendedMessageConnectionAbort_reserved5_xer_, &OCTETSTRING_json_, &ExtendedMessageConnectionAbort_reserved5_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t ExtendedMessageConnectionAbort_pgnOfExtendedPacketedMessage_xer_ = { {"pgnOfExtendedPacketedMessage>\n", "pgnOfExtendedPacketedMessage>\n"}, {30, 30}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ExtendedMessageConnectionAbort_pgnOfExtendedPacketedMessage_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ExtendedMessageConnectionAbort_pgnOfExtendedPacketedMessage_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageConnectionAbort.pgnOfExtendedPacketedMessage", &INTEGER_ber_, &IsobusMessageTypes::INT24nb_raw_, &INTEGER_text_, &ExtendedMessageConnectionAbort_pgnOfExtendedPacketedMessage_xer_, &INTEGER_json_, &ExtendedMessageConnectionAbort_pgnOfExtendedPacketedMessage_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ExtendedMessageConnectionAbort_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
// No XER for ExtendedMessageConnectionAbort
const TTCN_Typedescriptor_t ExtendedMessageConnectionAbort_descr_ = { "@IsobusCMMessageTypes.ExtendedMessageConnectionAbort", NULL, &ExtendedMessageConnectionAbort_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ETP__CM_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
// No XER for ETP__CM
const TTCN_Typedescriptor_t ETP__CM_descr_ = { "@IsobusCMMessageTypes.ETP_CM", NULL, &ETP__CM_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t TP__DT_seq__no_xer_ = { {"seq_no>\n", "seq_no>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t TP__DT_seq__no_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t TP__DT_seq__no_descr_ = { "@IsobusCMMessageTypes.TP_DT.seq_no", &INTEGER_ber_, &SEQ__NO_raw_, &INTEGER_text_, &TP__DT_seq__no_xer_, &INTEGER_json_, &TP__DT_seq__no_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t TP__DT_data_xer_ = { {"data>\n", "data>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int TP__DT_data_oer_ext_arr_[0] = {};
const int TP__DT_data_oer_p_[0] = {};
const TTCN_OERdescriptor_t TP__DT_data_oer_ = { -1, TRUE, 7, FALSE, 0, 0, TP__DT_data_oer_ext_arr_, 0, TP__DT_data_oer_p_};
const TTCN_Typedescriptor_t TP__DT_data_descr_ = { "@IsobusCMMessageTypes.TP_DT.data", &OCTETSTRING_ber_, &General__Types::OCT7_raw_, &OCTETSTRING_text_, &TP__DT_data_xer_, &OCTETSTRING_json_, &TP__DT_data_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t TP__DT_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
// No XER for TP__DT
const TTCN_Typedescriptor_t TP__DT_descr_ = { "@IsobusCMMessageTypes.TP_DT", NULL, &TP__DT_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t ETP__DT_seq__no_xer_ = { {"seq_no>\n", "seq_no>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const TTCN_OERdescriptor_t ETP__DT_seq__no_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
const TTCN_Typedescriptor_t ETP__DT_seq__no_descr_ = { "@IsobusCMMessageTypes.ETP_DT.seq_no", &INTEGER_ber_, &SEQ__NO_raw_, &INTEGER_text_, &ETP__DT_seq__no_xer_, &INTEGER_json_, &ETP__DT_seq__no_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const XERdescriptor_t ETP__DT_data_xer_ = { {"data>\n", "data>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
const int ETP__DT_data_oer_ext_arr_[0] = {};
const int ETP__DT_data_oer_p_[0] = {};
const TTCN_OERdescriptor_t ETP__DT_data_oer_ = { -1, TRUE, 7, FALSE, 0, 0, ETP__DT_data_oer_ext_arr_, 0, ETP__DT_data_oer_p_};
const TTCN_Typedescriptor_t ETP__DT_data_descr_ = { "@IsobusCMMessageTypes.ETP_DT.data", &OCTETSTRING_ber_, &General__Types::OCT7_raw_, &OCTETSTRING_text_, &ETP__DT_data_xer_, &OCTETSTRING_json_, &ETP__DT_data_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
const TTCN_RAWdescriptor_t ETP__DT_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
// No XER for ETP__DT
const TTCN_Typedescriptor_t ETP__DT_descr_ = { "@IsobusCMMessageTypes.ETP_DT", NULL, &ETP__DT_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
TTCN_Module module_object("IsobusCMMessageTypes", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_6,
current_runtime_version.requires_minor_version_6,
current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_1);
/* Member functions of C++ classes */
RequestToSend::RequestToSend()
{
}
RequestToSend::RequestToSend(const OCTETSTRING& par_ctrl,
const INTEGER& par_msgSizeInBytes,
const INTEGER& par_totalNumberOfPackets,
const INTEGER& par_maxNoOfPacketsInResponseToCTS,
const INTEGER& par_pgnOfMultiPacketMessage)
: field_ctrl(par_ctrl),
field_msgSizeInBytes(par_msgSizeInBytes),
field_totalNumberOfPackets(par_totalNumberOfPackets),
field_maxNoOfPacketsInResponseToCTS(par_maxNoOfPacketsInResponseToCTS),
field_pgnOfMultiPacketMessage(par_pgnOfMultiPacketMessage)
{
}
RequestToSend::RequestToSend(const RequestToSend& other_value)
{
if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @IsobusCMMessageTypes.RequestToSend.");
if (other_value.ctrl().is_bound()) field_ctrl = other_value.ctrl();
else field_ctrl.clean_up();
if (other_value.msgSizeInBytes().is_bound()) field_msgSizeInBytes = other_value.msgSizeInBytes();
else field_msgSizeInBytes.clean_up();
if (other_value.totalNumberOfPackets().is_bound()) field_totalNumberOfPackets = other_value.totalNumberOfPackets();
else field_totalNumberOfPackets.clean_up();
if (other_value.maxNoOfPacketsInResponseToCTS().is_bound()) field_maxNoOfPacketsInResponseToCTS = other_value.maxNoOfPacketsInResponseToCTS();
else field_maxNoOfPacketsInResponseToCTS.clean_up();
if (other_value.pgnOfMultiPacketMessage().is_bound()) field_pgnOfMultiPacketMessage = other_value.pgnOfMultiPacketMessage();
else field_pgnOfMultiPacketMessage.clean_up();
}
void RequestToSend::clean_up()
{
field_ctrl.clean_up();
field_msgSizeInBytes.clean_up();
field_totalNumberOfPackets.clean_up();
field_maxNoOfPacketsInResponseToCTS.clean_up();
field_pgnOfMultiPacketMessage.clean_up();
}
const TTCN_Typedescriptor_t* RequestToSend::get_descriptor() const { return &RequestToSend_descr_; }
RequestToSend& RequestToSend::operator=(const RequestToSend& other_value)
{
if (this != &other_value) {
if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @IsobusCMMessageTypes.RequestToSend.");
if (other_value.ctrl().is_bound()) field_ctrl = other_value.ctrl();
else field_ctrl.clean_up();
if (other_value.msgSizeInBytes().is_bound()) field_msgSizeInBytes = other_value.msgSizeInBytes();
else field_msgSizeInBytes.clean_up();
if (other_value.totalNumberOfPackets().is_bound()) field_totalNumberOfPackets = other_value.totalNumberOfPackets();
else field_totalNumberOfPackets.clean_up();
if (other_value.maxNoOfPacketsInResponseToCTS().is_bound()) field_maxNoOfPacketsInResponseToCTS = other_value.maxNoOfPacketsInResponseToCTS();
else field_maxNoOfPacketsInResponseToCTS.clean_up();
if (other_value.pgnOfMultiPacketMessage().is_bound()) field_pgnOfMultiPacketMessage = other_value.pgnOfMultiPacketMessage();
else field_pgnOfMultiPacketMessage.clean_up();
}
return *this;
}
boolean RequestToSend::operator==(const RequestToSend& other_value) const
{
return field_ctrl==other_value.field_ctrl
&& field_msgSizeInBytes==other_value.field_msgSizeInBytes
&& field_totalNumberOfPackets==other_value.field_totalNumberOfPackets
&& field_maxNoOfPacketsInResponseToCTS==other_value.field_maxNoOfPacketsInResponseToCTS
&& field_pgnOfMultiPacketMessage==other_value.field_pgnOfMultiPacketMessage;
}
boolean RequestToSend::is_bound() const
{
return (field_ctrl.is_bound())
|| (field_msgSizeInBytes.is_bound())
|| (field_totalNumberOfPackets.is_bound())
|| (field_maxNoOfPacketsInResponseToCTS.is_bound())
|| (field_pgnOfMultiPacketMessage.is_bound());
}
boolean RequestToSend::is_value() const
{
return field_ctrl.is_value()
&& field_msgSizeInBytes.is_value()
&& field_totalNumberOfPackets.is_value()
&& field_maxNoOfPacketsInResponseToCTS.is_value()
&& field_pgnOfMultiPacketMessage.is_value();
}
void RequestToSend::log() const
{
if (!is_bound()) {
TTCN_Logger::log_event_unbound();
return;
}
TTCN_Logger::log_event_str("{ ctrl := ");
field_ctrl.log();
TTCN_Logger::log_event_str(", msgSizeInBytes := ");
field_msgSizeInBytes.log();
TTCN_Logger::log_event_str(", totalNumberOfPackets := ");
field_totalNumberOfPackets.log();
TTCN_Logger::log_event_str(", maxNoOfPacketsInResponseToCTS := ");
field_maxNoOfPacketsInResponseToCTS.log();
TTCN_Logger::log_event_str(", pgnOfMultiPacketMessage := ");
field_pgnOfMultiPacketMessage.log();
TTCN_Logger::log_event_str(" }");
}
void RequestToSend::set_param(Module_Param& param)
{
param.basic_check(Module_Param::BC_VALUE, "record value");
switch (param.get_type()) {
case Module_Param::MP_Value_List:
if (5<param.get_size()) {
param.error("record value of type @IsobusCMMessageTypes.RequestToSend has 5 fields but list value has %d fields", (int)param.get_size());
}
if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) ctrl().set_param(*param.get_elem(0));
if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) msgSizeInBytes().set_param(*param.get_elem(1));
if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) totalNumberOfPackets().set_param(*param.get_elem(2));
if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) maxNoOfPacketsInResponseToCTS().set_param(*param.get_elem(3));
if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) pgnOfMultiPacketMessage().set_param(*param.get_elem(4));
break;
case Module_Param::MP_Assignment_List: {
Vector<bool> value_used(param.get_size());
value_used.resize(param.get_size(), FALSE);
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
Module_Param* const curr_param = param.get_elem(val_idx);
if (!strcmp(curr_param->get_id()->get_name(), "ctrl")) {
if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
ctrl().set_param(*curr_param);
}
value_used[val_idx]=TRUE;
}
}
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
Module_Param* const curr_param = param.get_elem(val_idx);
if (!strcmp(curr_param->get_id()->get_name(), "msgSizeInBytes")) {
if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
msgSizeInBytes().set_param(*curr_param);
}
value_used[val_idx]=TRUE;
}
}
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
Module_Param* const curr_param = param.get_elem(val_idx);
if (!strcmp(curr_param->get_id()->get_name(), "totalNumberOfPackets")) {
if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
totalNumberOfPackets().set_param(*curr_param);
}
value_used[val_idx]=TRUE;
}
}
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
Module_Param* const curr_param = param.get_elem(val_idx);
if (!strcmp(curr_param->get_id()->get_name(), "maxNoOfPacketsInResponseToCTS")) {
if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
maxNoOfPacketsInResponseToCTS().set_param(*curr_param);
}
value_used[val_idx]=TRUE;
}
}
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
Module_Param* const curr_param = param.get_elem(val_idx);
if (!strcmp(curr_param->get_id()->get_name(), "pgnOfMultiPacketMessage")) {
if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
pgnOfMultiPacketMessage().set_param(*curr_param);
}
value_used[val_idx]=TRUE;
}
}
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
Module_Param* const curr_param = param.get_elem(val_idx);
curr_param->error("Non existent field name in type @IsobusCMMessageTypes.RequestToSend: %s", curr_param->get_id()->get_name());
break;
}
} break;
default:
param.type_error("record value", "@IsobusCMMessageTypes.RequestToSend");
}
}
void RequestToSend::set_implicit_omit()
{
if (ctrl().is_bound()) ctrl().set_implicit_omit();
if (msgSizeInBytes().is_bound()) msgSizeInBytes().set_implicit_omit();
if (totalNumberOfPackets().is_bound()) totalNumberOfPackets().set_implicit_omit();
if (maxNoOfPacketsInResponseToCTS().is_bound()) maxNoOfPacketsInResponseToCTS().set_implicit_omit();
if (pgnOfMultiPacketMessage().is_bound()) pgnOfMultiPacketMessage().set_implicit_omit();
}
void RequestToSend::encode_text(Text_Buf& text_buf) const
{
field_ctrl.encode_text(text_buf);
field_msgSizeInBytes.encode_text(text_buf);
field_totalNumberOfPackets.encode_text(text_buf);
field_maxNoOfPacketsInResponseToCTS.encode_text(text_buf);
field_pgnOfMultiPacketMessage.encode_text(text_buf);
}
void RequestToSend::decode_text(Text_Buf& text_buf)
{
field_ctrl.decode_text(text_buf);
field_msgSizeInBytes.decode_text(text_buf);
field_totalNumberOfPackets.decode_text(text_buf);
field_maxNoOfPacketsInResponseToCTS.decode_text(text_buf);
field_pgnOfMultiPacketMessage.decode_text(text_buf);
}
void RequestToSend::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
{
va_list pvar;
va_start(pvar, p_coding);
switch(p_coding) {
case TTCN_EncDec::CT_BER: {
TTCN_EncDec_ErrorContext ec("While BER-encoding type '%s': ", p_td.name);
unsigned BER_coding=va_arg(pvar, unsigned);
BER_encode_chk_coding(BER_coding);
ASN_BER_TLV_t *tlv=BER_encode_TLV(p_td, BER_coding);
tlv->put_in_buffer(p_buf);
ASN_BER_TLV_t::destruct(tlv);
break;}
case TTCN_EncDec::CT_RAW: {
TTCN_EncDec_ErrorContext ec("While RAW-encoding type '%s': ", p_td.name);
if(!p_td.raw)
TTCN_EncDec_ErrorContext::error_internal
("No RAW descriptor available for type '%s'.", p_td.name);
RAW_enc_tr_pos rp;
rp.level=0;
rp.pos=NULL;
RAW_enc_tree root(FALSE, NULL, &rp, 1, p_td.raw);
RAW_encode(p_td, root);
root.put_to_buf(p_buf);
break;}
case TTCN_EncDec::CT_TEXT: {
TTCN_EncDec_ErrorContext ec("While TEXT-encoding type '%s': ", p_td.name);
if(!p_td.text)
TTCN_EncDec_ErrorContext::error_internal
("No TEXT descriptor available for type '%s'.", p_td.name);
TEXT_encode(p_td,p_buf);
break;}
case TTCN_EncDec::CT_XER: {
TTCN_EncDec_ErrorContext ec("While XER-encoding type '%s': ", p_td.name);
unsigned XER_coding=va_arg(pvar, unsigned);
XER_encode_chk_coding(XER_coding, p_td);
XER_encode(*(p_td.xer),p_buf, XER_coding, 0, 0, 0);
p_buf.put_c('\n');
break;}
case TTCN_EncDec::CT_JSON: {
TTCN_EncDec_ErrorContext ec("While JSON-encoding type '%s': ", p_td.name);
if(!p_td.json)
TTCN_EncDec_ErrorContext::error_internal
("No JSON descriptor available for type '%s'.", p_td.name);
JSON_Tokenizer tok(va_arg(pvar, int) != 0);
JSON_encode(p_td, tok);
p_buf.put_s(tok.get_buffer_length(), (const unsigned char*)tok.get_buffer());
break;}
case TTCN_EncDec::CT_OER: {
TTCN_EncDec_ErrorContext ec("While OER-encoding type '%s': ", p_td.name);
if(!p_td.oer)
TTCN_EncDec_ErrorContext::error_internal
("No OER descriptor available for type '%s'.", p_td.name);
OER_encode(p_td, p_buf);
break;}
default:
TTCN_error("Unknown coding method requested to encode type '%s'", p_td.name);
}
va_end(pvar);
}
void RequestToSend::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
{
va_list pvar;
va_start(pvar, p_coding);
switch(p_coding) {
case TTCN_EncDec::CT_BER: {
TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
unsigned L_form=va_arg(pvar, unsigned);
ASN_BER_TLV_t tlv;
BER_decode_str2TLV(p_buf, tlv, L_form);
BER_decode_TLV(p_td, tlv, L_form);
if(tlv.isComplete) p_buf.increase_pos(tlv.get_len());
break;}
case TTCN_EncDec::CT_RAW: {
TTCN_EncDec_ErrorContext ec("While RAW-decoding type '%s': ", p_td.name);
if(!p_td.raw)
TTCN_EncDec_ErrorContext::error_internal
("No RAW descriptor available for type '%s'.", p_td.name);
raw_order_t r_order;
switch(p_td.raw->top_bit_order) {
case TOP_BIT_LEFT:
r_order=ORDER_LSB;
break;
case TOP_BIT_RIGHT:
default:
r_order=ORDER_MSB;
}
int rawr = RAW_decode(p_td, p_buf, p_buf.get_len()*8, r_order);
if(rawr<0) switch (-rawr) {
case TTCN_EncDec::ET_INCOMPL_MSG:
case TTCN_EncDec::ET_LEN_ERR:
ec.error((TTCN_EncDec::error_type_t)-rawr, "Can not decode type '%s', because incomplete message was received", p_td.name);
break;
case 1:
default:
ec.error(TTCN_EncDec::ET_INVAL_MSG, "Can not decode type '%s', because invalid message was received", p_td.name);
break;
}
break;}
case TTCN_EncDec::CT_TEXT: {
Limit_Token_List limit;
TTCN_EncDec_ErrorContext ec("While TEXT-decoding type '%s': ", p_td.name);
if(!p_td.text)
TTCN_EncDec_ErrorContext::error_internal
("No TEXT descriptor available for type '%s'.", p_td.name);
const unsigned char *b_data=p_buf.get_data();
if(b_data[p_buf.get_len()-1]!='\0'){
p_buf.set_pos(p_buf.get_len());
p_buf.put_zero(8,ORDER_LSB);
p_buf.rewind();
}
if(TEXT_decode(p_td,p_buf,limit)<0)
ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name);
break;}
case TTCN_EncDec::CT_XER: {
TTCN_EncDec_ErrorContext ec("While XER-decoding type '%s': ", p_td.name);
unsigned XER_coding=va_arg(pvar, unsigned);
XER_encode_chk_coding(XER_coding, p_td);
XmlReaderWrap reader(p_buf);
for (int rd_ok=reader.Read(); rd_ok==1; rd_ok=reader.Read()) {
if (reader.NodeType() == XML_READER_TYPE_ELEMENT) break;
}
XER_decode(*(p_td.xer), reader, XER_coding | XER_TOPLEVEL, XER_NONE, 0);
size_t bytes = reader.ByteConsumed();
p_buf.set_pos(bytes);
break;}
case TTCN_EncDec::CT_JSON: {
TTCN_EncDec_ErrorContext ec("While JSON-decoding type '%s': ", p_td.name);
if(!p_td.json)
TTCN_EncDec_ErrorContext::error_internal
("No JSON descriptor available for type '%s'.", p_td.name);
JSON_Tokenizer tok((const char*)p_buf.get_data(), p_buf.get_len());
if(JSON_decode(p_td, tok, FALSE)<0)
ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name);
p_buf.set_pos(tok.get_buf_pos());
break;}
case TTCN_EncDec::CT_OER: {
TTCN_EncDec_ErrorContext ec("While OER-decoding type '%s': ", p_td.name);
if(!p_td.oer)
TTCN_EncDec_ErrorContext::error_internal
("No OER descriptor available for type '%s'.", p_td.name);
OER_struct p_oer;
OER_decode(p_td, p_buf, p_oer);
break;}
default:
TTCN_error("Unknown coding method requested to decode type '%s'", p_td.name);
}
va_end(pvar);
}
int RequestToSend::RAW_decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int limit, raw_order_t top_bit_ord, boolean no_err, int, boolean, const RAW_Force_Omit* force_omit)
{ (void)no_err;
int prepaddlength=p_buf.increase_pos_padd(p_td.raw->prepadding);
limit-=prepaddlength;
size_t last_decoded_pos = p_buf.get_pos_bit();
int decoded_length = 0;
int decoded_field_length = 0;
raw_order_t local_top_order;
if(p_td.raw->top_bit_order==TOP_BIT_INHERITED)local_top_order=top_bit_ord;
else if(p_td.raw->top_bit_order==TOP_BIT_RIGHT)local_top_order=ORDER_MSB;
else local_top_order=ORDER_LSB;
RAW_Force_Omit field_0_force_omit(0, force_omit, RequestToSend_ctrl_descr_.raw->forceomit);
decoded_field_length = field_ctrl.RAW_decode(RequestToSend_ctrl_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_0_force_omit);
if (decoded_field_length < 0) return decoded_field_length;
decoded_length+=decoded_field_length;
limit-=decoded_field_length;
last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit());
RAW_Force_Omit field_1_force_omit(1, force_omit, IsobusMessageTypes::INT2_descr_.raw->forceomit);
decoded_field_length = field_msgSizeInBytes.RAW_decode(IsobusMessageTypes::INT2_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_1_force_omit);
if (decoded_field_length < 0) return decoded_field_length;
decoded_length+=decoded_field_length;
limit-=decoded_field_length;
last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit());
RAW_Force_Omit field_2_force_omit(2, force_omit, NUMBER__OF__PACKETS_descr_.raw->forceomit);
decoded_field_length = field_totalNumberOfPackets.RAW_decode(NUMBER__OF__PACKETS_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_2_force_omit);
if (decoded_field_length < 0) return decoded_field_length;
decoded_length+=decoded_field_length;
limit-=decoded_field_length;
last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit());
RAW_Force_Omit field_3_force_omit(3, force_omit, General__Types::INT1_descr_.raw->forceomit);
decoded_field_length = field_maxNoOfPacketsInResponseToCTS.RAW_decode(General__Types::INT1_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_3_force_omit);
if (decoded_field_length < 0) return decoded_field_length;
decoded_length+=decoded_field_length;
limit-=decoded_field_length;
last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit());
RAW_Force_Omit field_4_force_omit(4, force_omit, IsobusMessageTypes::PGN_descr_.raw->forceomit);
decoded_field_length = field_pgnOfMultiPacketMessage.RAW_decode(IsobusMessageTypes::PGN_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_4_force_omit);
if (decoded_field_length < 0) return decoded_field_length;
decoded_length+=decoded_field_length;
limit-=decoded_field_length;
last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit());
p_buf.set_pos_bit(last_decoded_pos);
return decoded_length+prepaddlength+p_buf.increase_pos_padd(p_td.raw->padding);
}
int RequestToSend::RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree& myleaf) const {
if (!is_bound()) TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_UNBOUND, "Encoding an unbound value.");
int encoded_length = 0;
myleaf.isleaf = FALSE;
myleaf.body.node.num_of_nodes = 5;
myleaf.body.node.nodes = init_nodes_of_enc_tree(5);
myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 0, RequestToSend_ctrl_descr_.raw);
myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, IsobusMessageTypes::INT2_descr_.raw);
myleaf.body.node.nodes[2] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 2, NUMBER__OF__PACKETS_descr_.raw);
myleaf.body.node.nodes[3] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 3, General__Types::INT1_descr_.raw);
myleaf.body.node.nodes[4] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 4, IsobusMessageTypes::PGN_descr_.raw);
encoded_length += field_ctrl.RAW_encode(RequestToSend_ctrl_descr_, *myleaf.body.node.nodes[0]);
encoded_length += field_msgSizeInBytes.RAW_encode(IsobusMessageTypes::INT2_descr_, *myleaf.body.node.nodes[1]);
encoded_length += field_totalNumberOfPackets.RAW_encode(NUMBER__OF__PACKETS_descr_, *myleaf.body.node.nodes[2]);
encoded_length += field_maxNoOfPacketsInResponseToCTS.RAW_encode(General__Types::INT1_descr_, *myleaf.body.node.nodes[3]);
encoded_length += field_pgnOfMultiPacketMessage.RAW_encode(IsobusMessageTypes::PGN_descr_, *myleaf.body.node.nodes[4]);
return myleaf.length = encoded_length;
}
struct RequestToSend_template::single_value_struct {
OCTETSTRING_template field_ctrl;
INTEGER_template field_msgSizeInBytes;
INTEGER_template field_totalNumberOfPackets;
INTEGER_template field_maxNoOfPacketsInResponseToCTS;
INTEGER_template field_pgnOfMultiPacketMessage;
};
void RequestToSend_template::set_specific()
{
if (template_selection != SPECIFIC_VALUE) {
template_sel old_selection = template_selection;
clean_up();
single_value = new single_value_struct;
set_selection(SPECIFIC_VALUE);
if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) {
single_value->field_ctrl = ANY_VALUE;
single_value->field_msgSizeInBytes = ANY_VALUE;
single_value->field_totalNumberOfPackets = ANY_VALUE;
single_value->field_maxNoOfPacketsInResponseToCTS = ANY_VALUE;
single_value->field_pgnOfMultiPacketMessage = ANY_VALUE;
}
}
}
void RequestToSend_template::copy_value(const RequestToSend& other_value)
{
single_value = new single_value_struct;
if (other_value.ctrl().is_bound()) {
single_value->field_ctrl = other_value.ctrl();
} else {
single_value->field_ctrl.clean_up();
}
if (other_value.msgSizeInBytes().is_bound()) {
single_value->field_msgSizeInBytes = other_value.msgSizeInBytes();
} else {
single_value->field_msgSizeInBytes.clean_up();
}
if (other_value.totalNumberOfPackets().is_bound()) {
single_value->field_totalNumberOfPackets = other_value.totalNumberOfPackets();
} else {
single_value->field_totalNumberOfPackets.clean_up();
}
if (other_value.maxNoOfPacketsInResponseToCTS().is_bound()) {
single_value->field_maxNoOfPacketsInResponseToCTS = other_value.maxNoOfPacketsInResponseToCTS();
} else {
single_value->field_maxNoOfPacketsInResponseToCTS.clean_up();
}
if (other_value.pgnOfMultiPacketMessage().is_bound()) {
single_value->field_pgnOfMultiPacketMessage = other_value.pgnOfMultiPacketMessage();
} else {
single_value->field_pgnOfMultiPacketMessage.clean_up();
}
set_selection(SPECIFIC_VALUE);
}
void RequestToSend_template::copy_template(const RequestToSend_template& other_value)
{
switch (other_value.template_selection) {
case SPECIFIC_VALUE:
single_value = new single_value_struct;
if (UNINITIALIZED_TEMPLATE != other_value.ctrl().get_selection()) {
single_value->field_ctrl = other_value.ctrl();
} else {
single_value->field_ctrl.clean_up();
}
if (UNINITIALIZED_TEMPLATE != other_value.msgSizeInBytes().get_selection()) {
single_value->field_msgSizeInBytes = other_value.msgSizeInBytes();
} else {
single_value->field_msgSizeInBytes.clean_up();
}
if (UNINITIALIZED_TEMPLATE != other_value.totalNumberOfPackets().get_selection()) {
single_value->field_totalNumberOfPackets = other_value.totalNumberOfPackets();
} else {
single_value->field_totalNumberOfPackets.clean_up();
}
if (UNINITIALIZED_TEMPLATE != other_value.maxNoOfPacketsInResponseToCTS().get_selection()) {
single_value->field_maxNoOfPacketsInResponseToCTS = other_value.maxNoOfPacketsInResponseToCTS();
} else {
single_value->field_maxNoOfPacketsInResponseToCTS.clean_up();
}
if (UNINITIALIZED_TEMPLATE != other_value.pgnOfMultiPacketMessage().get_selection()) {
single_value->field_pgnOfMultiPacketMessage = other_value.pgnOfMultiPacketMessage();
} else {
single_value->field_pgnOfMultiPacketMessage.clean_up();
}
case OMIT_VALUE:
case ANY_VALUE:
case ANY_OR_OMIT:
break;
case VALUE_LIST:
case COMPLEMENTED_LIST:
value_list.n_values = other_value.value_list.n_values;
value_list.list_value = new RequestToSend_template[value_list.n_values];
for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]);
break;
default:
TTCN_error("Copying an uninitialized/unsupported template of type @IsobusCMMessageTypes.RequestToSend.");
break;
}
set_selection(other_value);
}
RequestToSend_template::RequestToSend_template()
{
}
RequestToSend_template::RequestToSend_template(template_sel other_value)
: Base_Template(other_value)
{
check_single_selection(other_value);
}
RequestToSend_template::RequestToSend_template(const RequestToSend& other_value)
{
copy_value(other_value);
}
RequestToSend_template::RequestToSend_template(const OPTIONAL<RequestToSend>& other_value)
{
switch (other_value.get_selection()) {
case OPTIONAL_PRESENT:
copy_value((const RequestToSend&)other_value);
break;
case OPTIONAL_OMIT:
set_selection(OMIT_VALUE);
break;
default:
TTCN_error("Creating a template of type @IsobusCMMessageTypes.RequestToSend from an unbound optional field.");
}
}
RequestToSend_template::RequestToSend_template(const RequestToSend_template& other_value)
: Base_Template()
{
copy_template(other_value);
}
RequestToSend_template::~RequestToSend_template()
{
clean_up();
}
RequestToSend_template& RequestToSend_template::operator=(template_sel other_value)
{
check_single_selection(other_value);
clean_up();
set_selection(other_value);
return *this;
}
RequestToSend_template& RequestToSend_template::operator=(const RequestToSend& other_value)
{
clean_up();
copy_value(other_value);
return *this;
}
RequestToSend_template& RequestToSend_template::operator=(const OPTIONAL<RequestToSend>& other_value)
{
clean_up();
switch (other_value.get_selection()) {
case OPTIONAL_PRESENT:
copy_value((const RequestToSend&)other_value);
break;
case OPTIONAL_OMIT:
set_selection(OMIT_VALUE);
break;
default:
TTCN_error("Assignment of an unbound optional field to a template of type @IsobusCMMessageTypes.RequestToSend.");
}
return *this;
}
RequestToSend_template& RequestToSend_template::operator=(const RequestToSend_template& other_value)
{
if (&other_value != this) {
clean_up();
copy_template(other_value);
}
return *this;
}
boolean RequestToSend_template::match(const RequestToSend& other_value, boolean legacy) const
{
if (!other_value.is_bound()) return FALSE;
switch (template_selection) {
case ANY_VALUE:
case ANY_OR_OMIT:
return TRUE;
case OMIT_VALUE:
return FALSE;
case SPECIFIC_VALUE:
if(!other_value.ctrl().is_bound()) return FALSE;
if(!single_value->field_ctrl.match(other_value.ctrl(), legacy))return FALSE;
if(!other_value.msgSizeInBytes().is_bound()) return FALSE;
if(!single_value->field_msgSizeInBytes.match(other_value.msgSizeInBytes(), legacy))return FALSE;
if(!other_value.totalNumberOfPackets().is_bound()) return FALSE;
if(!single_value->field_totalNumberOfPackets.match(other_value.totalNumberOfPackets(), legacy))return FALSE;
if(!other_value.maxNoOfPacketsInResponseToCTS().is_bound()) return FALSE;
if(!single_value->field_maxNoOfPacketsInResponseToCTS.match(other_value.maxNoOfPacketsInResponseToCTS(), legacy))return FALSE;
if(!other_value.pgnOfMultiPacketMessage().is_bound()) return FALSE;
if(!single_value->field_pgnOfMultiPacketMessage.match(other_value.pgnOfMultiPacketMessage(), legacy))return FALSE;
return TRUE;
case VALUE_LIST:
case COMPLEMENTED_LIST:
for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST;
return template_selection == COMPLEMENTED_LIST;
default:
TTCN_error("Matching an uninitialized/unsupported template of type @IsobusCMMessageTypes.RequestToSend.");
}
return FALSE;
}
boolean RequestToSend_template::is_bound() const
{
if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE;
if (template_selection != SPECIFIC_VALUE) return TRUE;
return single_value->field_ctrl.is_bound()
||single_value->field_msgSizeInBytes.is_bound()
||single_value->field_totalNumberOfPackets.is_bound()
||single_value->field_maxNoOfPacketsInResponseToCTS.is_bound()
||single_value->field_pgnOfMultiPacketMessage.is_bound()
;
}
boolean RequestToSend_template::is_value() const
{
if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
return single_value->field_ctrl.is_value()
&&single_value->field_msgSizeInBytes.is_value()
&&single_value->field_totalNumberOfPackets.is_value()
&&single_value->field_maxNoOfPacketsInResponseToCTS.is_value()
&&single_value->field_pgnOfMultiPacketMessage.is_value();
}
void RequestToSend_template::clean_up()
{
switch (template_selection) {
case SPECIFIC_VALUE:
delete single_value;
break;
case VALUE_LIST:
case COMPLEMENTED_LIST:
delete [] value_list.list_value;
default:
break;
}
template_selection = UNINITIALIZED_TEMPLATE;
}
RequestToSend RequestToSend_template::valueof() const
{
if (template_selection != SPECIFIC_VALUE || is_ifpresent)
TTCN_error("Performing a valueof or send operation on a non-specific template of type @IsobusCMMessageTypes.RequestToSend.");
RequestToSend ret_val;
if (single_value->field_ctrl.is_bound()) {
ret_val.ctrl() = single_value->field_ctrl.valueof();
}
if (single_value->field_msgSizeInBytes.is_bound()) {
ret_val.msgSizeInBytes() = single_value->field_msgSizeInBytes.valueof();
}
if (single_value->field_totalNumberOfPackets.is_bound()) {
ret_val.totalNumberOfPackets() = single_value->field_totalNumberOfPackets.valueof();
}
if (single_value->field_maxNoOfPacketsInResponseToCTS.is_bound()) {
ret_val.maxNoOfPacketsInResponseToCTS() = single_value->field_maxNoOfPacketsInResponseToCTS.valueof();
}
if (single_value->field_pgnOfMultiPacketMessage.is_bound()) {
ret_val.pgnOfMultiPacketMessage() = single_value->field_pgnOfMultiPacketMessage.valueof();
}
return ret_val;
}
void RequestToSend_template::set_type(template_sel template_type, unsigned int list_length)
{
if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST)
TTCN_error("Setting an invalid list for a template of type @IsobusCMMessageTypes.RequestToSend.");
clean_up();
set_selection(template_type);
value_list.n_values = list_length;
value_list.list_value = new RequestToSend_template[list_length];
}
RequestToSend_template& RequestToSend_template::list_item(unsigned int list_index) const
{
if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST)
TTCN_error("Accessing a list element of a non-list template of type @IsobusCMMessageTypes.RequestToSend.");
if (list_index >= value_list.n_values)
TTCN_error("Index overflow in a value list template of type @IsobusCMMessageTypes.RequestToSend.");
return value_list.list_value[list_index];
}
OCTETSTRING_template& RequestToSend_template::ctrl()
{
set_specific();
return single_value->field_ctrl;
}
const OCTETSTRING_template& RequestToSend_template::ctrl() const
{
if (template_selection != SPECIFIC_VALUE)
TTCN_error("Accessing field ctrl of a non-specific template of type @IsobusCMMessageTypes.RequestToSend.");
return single_value->field_ctrl;
}
INTEGER_template& RequestToSend_template::msgSizeInBytes()
{
set_specific();
return single_value->field_msgSizeInBytes;
}
const INTEGER_template& RequestToSend_template::msgSizeInBytes() const
{
if (template_selection != SPECIFIC_VALUE)
TTCN_error("Accessing field msgSizeInBytes of a non-specific template of type @IsobusCMMessageTypes.RequestToSend.");
return single_value->field_msgSizeInBytes;
}
INTEGER_template& RequestToSend_template::totalNumberOfPackets()
{
set_specific();
return single_value->field_totalNumberOfPackets;
}
const INTEGER_template& RequestToSend_template::totalNumberOfPackets() const
{
if (template_selection != SPECIFIC_VALUE)
TTCN_error("Accessing field totalNumberOfPackets of a non-specific template of type @IsobusCMMessageTypes.RequestToSend.");
return single_value->field_totalNumberOfPackets;
}
INTEGER_template& RequestToSend_template::maxNoOfPacketsInResponseToCTS()
{
set_specific();
return single_value->field_maxNoOfPacketsInResponseToCTS;
}
const INTEGER_template& RequestToSend_template::maxNoOfPacketsInResponseToCTS() const
{
if (template_selection != SPECIFIC_VALUE)
TTCN_error("Accessing field maxNoOfPacketsInResponseToCTS of a non-specific template of type @IsobusCMMessageTypes.RequestToSend.");
return single_value->field_maxNoOfPacketsInResponseToCTS;
}
INTEGER_template& RequestToSend_template::pgnOfMultiPacketMessage()
{
set_specific();
return single_value->field_pgnOfMultiPacketMessage;
}
const INTEGER_template& RequestToSend_template::pgnOfMultiPacketMessage() const
{
if (template_selection != SPECIFIC_VALUE)
TTCN_error("Accessing field pgnOfMultiPacketMessage of a non-specific template of type @IsobusCMMessageTypes.RequestToSend.");
return single_value->field_pgnOfMultiPacketMessage;
}
int RequestToSend_template::size_of() const
{
if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @IsobusCMMessageTypes.RequestToSend which has an ifpresent attribute.");
switch (template_selection)
{
case SPECIFIC_VALUE:
return 5;
case VALUE_LIST:
{
if (value_list.n_values<1)
TTCN_error("Internal error: Performing sizeof() operation on a template of type @IsobusCMMessageTypes.RequestToSend containing an empty list.");
int item_size = value_list.list_value[0].size_of();
for (unsigned int l_idx = 1; l_idx < value_list.n_values; l_idx++)
{
if (value_list.list_value[l_idx].size_of()!=item_size)
TTCN_error("Performing sizeof() operation on a template of type @IsobusCMMessageTypes.RequestToSend containing a value list with different sizes.");
}
return item_size;
}
case OMIT_VALUE:
TTCN_error("Performing sizeof() operation on a template of type @IsobusCMMessageTypes.RequestToSend containing omit value.");
case ANY_VALUE:
case ANY_OR_OMIT:
TTCN_error("Performing sizeof() operation on a template of type @IsobusCMMessageTypes.RequestToSend containing */? value.");
case COMPLEMENTED_LIST:
TTCN_error("Performing sizeof() operation on a template of type @IsobusCMMessageTypes.RequestToSend containing complemented list.");
default:
TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @IsobusCMMessageTypes.RequestToSend.");
}
return 0;
}
void RequestToSend_template::log() const
{
switch (template_selection) {
case SPECIFIC_VALUE:
TTCN_Logger::log_event_str("{ ctrl := ");
single_value->field_ctrl.log();
TTCN_Logger::log_event_str(", msgSizeInBytes := ");
single_value->field_msgSizeInBytes.log();
TTCN_Logger::log_event_str(", totalNumberOfPackets := ");
single_value->field_totalNumberOfPackets.log();
TTCN_Logger::log_event_str(", maxNoOfPacketsInResponseToCTS := ");
single_value->field_maxNoOfPacketsInResponseToCTS.log();
TTCN_Logger::log_event_str(", pgnOfMultiPacketMessage := ");
single_value->field_pgnOfMultiPacketMessage.log();
TTCN_Logger::log_event_str(" }");
break;
case COMPLEMENTED_LIST:
TTCN_Logger::log_event_str("complement");
case VALUE_LIST:
TTCN_Logger::log_char('(');
for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) {
if (list_count > 0) TTCN_Logger::log_event_str(", ");
value_list.list_value[list_count].log();
}
TTCN_Logger::log_char(')');
break;
default:
log_generic();
}
log_ifpresent();
}
void RequestToSend_template::log_match(const RequestToSend& match_value, boolean legacy) const
{
if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
if(match(match_value, legacy)){
TTCN_Logger::print_logmatch_buffer();
TTCN_Logger::log_event_str(" matched");
} else{
if (template_selection == SPECIFIC_VALUE) {
size_t previous_size = TTCN_Logger::get_logmatch_buffer_len();
if(!single_value->field_ctrl.match(match_value.ctrl(), legacy)){
TTCN_Logger::log_logmatch_info(".ctrl");
single_value->field_ctrl.log_match(match_value.ctrl(), legacy);
TTCN_Logger::set_logmatch_buffer_len(previous_size);
}
if(!single_value->field_msgSizeInBytes.match(match_value.msgSizeInBytes(), legacy)){
TTCN_Logger::log_logmatch_info(".msgSizeInBytes");
single_value->field_msgSizeInBytes.log_match(match_value.msgSizeInBytes(), legacy);
TTCN_Logger::set_logmatch_buffer_len(previous_size);
}
if(!single_value->field_totalNumberOfPackets.match(match_value.totalNumberOfPackets(), legacy)){
TTCN_Logger::log_logmatch_info(".totalNumberOfPackets");
single_value->field_totalNumberOfPackets.log_match(match_value.totalNumberOfPackets(), legacy);
TTCN_Logger::set_logmatch_buffer_len(previous_size);
}
if(!single_value->field_maxNoOfPacketsInResponseToCTS.match(match_value.maxNoOfPacketsInResponseToCTS(), legacy)){
TTCN_Logger::log_logmatch_info(".maxNoOfPacketsInResponseToCTS");
single_value->field_maxNoOfPacketsInResponseToCTS.log_match(match_value.maxNoOfPacketsInResponseToCTS(), legacy);
TTCN_Logger::set_logmatch_buffer_len(previous_size);
}
if(!single_value->field_pgnOfMultiPacketMessage.match(match_value.pgnOfMultiPacketMessage(), legacy)){
TTCN_Logger::log_logmatch_info(".pgnOfMultiPacketMessage");
single_value->field_pgnOfMultiPacketMessage.log_match(match_value.pgnOfMultiPacketMessage(), legacy);
TTCN_Logger::set_logmatch_buffer_len(previous_size);
}
}else {
TTCN_Logger::print_logmatch_buffer();
match_value.log();
TTCN_Logger::log_event_str(" with ");
log();
TTCN_Logger::log_event_str(" unmatched");
}
}
return;
}
if (template_selection == SPECIFIC_VALUE) {
TTCN_Logger::log_event_str("{ ctrl := ");
single_value->field_ctrl.log_match(match_value.ctrl(), legacy);
TTCN_Logger::log_event_str(", msgSizeInBytes := ");
single_value->field_msgSizeInBytes.log_match(match_value.msgSizeInBytes(), legacy);
TTCN_Logger::log_event_str(", totalNumberOfPackets := ");
single_value->field_totalNumberOfPackets.log_match(match_value.totalNumberOfPackets(), legacy);
TTCN_Logger::log_event_str(", maxNoOfPacketsInResponseToCTS := ");
single_value->field_maxNoOfPacketsInResponseToCTS.log_match(match_value.maxNoOfPacketsInResponseToCTS(), legacy);
TTCN_Logger::log_event_str(", pgnOfMultiPacketMessage := ");
single_value->field_pgnOfMultiPacketMessage.log_match(match_value.pgnOfMultiPacketMessage(), legacy);
TTCN_Logger::log_event_str(" }");
} else {
match_value.log();
TTCN_Logger::log_event_str(" with ");
log();
if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched");
else TTCN_Logger::log_event_str(" unmatched");
}
}
void RequestToSend_template::encode_text(Text_Buf& text_buf) const
{
encode_text_base(text_buf);
switch (template_selection) {
case SPECIFIC_VALUE:
single_value->field_ctrl.encode_text(text_buf);
single_value->field_msgSizeInBytes.encode_text(text_buf);
single_value->field_totalNumberOfPackets.encode_text(text_buf);
single_value->field_maxNoOfPacketsInResponseToCTS.encode_text(text_buf);
single_value->field_pgnOfMultiPacketMessage.encode_text(text_buf);
case OMIT_VALUE:
case ANY_VALUE:
case ANY_OR_OMIT:
break;
case VALUE_LIST:
case COMPLEMENTED_LIST:
text_buf.push_int(value_list.n_values);
for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
value_list.list_value[list_count].encode_text(text_buf);
break;
default:
TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of type @IsobusCMMessageTypes.RequestToSend.");
}
}
void RequestToSend_template::decode_text(Text_Buf& text_buf)
{
clean_up();
decode_text_base(text_buf);
switch (template_selection) {
case SPECIFIC_VALUE:
single_value = new single_value_struct;
single_value->field_ctrl.decode_text(text_buf);
single_value->field_msgSizeInBytes.decode_text(text_buf);
single_value->field_totalNumberOfPackets.decode_text(text_buf);
single_value->field_maxNoOfPacketsInResponseToCTS.decode_text(text_buf);
single_value->field_pgnOfMultiPacketMessage.decode_text(text_buf);
case OMIT_VALUE:
case ANY_VALUE:
case ANY_OR_OMIT:
break;
case VALUE_LIST:
case COMPLEMENTED_LIST:
value_list.n_values = text_buf.pull_int().get_val();
value_list.list_value = new RequestToSend_template[value_list.n_values];
for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
value_list.list_value[list_count].decode_text(text_buf);
break;
default:
TTCN_error("Text decoder: An unknown/unsupported selection was received in a template of type @IsobusCMMessageTypes.RequestToSend.");
}
}
void RequestToSend_template::set_param(Module_Param& param)
{
param.basic_check(Module_Param::BC_TEMPLATE, "record template");
switch (param.get_type()) {
case Module_Param::MP_Omit:
*this = OMIT_VALUE;
break;
case Module_Param::MP_Any:
*this = ANY_VALUE;
break;
case Module_Param::MP_AnyOrNone:
*this = ANY_OR_OMIT;
break;
case Module_Param::MP_List_Template:
case Module_Param::MP_ComplementList_Template: {
RequestToSend_template new_temp;
new_temp.set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
for (size_t p_i=0; p_i<param.get_size(); p_i++) {
new_temp.list_item(p_i).set_param(*param.get_elem(p_i));
}
*this = new_temp;
break; }
case Module_Param::MP_Value_List:
if (5<param.get_size()) {
param.error("record template of type @IsobusCMMessageTypes.RequestToSend has 5 fields but list value has %d fields", (int)param.get_size());
}
if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) ctrl().set_param(*param.get_elem(0));
if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) msgSizeInBytes().set_param(*param.get_elem(1));
if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) totalNumberOfPackets().set_param(*param.get_elem(2));
if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) maxNoOfPacketsInResponseToCTS().set_param(*param.get_elem(3));
if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) pgnOfMultiPacketMessage().set_param(*param.get_elem(4));
break;
case Module_Param::MP_Assignment_List: {
Vector<bool> value_used(param.get_size());
value_used.resize(param.get_size(), FALSE);
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
Module_Param* const curr_param = param.get_elem(val_idx);
if (!strcmp(curr_param->get_id()->get_name(), "ctrl")) {
if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
ctrl().set_param(*curr_param);
}
value_used[val_idx]=TRUE;
}
}
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
Module_Param* const curr_param = param.get_elem(val_idx);
if (!strcmp(curr_param->get_id()->get_name(), "msgSizeInBytes")) {
if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
msgSizeInBytes().set_param(*curr_param);
}
value_used[val_idx]=TRUE;
}
}
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
Module_Param* const curr_param = param.get_elem(val_idx);
if (!strcmp(curr_param->get_id()->get_name(), "totalNumberOfPackets")) {
if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
totalNumberOfPackets().set_param(*curr_param);
}
value_used[val_idx]=TRUE;
}
}
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
Module_Param* const curr_param = param.get_elem(val_idx);
if (!strcmp(curr_param->get_id()->get_name(), "maxNoOfPacketsInResponseToCTS")) {
if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
maxNoOfPacketsInResponseToCTS().set_param(*curr_param);
}
value_used[val_idx]=TRUE;
}
}
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
Module_Param* const curr_param = param.get_elem(val_idx);
if (!strcmp(curr_param->get_id()->get_name(), "pgnOfMultiPacketMessage")) {
if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
pgnOfMultiPacketMessage().set_param(*curr_param);
}
value_used[val_idx]=TRUE;
}
}
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
Module_Param* const curr_param = param.get_elem(val_idx);
curr_param->error("Non existent field name in type @IsobusCMMessageTypes.RequestToSend: %s", curr_param->get_id()->get_name());
break;
}
} break;
default:
param.type_error("record template", "@IsobusCMMessageTypes.RequestToSend");
}
is_ifpresent = param.get_ifpresent();
}
void RequestToSend_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const
{
if (template_selection==UNINITIALIZED_TEMPLATE) return;
switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
case TR_OMIT:
if (template_selection==OMIT_VALUE) return;
case TR_VALUE:
if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break;
single_value->field_ctrl.check_restriction(t_res, t_name ? t_name : "@IsobusCMMessageTypes.RequestToSend");
single_value->field_msgSizeInBytes.check_restriction(t_res, t_name ? t_name : "@IsobusCMMessageTypes.RequestToSend");
single_value->field_totalNumberOfPackets.check_restriction(t_res, t_name ? t_name : "@IsobusCMMessageTypes.RequestToSend");
single_value->field_maxNoOfPacketsInResponseToCTS.check_restriction(t_res, t_name ? t_name : "@IsobusCMMessageTypes.RequestToSend");
single_value->field_pgnOfMultiPacketMessage.check_restriction(t_res, t_name ? t_name : "@IsobusCMMessageTypes.RequestToSend");
return;
case TR_PRESENT:
if (!match_omit(legacy)) return;
break;
default:
return;
}
TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@IsobusCMMessageTypes.RequestToSend");
}
boolean RequestToSend_template::is_present(boolean legacy) const
{
if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
return !match_omit(legacy);
}
boolean RequestToSend_template::match_omit(boolean legacy) const
{
if (is_ifpresent) return TRUE;
switch (template_selection) {
case OMIT_VALUE:
case ANY_OR_OMIT:
return TRUE;
case VALUE_LIST:
case COMPLEMENTED_LIST:
if (legacy) {
for (unsigned int l_idx=0; l_idx<value_list.n_values; l_idx++)
if (value_list.list_value[l_idx].match_omit())
return template_selection==VALUE_LIST;
return template_selection==COMPLEMENTED_LIST;
} // else fall through
default:
return FALSE;
}
return FALSE;
}
ClearToSend::ClearToSend()
{
}
ClearToSend::ClearToSend(const OCTETSTRING& par_ctrl,
const INTEGER& par_totalNumberOfPackets,
const INTEGER& par_nextPacketNumber,
const OCTETSTRING& par_reserved4,
const OCTETSTRING& par_reserved5,
const INTEGER& par_pgnOfMultiPacketMessage)
: field_ctrl(par_ctrl),
field_totalNumberOfPackets(par_totalNumberOfPackets),
field_nextPacketNumber(par_nextPacketNumber),
field_reserved4(par_reserved4),
field_reserved5(par_reserved5),
field_pgnOfMultiPacketMessage(par_pgnOfMultiPacketMessage)
{
}
ClearToSend::ClearToSend(const ClearToSend& other_value)
{
if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @IsobusCMMessageTypes.ClearToSend.");
if (other_value.ctrl().is_bound()) field_ctrl = other_value.ctrl();
else field_ctrl.clean_up();
if (other_value.totalNumberOfPackets().is_bound()) field_totalNumberOfPackets = other_value.totalNumberOfPackets();
else field_totalNumberOfPackets.clean_up();
if (other_value.nextPacketNumber().is_bound()) field_nextPacketNumber = other_value.nextPacketNumber();
else field_nextPacketNumber.clean_up();
if (other_value.reserved4().is_bound()) field_reserved4 = other_value.reserved4();
else field_reserved4.clean_up();
if (other_value.reserved5().is_bound()) field_reserved5 = other_value.reserved5();
else field_reserved5.clean_up();
if (other_value.pgnOfMultiPacketMessage().is_bound()) field_pgnOfMultiPacketMessage = other_value.pgnOfMultiPacketMessage();
else field_pgnOfMultiPacketMessage.clean_up();
}
void ClearToSend::clean_up()
{
field_ctrl.clean_up();
field_totalNumberOfPackets.clean_up();
field_nextPacketNumber.clean_up();
field_reserved4.clean_up();
field_reserved5.clean_up();
field_pgnOfMultiPacketMessage.clean_up();
}
const TTCN_Typedescriptor_t* ClearToSend::get_descriptor() const { return &ClearToSend_descr_; }
ClearToSend& ClearToSend::operator=(const ClearToSend& other_value)
{
if (this != &other_value) {
if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @IsobusCMMessageTypes.ClearToSend.");
if (other_value.ctrl().is_bound()) field_ctrl = other_value.ctrl();
else field_ctrl.clean_up();
if (other_value.totalNumberOfPackets().is_bound()) field_totalNumberOfPackets = other_value.totalNumberOfPackets();
else field_totalNumberOfPackets.clean_up();
if (other_value.nextPacketNumber().is_bound()) field_nextPacketNumber = other_value.nextPacketNumber();
else field_nextPacketNumber.clean_up();
if (other_value.reserved4().is_bound()) field_reserved4 = other_value.reserved4();
else field_reserved4.clean_up();
if (other_value.reserved5().is_bound()) field_reserved5 = other_value.reserved5();
else field_reserved5.clean_up();
if (other_value.pgnOfMultiPacketMessage().is_bound()) field_pgnOfMultiPacketMessage = other_value.pgnOfMultiPacketMessage();
else field_pgnOfMultiPacketMessage.clean_up();
}
return *this;
}
boolean ClearToSend::operator==(const ClearToSend& other_value) const
{
return field_ctrl==other_value.field_ctrl
&& field_totalNumberOfPackets==other_value.field_totalNumberOfPackets
&& field_nextPacketNumber==other_value.field_nextPacketNumber
&& field_reserved4==other_value.field_reserved4
&& field_reserved5==other_value.field_reserved5
&& field_pgnOfMultiPacketMessage==other_value.field_pgnOfMultiPacketMessage;
}
boolean ClearToSend::is_bound() const
{
return (field_ctrl.is_bound())
|| (field_totalNumberOfPackets.is_bound())
|| (field_nextPacketNumber.is_bound())
|| (field_reserved4.is_bound())
|| (field_reserved5.is_bound())
|| (field_pgnOfMultiPacketMessage.is_bound());
}
boolean ClearToSend::is_value() const
{
return field_ctrl.is_value()
&& field_totalNumberOfPackets.is_value()
&& field_nextPacketNumber.is_value()
&& field_reserved4.is_value()
&& field_reserved5.is_value()
&& field_pgnOfMultiPacketMessage.is_value();
}
void ClearToSend::log() const
{
if (!is_bound()) {
TTCN_Logger::log_event_unbound();
return;
}
TTCN_Logger::log_event_str("{ ctrl := ");
field_ctrl.log();
TTCN_Logger::log_event_str(", totalNumberOfPackets := ");
field_totalNumberOfPackets.log();
TTCN_Logger::log_event_str(", nextPacketNumber := ");
field_nextPacketNumber.log();
TTCN_Logger::log_event_str(", reserved4 := ");
field_reserved4.log();
TTCN_Logger::log_event_str(", reserved5 := ");
field_reserved5.log();
TTCN_Logger::log_event_str(", pgnOfMultiPacketMessage := ");
field_pgnOfMultiPacketMessage.log();
TTCN_Logger::log_event_str(" }");
}
void ClearToSend::set_param(Module_Param& param)
{
param.basic_check(Module_Param::BC_VALUE, "record value");
switch (param.get_type()) {
case Module_Param::MP_Value_List:
if (6<param.get_size()) {
param.error("record value of type @IsobusCMMessageTypes.ClearToSend has 6 fields but list value has %d fields", (int)param.get_size());
}
if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) ctrl().set_param(*param.get_elem(0));
if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) totalNumberOfPackets().set_param(*param.get_elem(1));
if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) nextPacketNumber().set_param(*param.get_elem(2));
if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) reserved4().set_param(*param.get_elem(3));
if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) reserved5().set_param(*param.get_elem(4));
if (param.get_size()>5 && param.get_elem(5)->get_type()!=Module_Param::MP_NotUsed) pgnOfMultiPacketMessage().set_param(*param.get_elem(5));
break;
case Module_Param::MP_Assignment_List: {
Vector<bool> value_used(param.get_size());
value_used.resize(param.get_size(), FALSE);
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
Module_Param* const curr_param = param.get_elem(val_idx);
if (!strcmp(curr_param->get_id()->get_name(), "ctrl")) {
if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
ctrl().set_param(*curr_param);
}
value_used[val_idx]=TRUE;
}
}
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
Module_Param* const curr_param = param.get_elem(val_idx);
if (!strcmp(curr_param->get_id()->get_name(), "totalNumberOfPackets")) {
if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
totalNumberOfPackets().set_param(*curr_param);
}
value_used[val_idx]=TRUE;
}
}
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
Module_Param* const curr_param = param.get_elem(val_idx);
if (!strcmp(curr_param->get_id()->get_name(), "nextPacketNumber")) {
if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
nextPacketNumber().set_param(*curr_param);
}
value_used[val_idx]=TRUE;
}
}
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
Module_Param* const curr_param = param.get_elem(val_idx);
if (!strcmp(curr_param->get_id()->get_name(), "reserved4")) {
if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
reserved4().set_param(*curr_param);
}
value_used[val_idx]=TRUE;
}
}
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
Module_Param* const curr_param = param.get_elem(val_idx);
if (!strcmp(curr_param->get_id()->get_name(), "reserved5")) {
if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
reserved5().set_param(*curr_param);
}
value_used[val_idx]=TRUE;
}
}
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
Module_Param* const curr_param = param.get_elem(val_idx);
if (!strcmp(curr_param->get_id()->get_name(), "pgnOfMultiPacketMessage")) {
if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
pgnOfMultiPacketMessage().set_param(*curr_param);
}
value_used[val_idx]=TRUE;
}
}
for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
Module_Param* const curr_param = param.get_elem(val_idx);
curr_param->error("Non existent field name in type @IsobusCMMessageTypes.ClearToSend: %s", curr_param->get_id()->get_name());
break;
}
} break;
default:
param.type_error("record value", "@IsobusCMMessageTypes.ClearToSend");
}
}
void ClearToSend::set_implicit_omit()
{
if (ctrl().is_bound()) ctrl().set_implicit_omit();
if (totalNumberOfPackets().is_bound()) totalNumberOfPackets().set_implicit_omit();
if (nextPacketNumber().is_bound()) nextPacketNumber().set_implicit_omit();
if (reserved4().is_bound()) reserved4().set_implicit_omit();
if (reserved5().is_bound()) reserved5().set_implicit_omit();
if (pgnOfMultiPacketMessage().is_bound()) pgnOfMultiPacketMessage().set_implicit_omit();
}
void ClearToSend::encode_text(Text_Buf& text_buf) const
{
field_ctrl.encode_text(text_buf);
field_totalNumberOfPackets.encode_text(text_buf);
field_nextPacketNumber.encode_text(text_buf);
field_reserved4.encode_text(text_buf);
field_reserved5.encode_text(text_buf);
field_pgnOfMultiPacketMessage.encode_text(text_buf);
}
void ClearToSend::decode_text(Text_Buf& text_buf)
{
field_ctrl.decode_text(text_buf);
field_totalNumberOfPackets.decode_text(text_buf);
field_nextPacketNumber.decode_text(text_buf);
field_reserved4.decode_text(text_buf);
field_reserved5.decode_text(text_buf);
field_pgnOfMultiPacketMessage.decode_text(text_buf);
}
void ClearToSend::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
{
va_list pvar;
va_start(pvar, p_coding);
switch(p_coding) {
case TTCN_EncDec::CT_BER: {
TTCN_EncDec_ErrorContext ec("While BER-encoding type '%s': ", p_td.name);
unsigned BER_coding=va_arg(pvar, unsigned);
BER_encode_chk_coding(BER_coding);
ASN_BER_TLV_t *tlv=BER_encode_TLV(p_td, BER_coding);
tlv->put_in_buffer(p_buf);
ASN_BER_TLV_t::destruct(tlv);
break;}
case TTCN_EncDec::CT_RAW: {
TTCN_EncDec_ErrorContext ec("While RAW-encoding type '%s': ", p_td.name);
if(!p_td.raw)
TTCN_EncDec_ErrorContext::error_internal
("No RAW descriptor available for type '%s'.", p_td.name);
RAW_enc_tr_pos rp;
rp.level=0;
rp.pos=NULL;
RAW_enc_tree root(FALSE, NULL, &rp, 1, p_td.raw);
RAW_encode(p_td, root);
root.put_to_buf(p_buf);
break;}
case TTCN_EncDec::CT_TEXT: {
TTCN_EncDec_ErrorContext ec("While TEXT-encoding type '%s': ", p_td.name);
if(!p_td.text)
TTCN_EncDec_ErrorContext::error_internal
("No TEXT descriptor available for type '%s'.", p_td.name);
TEXT_encode(p_td,p_buf);
break;}
case TTCN_EncDec::CT_XER: {
TTCN_EncDec_ErrorContext ec("While XER-encoding type '%s': ", p_td.name);
unsigned XER_coding=va_arg(pvar, unsigned);
XER_encode_chk_coding(XER_coding, p_td);
XER_encode(*(p_td.xer),p_buf, XER_coding, 0, 0, 0);
p_buf.put_c('\n');
break;}
case TTCN_EncDec::CT_JSON: {
TTCN_EncDec_ErrorContext ec("While JSON-encoding type '%s': ", p_td.name);
if(!p_td.json)
TTCN_EncDec_ErrorContext::error_internal
("No JSON descriptor available for type '%s'.", p_td.name);
JSON_Tokenizer tok(va_arg(pvar, int) != 0);
JSON_encode(p_td, tok);
p_buf.put_s(tok.get_buffer_length(), (const unsigned char*)tok.get_buffer());
break;}
case TTCN_EncDec::CT_OER: {
TTCN_EncDec_ErrorContext ec("While OER-encoding type '%s': ", p_td.name);
if(!p_td.oer)
TTCN_EncDec_ErrorContext::error_internal
("No OER descriptor available for type '%s'.", p_td.name);
OER_encode(p_td, p_buf);
break;}
default:
TTCN_error("Unknown coding method requested to encode type '%s'", p_td.name);
}
va_end(pvar);
}
void ClearToSend::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
{
va_list pvar;
va_start(pvar, p_coding);
switch(p_coding) {
case TTCN_EncDec::CT_BER: {
TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
unsigned L_form=va_arg(pvar, unsigned);
ASN_BER_TLV_t tlv;
BER_decode_str2TLV(p_buf, tlv, L_form);
BER_decode_TLV(p_td, tlv, L_form);
if(tlv.isComplete) p_buf.increase_pos(tlv.get_len());
break;}
case TTCN_EncDec::CT_RAW: {
TTCN_EncDec_ErrorContext ec("While RAW-decoding type '%s': ", p_td.name);
if(!p_td.raw)
TTCN_EncDec_ErrorContext::error_internal
("No RAW descriptor available for type '%s'.", p_td.name);
raw_order_t r_order;
switch(p_td.raw->top_bit_order) {
case TOP_BIT_LEFT:
r_order=ORDER_LSB;
break;
case TOP_BIT_RIGHT:
default:
r_order=ORDER_MSB;
}
int rawr = RAW_decode(p_td, p_buf, p_buf.get_len()*8, r_order);
if(rawr<0) switch (-rawr) {
case TTCN_EncDec::ET_INCOMPL_MSG:
case TTCN_EncDec::ET_LEN_ERR:
ec.error((TTCN_EncDec::error_type_t)-rawr, "Can not decode type '%s', because incomplete message was received", p_td.name);
break;
case 1:
default:
ec.error(TTCN_EncDec::ET_INVAL_MSG, "Can not decode type '%s', because invalid message was received", p_td.name);
break;
}
break;}
case TTCN_EncDec::CT_TEXT: {
Limit_Token_List limit;
TTCN_EncDec_ErrorContext ec("While TEXT-decoding type '%s': ", p_td.name);
if(!p_td.text)
TTCN_EncDec_ErrorContext::error_internal
("No TEXT descriptor available for type '%s'.", p_td.name);
const unsigned char *b_data=p_buf.get_data();
if(b_data[p_buf.get_len()-1]!='\0'){
p_buf.set_pos(p_buf.get_len());
p_buf.put_zero(8,ORDER_LSB);
p_buf.rewind();
}
if(TEXT_decode(p_td,p_buf,limit)<0)
ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name);
break;}
case TTCN_EncDec::CT_XER: {
TTCN_EncDec_ErrorContext ec("While XER-decoding type '%s': ", p_td.name);
unsigned XER_coding=va_arg