diff -r 87622fad6b51 -r a796fdeeb33c networkprotocolmodules/common/asn1supl/inc/ULP-Components.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/networkprotocolmodules/common/asn1supl/inc/ULP-Components.h Wed Oct 13 16:07:50 2010 +0300 @@ -0,0 +1,2081 @@ +// Copyright (c) 2001-2009 Objective Systems, Inc. (http://www.obj-sys.com) +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// + +/** + * This file was generated by the Objective Systems ASN1C Compiler + * (http://www.obj-sys.com). + */ +#ifndef ULP_COMPONENTS_H +#define ULP_COMPONENTS_H + +#include +#include +#include "rtkey.h" +#include "rtpersrc/asn1PerCppTypes.h" +#include "ASN1CBitStr.h" +#include "ASN1CSeqOfList.h" + +/** + * Header file for ASN.1 module ULP-Components + */ +/**************************************************************/ +/* */ +/* Version */ +/* */ +/**************************************************************/ + +#define TV_Version (TM_UNIV|TM_CONS|16) + +struct ASN1T_Version { + OSUINT8 maj; + OSUINT8 min; + OSUINT8 servind; + IMPORT_C ASN1T_Version (); +} ; + +IMPORT_C int asn1PE_Version (OSCTXT* pctxt, ASN1T_Version* pvalue); + +IMPORT_C int asn1PD_Version (OSCTXT* pctxt, ASN1T_Version* pvalue); + +IMPORT_C void asn1Print_Version + (const char* name, ASN1T_Version* pvalue); + +/**************************************************************/ +/* */ +/* SETId_msisdn */ +/* */ +/**************************************************************/ + +#define TV_SETId_msisdn (TM_UNIV|TM_PRIM|4) + +struct ASN1T_SETId_msisdn { + OSUINT32 numocts; + OSOCTET data[8]; + // ctors + ASN1T_SETId_msisdn () : numocts(0) {} + ASN1T_SETId_msisdn (OSUINT32 _numocts, const OSOCTET* _data) : + numocts (_numocts) { + OSCRTLMEMCPY (data, _data, OSRTMIN (numocts, sizeof(data))); + } + ASN1T_SETId_msisdn (const char* cstring) { + if (strlen(cstring) > 0) { + numocts = OSRTMIN ((OSCRTLSTRLEN(cstring)+1), sizeof(data)); + OSCRTLSTRNCPY ((char*)data, cstring, sizeof(data)); + } + else numocts = 0; + } + // assignment operators + ASN1T_SETId_msisdn& operator= (const char* cstring) { + if (strlen(cstring) > 0) { + numocts = OSRTMIN ((OSCRTLSTRLEN(cstring)+1), sizeof(data)); + OSCRTLSTRNCPY ((char*)data, cstring, sizeof(data)); + } + else numocts = 0; + return *this; + } +} ; + +IMPORT_C int asn1PE_SETId_msisdn (OSCTXT* pctxt, ASN1T_SETId_msisdn* pvalue); + +IMPORT_C int asn1PD_SETId_msisdn (OSCTXT* pctxt, ASN1T_SETId_msisdn* pvalue); + +IMPORT_C void asn1Print_SETId_msisdn + (const char* name, ASN1T_SETId_msisdn* pvalue); + +/**************************************************************/ +/* */ +/* SETId_mdn */ +/* */ +/**************************************************************/ + +#define TV_SETId_mdn (TM_UNIV|TM_PRIM|4) + +struct ASN1T_SETId_mdn { + OSUINT32 numocts; + OSOCTET data[8]; + // ctors + ASN1T_SETId_mdn () : numocts(0) {} + ASN1T_SETId_mdn (OSUINT32 _numocts, const OSOCTET* _data) : + numocts (_numocts) { + OSCRTLMEMCPY (data, _data, OSRTMIN (numocts, sizeof(data))); + } + ASN1T_SETId_mdn (const char* cstring) { + if (strlen(cstring) > 0) { + numocts = OSRTMIN ((OSCRTLSTRLEN(cstring)+1), sizeof(data)); + OSCRTLSTRNCPY ((char*)data, cstring, sizeof(data)); + } + else numocts = 0; + } + // assignment operators + ASN1T_SETId_mdn& operator= (const char* cstring) { + if (strlen(cstring) > 0) { + numocts = OSRTMIN ((OSCRTLSTRLEN(cstring)+1), sizeof(data)); + OSCRTLSTRNCPY ((char*)data, cstring, sizeof(data)); + } + else numocts = 0; + return *this; + } +} ; + +IMPORT_C int asn1PE_SETId_mdn (OSCTXT* pctxt, ASN1T_SETId_mdn* pvalue); + +IMPORT_C int asn1PD_SETId_mdn (OSCTXT* pctxt, ASN1T_SETId_mdn* pvalue); + +IMPORT_C void asn1Print_SETId_mdn + (const char* name, ASN1T_SETId_mdn* pvalue); + +/**************************************************************/ +/* */ +/* SETId_min */ +/* */ +/**************************************************************/ + +#define TV_SETId_min (TM_UNIV|TM_PRIM|3) + +struct ASN1T_SETId_min { + OSUINT32 numbits; + OSOCTET data[5]; + // ctors + ASN1T_SETId_min () : numbits(0) {} + ASN1T_SETId_min (OSUINT32 _numbits, const OSOCTET* _data) : + numbits(_numbits) { + OSCRTLMEMCPY (data, _data, sizeof(data)); + } +} ; + +IMPORT_C int asn1PE_SETId_min (OSCTXT* pctxt, ASN1T_SETId_min* pvalue); + +IMPORT_C int asn1PD_SETId_min (OSCTXT* pctxt, ASN1T_SETId_min* pvalue); + +IMPORT_C void asn1Print_SETId_min + (const char* name, ASN1T_SETId_min* pvalue); + +/**************************************************************/ +/* */ +/* SETId_imsi */ +/* */ +/**************************************************************/ + +#define TV_SETId_imsi (TM_UNIV|TM_PRIM|4) + +struct ASN1T_SETId_imsi { + OSUINT32 numocts; + OSOCTET data[8]; + // ctors + ASN1T_SETId_imsi () : numocts(0) {} + ASN1T_SETId_imsi (OSUINT32 _numocts, const OSOCTET* _data) : + numocts (_numocts) { + OSCRTLMEMCPY (data, _data, OSRTMIN (numocts, sizeof(data))); + } + ASN1T_SETId_imsi (const char* cstring) { + if (strlen(cstring) > 0) { + numocts = OSRTMIN ((OSCRTLSTRLEN(cstring)+1), sizeof(data)); + OSCRTLSTRNCPY ((char*)data, cstring, sizeof(data)); + } + else numocts = 0; + } + // assignment operators + ASN1T_SETId_imsi& operator= (const char* cstring) { + if (strlen(cstring) > 0) { + numocts = OSRTMIN ((OSCRTLSTRLEN(cstring)+1), sizeof(data)); + OSCRTLSTRNCPY ((char*)data, cstring, sizeof(data)); + } + else numocts = 0; + return *this; + } +} ; + +IMPORT_C int asn1PE_SETId_imsi (OSCTXT* pctxt, ASN1T_SETId_imsi* pvalue); + +IMPORT_C int asn1PD_SETId_imsi (OSCTXT* pctxt, ASN1T_SETId_imsi* pvalue); + +IMPORT_C void asn1Print_SETId_imsi + (const char* name, ASN1T_SETId_imsi* pvalue); + +/**************************************************************/ +/* */ +/* IPAddress_ipv4Address */ +/* */ +/**************************************************************/ + +#define TV_IPAddress_ipv4Address (TM_UNIV|TM_PRIM|4) + +struct ASN1T_IPAddress_ipv4Address { + OSUINT32 numocts; + OSOCTET data[4]; + // ctors + ASN1T_IPAddress_ipv4Address () : numocts(0) {} + ASN1T_IPAddress_ipv4Address (OSUINT32 _numocts, const OSOCTET* _data) : + numocts (_numocts) { + OSCRTLMEMCPY (data, _data, OSRTMIN (numocts, sizeof(data))); + } + ASN1T_IPAddress_ipv4Address (const char* cstring) { + if (strlen(cstring) > 0) { + numocts = OSRTMIN ((OSCRTLSTRLEN(cstring)+1), sizeof(data)); + OSCRTLSTRNCPY ((char*)data, cstring, sizeof(data)); + } + else numocts = 0; + } + // assignment operators + ASN1T_IPAddress_ipv4Address& operator= (const char* cstring) { + if (strlen(cstring) > 0) { + numocts = OSRTMIN ((OSCRTLSTRLEN(cstring)+1), sizeof(data)); + OSCRTLSTRNCPY ((char*)data, cstring, sizeof(data)); + } + else numocts = 0; + return *this; + } +} ; + +IMPORT_C int asn1PE_IPAddress_ipv4Address (OSCTXT* pctxt, ASN1T_IPAddress_ipv4Address* pvalue); + +IMPORT_C int asn1PD_IPAddress_ipv4Address (OSCTXT* pctxt, ASN1T_IPAddress_ipv4Address* pvalue); + +IMPORT_C void asn1Print_IPAddress_ipv4Address + (const char* name, ASN1T_IPAddress_ipv4Address* pvalue); + +/**************************************************************/ +/* */ +/* IPAddress_ipv6Address */ +/* */ +/**************************************************************/ + +#define TV_IPAddress_ipv6Address (TM_UNIV|TM_PRIM|4) + +struct ASN1T_IPAddress_ipv6Address { + OSUINT32 numocts; + OSOCTET data[16]; + // ctors + ASN1T_IPAddress_ipv6Address () : numocts(0) {} + ASN1T_IPAddress_ipv6Address (OSUINT32 _numocts, const OSOCTET* _data) : + numocts (_numocts) { + OSCRTLMEMCPY (data, _data, OSRTMIN (numocts, sizeof(data))); + } + ASN1T_IPAddress_ipv6Address (const char* cstring) { + if (strlen(cstring) > 0) { + numocts = OSRTMIN ((OSCRTLSTRLEN(cstring)+1), sizeof(data)); + OSCRTLSTRNCPY ((char*)data, cstring, sizeof(data)); + } + else numocts = 0; + } + // assignment operators + ASN1T_IPAddress_ipv6Address& operator= (const char* cstring) { + if (strlen(cstring) > 0) { + numocts = OSRTMIN ((OSCRTLSTRLEN(cstring)+1), sizeof(data)); + OSCRTLSTRNCPY ((char*)data, cstring, sizeof(data)); + } + else numocts = 0; + return *this; + } +} ; + +IMPORT_C int asn1PE_IPAddress_ipv6Address (OSCTXT* pctxt, ASN1T_IPAddress_ipv6Address* pvalue); + +IMPORT_C int asn1PD_IPAddress_ipv6Address (OSCTXT* pctxt, ASN1T_IPAddress_ipv6Address* pvalue); + +IMPORT_C void asn1Print_IPAddress_ipv6Address + (const char* name, ASN1T_IPAddress_ipv6Address* pvalue); + +/**************************************************************/ +/* */ +/* IPAddress */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_IPAddress_ipv4Address 1 +#define T_IPAddress_ipv6Address 2 + +struct ASN1T_IPAddress { + int t; + union { + /* t = 1 */ + ASN1T_IPAddress_ipv4Address *ipv4Address; + /* t = 2 */ + ASN1T_IPAddress_ipv6Address *ipv6Address; + } u; +} ; + +IMPORT_C int asn1PE_IPAddress (OSCTXT* pctxt, ASN1T_IPAddress* pvalue); + +IMPORT_C int asn1PD_IPAddress (OSCTXT* pctxt, ASN1T_IPAddress* pvalue); + +IMPORT_C void asn1Print_IPAddress + (const char* name, ASN1T_IPAddress* pvalue); + +IMPORT_C void asn1Free_IPAddress (OSCTXT *pctxt, ASN1T_IPAddress* pvalue); + +/**************************************************************/ +/* */ +/* SETId */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_SETId_msisdn 1 +#define T_SETId_mdn 2 +#define T_SETId_min 3 +#define T_SETId_imsi 4 +#define T_SETId_nai 5 +#define T_SETId_iPAddress 6 +#define T_SETId_extElem1 7 + +struct ASN1T_SETId { + int t; + union { + /* t = 1 */ + ASN1T_SETId_msisdn *msisdn; + /* t = 2 */ + ASN1T_SETId_mdn *mdn; + /* t = 3 */ + ASN1T_SETId_min *min; + /* t = 4 */ + ASN1T_SETId_imsi *imsi; + /* t = 5 */ + const char* nai; + /* t = 6 */ + ASN1T_IPAddress *iPAddress; + /* t = 7 */ + } u; +} ; + +IMPORT_C int asn1PE_SETId (OSCTXT* pctxt, ASN1T_SETId* pvalue); + +IMPORT_C int asn1PD_SETId (OSCTXT* pctxt, ASN1T_SETId* pvalue); + +IMPORT_C void asn1Print_SETId + (const char* name, ASN1T_SETId* pvalue); + +IMPORT_C void asn1Free_SETId (OSCTXT *pctxt, ASN1T_SETId* pvalue); + +/**************************************************************/ +/* */ +/* SetSessionID */ +/* */ +/**************************************************************/ + +#define TV_SetSessionID (TM_UNIV|TM_CONS|16) + +struct ASN1T_SetSessionID { + OSUINT16 sessionId; + ASN1T_SETId setId; + IMPORT_C ASN1T_SetSessionID (); +} ; + +IMPORT_C int asn1PE_SetSessionID (OSCTXT* pctxt, ASN1T_SetSessionID* pvalue); + +IMPORT_C int asn1PD_SetSessionID (OSCTXT* pctxt, ASN1T_SetSessionID* pvalue); + +IMPORT_C void asn1Print_SetSessionID + (const char* name, ASN1T_SetSessionID* pvalue); + +IMPORT_C void asn1Free_SetSessionID (OSCTXT *pctxt, ASN1T_SetSessionID* pvalue); + +/**************************************************************/ +/* */ +/* SlpSessionID_sessionID */ +/* */ +/**************************************************************/ + +#define TV_SlpSessionID_sessionID (TM_UNIV|TM_PRIM|4) + +struct ASN1T_SlpSessionID_sessionID { + OSUINT32 numocts; + OSOCTET data[4]; + // ctors + ASN1T_SlpSessionID_sessionID () : numocts(0) {} + ASN1T_SlpSessionID_sessionID (OSUINT32 _numocts, const OSOCTET* _data) : + numocts (_numocts) { + OSCRTLMEMCPY (data, _data, OSRTMIN (numocts, sizeof(data))); + } + ASN1T_SlpSessionID_sessionID (const char* cstring) { + if (strlen(cstring) > 0) { + numocts = OSRTMIN ((OSCRTLSTRLEN(cstring)+1), sizeof(data)); + OSCRTLSTRNCPY ((char*)data, cstring, sizeof(data)); + } + else numocts = 0; + } + // assignment operators + ASN1T_SlpSessionID_sessionID& operator= (const char* cstring) { + if (strlen(cstring) > 0) { + numocts = OSRTMIN ((OSCRTLSTRLEN(cstring)+1), sizeof(data)); + OSCRTLSTRNCPY ((char*)data, cstring, sizeof(data)); + } + else numocts = 0; + return *this; + } +} ; + +IMPORT_C int asn1PE_SlpSessionID_sessionID (OSCTXT* pctxt, ASN1T_SlpSessionID_sessionID* pvalue); + +IMPORT_C int asn1PD_SlpSessionID_sessionID (OSCTXT* pctxt, ASN1T_SlpSessionID_sessionID* pvalue); + +IMPORT_C void asn1Print_SlpSessionID_sessionID + (const char* name, ASN1T_SlpSessionID_sessionID* pvalue); + +/**************************************************************/ +/* */ +/* FQDN */ +/* */ +/**************************************************************/ + +#define TV_FQDN (TM_UNIV|TM_PRIM|26) + +typedef const char* ASN1T_FQDN; + +IMPORT_C int asn1PE_FQDN (OSCTXT* pctxt, ASN1T_FQDN value); + +IMPORT_C int asn1PD_FQDN (OSCTXT* pctxt, ASN1T_FQDN* pvalue); + +IMPORT_C void asn1Print_FQDN + (const char* name, ASN1T_FQDN pvalue); + +IMPORT_C void asn1Free_FQDN (OSCTXT *pctxt, ASN1T_FQDN pvalue); + +/**************************************************************/ +/* */ +/* SLPAddress */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_SLPAddress_iPAddress 1 +#define T_SLPAddress_fQDN 2 +#define T_SLPAddress_extElem1 3 + +struct ASN1T_SLPAddress { + int t; + union { + /* t = 1 */ + ASN1T_IPAddress *iPAddress; + /* t = 2 */ + ASN1T_FQDN fQDN; + /* t = 3 */ + } u; +} ; + +IMPORT_C int asn1PE_SLPAddress (OSCTXT* pctxt, ASN1T_SLPAddress* pvalue); + +IMPORT_C int asn1PD_SLPAddress (OSCTXT* pctxt, ASN1T_SLPAddress* pvalue); + +IMPORT_C void asn1Print_SLPAddress + (const char* name, ASN1T_SLPAddress* pvalue); + +IMPORT_C void asn1Free_SLPAddress (OSCTXT *pctxt, ASN1T_SLPAddress* pvalue); + +/**************************************************************/ +/* */ +/* SlpSessionID */ +/* */ +/**************************************************************/ + +#define TV_SlpSessionID (TM_UNIV|TM_CONS|16) + +struct ASN1T_SlpSessionID { + ASN1T_SlpSessionID_sessionID sessionID; + ASN1T_SLPAddress slpId; + IMPORT_C ASN1T_SlpSessionID (); +} ; + +IMPORT_C int asn1PE_SlpSessionID (OSCTXT* pctxt, ASN1T_SlpSessionID* pvalue); + +IMPORT_C int asn1PD_SlpSessionID (OSCTXT* pctxt, ASN1T_SlpSessionID* pvalue); + +IMPORT_C void asn1Print_SlpSessionID + (const char* name, ASN1T_SlpSessionID* pvalue); + +IMPORT_C void asn1Free_SlpSessionID (OSCTXT *pctxt, ASN1T_SlpSessionID* pvalue); + +/**************************************************************/ +/* */ +/* SessionID */ +/* */ +/**************************************************************/ + +#define TV_SessionID (TM_UNIV|TM_CONS|16) + +struct ASN1T_SessionID { + struct { + unsigned setSessionIDPresent : 1; + unsigned slpSessionIDPresent : 1; + } m; + ASN1T_SetSessionID setSessionID; + ASN1T_SlpSessionID slpSessionID; + IMPORT_C ASN1T_SessionID (); +} ; + +IMPORT_C int asn1PE_SessionID (OSCTXT* pctxt, ASN1T_SessionID* pvalue); + +IMPORT_C int asn1PD_SessionID (OSCTXT* pctxt, ASN1T_SessionID* pvalue); + +IMPORT_C void asn1Print_SessionID + (const char* name, ASN1T_SessionID* pvalue); + +IMPORT_C void asn1Free_SessionID (OSCTXT *pctxt, ASN1T_SessionID* pvalue); + +/**************************************************************/ +/* */ +/* PosMethod */ +/* */ +/**************************************************************/ + +#define TV_PosMethod (TM_UNIV|TM_PRIM|10) + +struct PosMethod { + enum Root { + agpsSETassisted = 0, + agpsSETbased = 1, + agpsSETassistedpref = 2, + agpsSETbasedpref = 3, + autonomousGPS = 4, + aFLT = 5, + eCID = 6, + eOTD = 7, + oTDOA = 8, + noPosition = 9 + } ; +} ; + +typedef OSUINT32 ASN1T_PosMethod; + +IMPORT_C int asn1PE_PosMethod (OSCTXT* pctxt, ASN1T_PosMethod value); + +IMPORT_C int asn1PD_PosMethod (OSCTXT* pctxt, ASN1T_PosMethod* pvalue); + +IMPORT_C void asn1Print_PosMethod + (const char* name, ASN1T_PosMethod* pvalue); + +IMPORT_C const OSUTF8CHAR* ASN1T_PosMethod_ToString (OSINT32 value); + +IMPORT_C int ASN1T_PosMethod_ToEnum (OSCTXT* pctxt, + const OSUTF8CHAR* value, ASN1T_PosMethod* pvalue); + +/**************************************************************/ +/* */ +/* QoP */ +/* */ +/**************************************************************/ + +#define TV_QoP (TM_UNIV|TM_CONS|16) + +struct ASN1T_QoP { + struct { + unsigned veraccPresent : 1; + unsigned maxLocAgePresent : 1; + unsigned delayPresent : 1; + } m; + OSUINT8 horacc; + OSUINT8 veracc; + OSUINT16 maxLocAge; + OSUINT8 delay; + IMPORT_C ASN1T_QoP (); +} ; + +IMPORT_C int asn1PE_QoP (OSCTXT* pctxt, ASN1T_QoP* pvalue); + +IMPORT_C int asn1PD_QoP (OSCTXT* pctxt, ASN1T_QoP* pvalue); + +IMPORT_C void asn1Print_QoP + (const char* name, ASN1T_QoP* pvalue); + +/**************************************************************/ +/* */ +/* NMRelement */ +/* */ +/**************************************************************/ + +#define TV_NMRelement (TM_UNIV|TM_CONS|16) + +struct ASN1T_NMRelement { + OSUINT16 aRFCN; + OSUINT8 bSIC; + OSUINT8 rxLev; + IMPORT_C ASN1T_NMRelement (); +} ; + +IMPORT_C int asn1PE_NMRelement (OSCTXT* pctxt, ASN1T_NMRelement* pvalue); + +IMPORT_C int asn1PD_NMRelement (OSCTXT* pctxt, ASN1T_NMRelement* pvalue); + +IMPORT_C void asn1Print_NMRelement + (const char* name, ASN1T_NMRelement* pvalue); + +/**************************************************************/ +/* */ +/* NMR */ +/* */ +/**************************************************************/ + +#define TV_NMR (TM_UNIV|TM_CONS|16) + +/* List of ASN1T_NMRelement */ +typedef ASN1TSeqOfList ASN1T_NMR; + +class ASN1C_NMR : +public ASN1CSeqOfList +{ +protected: + ASN1T_NMR& msgData; +public: + IMPORT_C ASN1C_NMR (ASN1T_NMR& data); + IMPORT_C ASN1C_NMR (OSRTMessageBufferIF& msgBuf, ASN1T_NMR& data); + IMPORT_C ASN1C_NMR (ASN1CType& ccobj, ASN1T_NMR& data); + IMPORT_C ASN1C_NMR (OSRTContext &context, ASN1T_NMR& data); + IMPORT_C void Append (ASN1T_NMRelement* elem); + IMPORT_C ASN1T_NMRelement* NewElement (); +} ; + +IMPORT_C int asn1PE_NMR (OSCTXT* pctxt, ASN1T_NMR* pvalue); + +IMPORT_C int asn1PD_NMR (OSCTXT* pctxt, ASN1T_NMR* pvalue); + +IMPORT_C void asn1Print_NMR + (const char* name, ASN1T_NMR* pvalue); + +IMPORT_C void asn1Free_NMR (OSCTXT *pctxt, ASN1T_NMR* pvalue); + +/**************************************************************/ +/* */ +/* GsmCellInformation */ +/* */ +/**************************************************************/ + +#define TV_GsmCellInformation (TM_UNIV|TM_CONS|16) + +struct ASN1T_GsmCellInformation { + struct { + unsigned nMRPresent : 1; + unsigned tAPresent : 1; + } m; + OSUINT16 refMCC; + OSUINT16 refMNC; + OSUINT16 refLAC; + OSUINT16 refCI; + ASN1T_NMR nMR; + OSUINT8 tA; + IMPORT_C ASN1T_GsmCellInformation (); +} ; + +IMPORT_C int asn1PE_GsmCellInformation (OSCTXT* pctxt, ASN1T_GsmCellInformation* pvalue); + +IMPORT_C int asn1PD_GsmCellInformation (OSCTXT* pctxt, ASN1T_GsmCellInformation* pvalue); + +IMPORT_C void asn1Print_GsmCellInformation + (const char* name, ASN1T_GsmCellInformation* pvalue); + +IMPORT_C void asn1Free_GsmCellInformation (OSCTXT *pctxt, ASN1T_GsmCellInformation* pvalue); + +/**************************************************************/ +/* */ +/* UARFCN */ +/* */ +/**************************************************************/ + +#define TV_UARFCN (TM_UNIV|TM_PRIM|2) + +typedef OSUINT16 ASN1T_UARFCN; + +IMPORT_C int asn1PE_UARFCN (OSCTXT* pctxt, ASN1T_UARFCN value); + +IMPORT_C int asn1PD_UARFCN (OSCTXT* pctxt, ASN1T_UARFCN* pvalue); + +IMPORT_C void asn1Print_UARFCN + (const char* name, ASN1T_UARFCN* pvalue); + +/**************************************************************/ +/* */ +/* FrequencyInfoFDD */ +/* */ +/**************************************************************/ + +#define TV_FrequencyInfoFDD (TM_UNIV|TM_CONS|16) + +struct ASN1T_FrequencyInfoFDD { + struct { + unsigned uarfcn_ULPresent : 1; + } m; + ASN1T_UARFCN uarfcn_UL; + ASN1T_UARFCN uarfcn_DL; + IMPORT_C ASN1T_FrequencyInfoFDD (); +} ; + +IMPORT_C int asn1PE_FrequencyInfoFDD (OSCTXT* pctxt, ASN1T_FrequencyInfoFDD* pvalue); + +IMPORT_C int asn1PD_FrequencyInfoFDD (OSCTXT* pctxt, ASN1T_FrequencyInfoFDD* pvalue); + +IMPORT_C void asn1Print_FrequencyInfoFDD + (const char* name, ASN1T_FrequencyInfoFDD* pvalue); + +/**************************************************************/ +/* */ +/* FrequencyInfoTDD */ +/* */ +/**************************************************************/ + +#define TV_FrequencyInfoTDD (TM_UNIV|TM_CONS|16) + +struct ASN1T_FrequencyInfoTDD { + ASN1T_UARFCN uarfcn_Nt; + IMPORT_C ASN1T_FrequencyInfoTDD (); +} ; + +IMPORT_C int asn1PE_FrequencyInfoTDD (OSCTXT* pctxt, ASN1T_FrequencyInfoTDD* pvalue); + +IMPORT_C int asn1PD_FrequencyInfoTDD (OSCTXT* pctxt, ASN1T_FrequencyInfoTDD* pvalue); + +IMPORT_C void asn1Print_FrequencyInfoTDD + (const char* name, ASN1T_FrequencyInfoTDD* pvalue); + +/**************************************************************/ +/* */ +/* FrequencyInfo_modeSpecificInfo */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_FrequencyInfo_modeSpecificInfo_fdd 1 +#define T_FrequencyInfo_modeSpecificInfo_tdd 2 +#define T_FrequencyInfo_modeSpecificInfo_extElem1 3 + +struct ASN1T_FrequencyInfo_modeSpecificInfo { + int t; + union { + /* t = 1 */ + ASN1T_FrequencyInfoFDD *fdd; + /* t = 2 */ + ASN1T_FrequencyInfoTDD *tdd; + /* t = 3 */ + } u; +} ; + +IMPORT_C int asn1PE_FrequencyInfo_modeSpecificInfo (OSCTXT* pctxt, ASN1T_FrequencyInfo_modeSpecificInfo* pvalue); + +IMPORT_C int asn1PD_FrequencyInfo_modeSpecificInfo (OSCTXT* pctxt, ASN1T_FrequencyInfo_modeSpecificInfo* pvalue); + +IMPORT_C void asn1Print_FrequencyInfo_modeSpecificInfo + (const char* name, ASN1T_FrequencyInfo_modeSpecificInfo* pvalue); + +IMPORT_C void asn1Free_FrequencyInfo_modeSpecificInfo (OSCTXT *pctxt, ASN1T_FrequencyInfo_modeSpecificInfo* pvalue); + +/**************************************************************/ +/* */ +/* FrequencyInfo */ +/* */ +/**************************************************************/ + +#define TV_FrequencyInfo (TM_UNIV|TM_CONS|16) + +struct ASN1T_FrequencyInfo { + ASN1T_FrequencyInfo_modeSpecificInfo modeSpecificInfo; + IMPORT_C ASN1T_FrequencyInfo (); +} ; + +IMPORT_C int asn1PE_FrequencyInfo (OSCTXT* pctxt, ASN1T_FrequencyInfo* pvalue); + +IMPORT_C int asn1PD_FrequencyInfo (OSCTXT* pctxt, ASN1T_FrequencyInfo* pvalue); + +IMPORT_C void asn1Print_FrequencyInfo + (const char* name, ASN1T_FrequencyInfo* pvalue); + +IMPORT_C void asn1Free_FrequencyInfo (OSCTXT *pctxt, ASN1T_FrequencyInfo* pvalue); + +/**************************************************************/ +/* */ +/* UTRA_CarrierRSSI */ +/* */ +/**************************************************************/ + +#define TV_UTRA_CarrierRSSI (TM_UNIV|TM_PRIM|2) + +typedef OSUINT8 ASN1T_UTRA_CarrierRSSI; + +IMPORT_C int asn1PE_UTRA_CarrierRSSI (OSCTXT* pctxt, ASN1T_UTRA_CarrierRSSI value); + +IMPORT_C int asn1PD_UTRA_CarrierRSSI (OSCTXT* pctxt, ASN1T_UTRA_CarrierRSSI* pvalue); + +IMPORT_C void asn1Print_UTRA_CarrierRSSI + (const char* name, ASN1T_UTRA_CarrierRSSI* pvalue); + +/**************************************************************/ +/* */ +/* PrimaryCPICH_Info */ +/* */ +/**************************************************************/ + +#define TV_PrimaryCPICH_Info (TM_UNIV|TM_CONS|16) + +struct ASN1T_PrimaryCPICH_Info { + OSUINT16 primaryScramblingCode; + IMPORT_C ASN1T_PrimaryCPICH_Info (); +} ; + +IMPORT_C int asn1PE_PrimaryCPICH_Info (OSCTXT* pctxt, ASN1T_PrimaryCPICH_Info* pvalue); + +IMPORT_C int asn1PD_PrimaryCPICH_Info (OSCTXT* pctxt, ASN1T_PrimaryCPICH_Info* pvalue); + +IMPORT_C void asn1Print_PrimaryCPICH_Info + (const char* name, ASN1T_PrimaryCPICH_Info* pvalue); + +/**************************************************************/ +/* */ +/* CPICH_Ec_N0 */ +/* */ +/**************************************************************/ + +#define TV_CPICH_Ec_N0 (TM_UNIV|TM_PRIM|2) + +typedef OSUINT8 ASN1T_CPICH_Ec_N0; + +IMPORT_C int asn1PE_CPICH_Ec_N0 (OSCTXT* pctxt, ASN1T_CPICH_Ec_N0 value); + +IMPORT_C int asn1PD_CPICH_Ec_N0 (OSCTXT* pctxt, ASN1T_CPICH_Ec_N0* pvalue); + +IMPORT_C void asn1Print_CPICH_Ec_N0 + (const char* name, ASN1T_CPICH_Ec_N0* pvalue); + +/**************************************************************/ +/* */ +/* CPICH_RSCP */ +/* */ +/**************************************************************/ + +#define TV_CPICH_RSCP (TM_UNIV|TM_PRIM|2) + +typedef OSUINT8 ASN1T_CPICH_RSCP; + +IMPORT_C int asn1PE_CPICH_RSCP (OSCTXT* pctxt, ASN1T_CPICH_RSCP value); + +IMPORT_C int asn1PD_CPICH_RSCP (OSCTXT* pctxt, ASN1T_CPICH_RSCP* pvalue); + +IMPORT_C void asn1Print_CPICH_RSCP + (const char* name, ASN1T_CPICH_RSCP* pvalue); + +/**************************************************************/ +/* */ +/* Pathloss */ +/* */ +/**************************************************************/ + +#define TV_Pathloss (TM_UNIV|TM_PRIM|2) + +typedef OSUINT8 ASN1T_Pathloss; + +IMPORT_C int asn1PE_Pathloss (OSCTXT* pctxt, ASN1T_Pathloss value); + +IMPORT_C int asn1PD_Pathloss (OSCTXT* pctxt, ASN1T_Pathloss* pvalue); + +IMPORT_C void asn1Print_Pathloss + (const char* name, ASN1T_Pathloss* pvalue); + +/**************************************************************/ +/* */ +/* CellMeasuredResults_modeSpecificInfo_fdd */ +/* */ +/**************************************************************/ + +#define TV_CellMeasuredResults_modeSpecificInfo_fdd (TM_UNIV|TM_CONS|16) + +struct ASN1T_CellMeasuredResults_modeSpecificInfo_fdd { + struct { + unsigned cpich_Ec_N0Present : 1; + unsigned cpich_RSCPPresent : 1; + unsigned pathlossPresent : 1; + } m; + ASN1T_PrimaryCPICH_Info primaryCPICH_Info; + ASN1T_CPICH_Ec_N0 cpich_Ec_N0; + ASN1T_CPICH_RSCP cpich_RSCP; + ASN1T_Pathloss pathloss; + IMPORT_C ASN1T_CellMeasuredResults_modeSpecificInfo_fdd (); +} ; + +IMPORT_C int asn1PE_CellMeasuredResults_modeSpecificInfo_fdd (OSCTXT* pctxt, ASN1T_CellMeasuredResults_modeSpecificInfo_fdd* pvalue); + +IMPORT_C int asn1PD_CellMeasuredResults_modeSpecificInfo_fdd (OSCTXT* pctxt, ASN1T_CellMeasuredResults_modeSpecificInfo_fdd* pvalue); + +IMPORT_C void asn1Print_CellMeasuredResults_modeSpecificInfo_fdd + (const char* name, ASN1T_CellMeasuredResults_modeSpecificInfo_fdd* pvalue); + +/**************************************************************/ +/* */ +/* CellParametersID */ +/* */ +/**************************************************************/ + +#define TV_CellParametersID (TM_UNIV|TM_PRIM|2) + +typedef OSUINT8 ASN1T_CellParametersID; + +IMPORT_C int asn1PE_CellParametersID (OSCTXT* pctxt, ASN1T_CellParametersID value); + +IMPORT_C int asn1PD_CellParametersID (OSCTXT* pctxt, ASN1T_CellParametersID* pvalue); + +IMPORT_C void asn1Print_CellParametersID + (const char* name, ASN1T_CellParametersID* pvalue); + +/**************************************************************/ +/* */ +/* TGSN */ +/* */ +/**************************************************************/ + +#define TV_TGSN (TM_UNIV|TM_PRIM|2) + +typedef OSUINT8 ASN1T_TGSN; + +IMPORT_C int asn1PE_TGSN (OSCTXT* pctxt, ASN1T_TGSN value); + +IMPORT_C int asn1PD_TGSN (OSCTXT* pctxt, ASN1T_TGSN* pvalue); + +IMPORT_C void asn1Print_TGSN + (const char* name, ASN1T_TGSN* pvalue); + +/**************************************************************/ +/* */ +/* PrimaryCCPCH_RSCP */ +/* */ +/**************************************************************/ + +#define TV_PrimaryCCPCH_RSCP (TM_UNIV|TM_PRIM|2) + +typedef OSUINT8 ASN1T_PrimaryCCPCH_RSCP; + +IMPORT_C int asn1PE_PrimaryCCPCH_RSCP (OSCTXT* pctxt, ASN1T_PrimaryCCPCH_RSCP value); + +IMPORT_C int asn1PD_PrimaryCCPCH_RSCP (OSCTXT* pctxt, ASN1T_PrimaryCCPCH_RSCP* pvalue); + +IMPORT_C void asn1Print_PrimaryCCPCH_RSCP + (const char* name, ASN1T_PrimaryCCPCH_RSCP* pvalue); + +/**************************************************************/ +/* */ +/* TimeslotISCP */ +/* */ +/**************************************************************/ + +#define TV_TimeslotISCP (TM_UNIV|TM_PRIM|2) + +typedef OSUINT8 ASN1T_TimeslotISCP; + +IMPORT_C int asn1PE_TimeslotISCP (OSCTXT* pctxt, ASN1T_TimeslotISCP value); + +IMPORT_C int asn1PD_TimeslotISCP (OSCTXT* pctxt, ASN1T_TimeslotISCP* pvalue); + +IMPORT_C void asn1Print_TimeslotISCP + (const char* name, ASN1T_TimeslotISCP* pvalue); + +/**************************************************************/ +/* */ +/* TimeslotISCP_List */ +/* */ +/**************************************************************/ + +#define TV_TimeslotISCP_List (TM_UNIV|TM_CONS|16) + +typedef struct ASN1T_TimeslotISCP_List { + OSUINT32 n; + ASN1T_TimeslotISCP elem[14]; + ASN1T_TimeslotISCP_List () : n (0) {} +} ASN1T_TimeslotISCP_List; + +IMPORT_C int asn1PE_TimeslotISCP_List (OSCTXT* pctxt, ASN1T_TimeslotISCP_List* pvalue); + +IMPORT_C int asn1PD_TimeslotISCP_List (OSCTXT* pctxt, ASN1T_TimeslotISCP_List* pvalue); + +IMPORT_C void asn1Print_TimeslotISCP_List + (const char* name, ASN1T_TimeslotISCP_List* pvalue); + +/**************************************************************/ +/* */ +/* CellMeasuredResults_modeSpecificInfo_tdd */ +/* */ +/**************************************************************/ + +#define TV_CellMeasuredResults_modeSpecificInfo_tdd (TM_UNIV|TM_CONS|16) + +struct ASN1T_CellMeasuredResults_modeSpecificInfo_tdd { + struct { + unsigned proposedTGSNPresent : 1; + unsigned primaryCCPCH_RSCPPresent : 1; + unsigned pathlossPresent : 1; + unsigned timeslotISCP_ListPresent : 1; + } m; + ASN1T_CellParametersID cellParametersID; + ASN1T_TGSN proposedTGSN; + ASN1T_PrimaryCCPCH_RSCP primaryCCPCH_RSCP; + ASN1T_Pathloss pathloss; + ASN1T_TimeslotISCP_List timeslotISCP_List; + IMPORT_C ASN1T_CellMeasuredResults_modeSpecificInfo_tdd (); +} ; + +IMPORT_C int asn1PE_CellMeasuredResults_modeSpecificInfo_tdd (OSCTXT* pctxt, ASN1T_CellMeasuredResults_modeSpecificInfo_tdd* pvalue); + +IMPORT_C int asn1PD_CellMeasuredResults_modeSpecificInfo_tdd (OSCTXT* pctxt, ASN1T_CellMeasuredResults_modeSpecificInfo_tdd* pvalue); + +IMPORT_C void asn1Print_CellMeasuredResults_modeSpecificInfo_tdd + (const char* name, ASN1T_CellMeasuredResults_modeSpecificInfo_tdd* pvalue); + +/**************************************************************/ +/* */ +/* CellMeasuredResults_modeSpecificInfo */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_CellMeasuredResults_modeSpecificInfo_fdd 1 +#define T_CellMeasuredResults_modeSpecificInfo_tdd 2 + +struct ASN1T_CellMeasuredResults_modeSpecificInfo { + int t; + union { + /* t = 1 */ + ASN1T_CellMeasuredResults_modeSpecificInfo_fdd *fdd; + /* t = 2 */ + ASN1T_CellMeasuredResults_modeSpecificInfo_tdd *tdd; + } u; +} ; + +IMPORT_C int asn1PE_CellMeasuredResults_modeSpecificInfo (OSCTXT* pctxt, ASN1T_CellMeasuredResults_modeSpecificInfo* pvalue); + +IMPORT_C int asn1PD_CellMeasuredResults_modeSpecificInfo (OSCTXT* pctxt, ASN1T_CellMeasuredResults_modeSpecificInfo* pvalue); + +IMPORT_C void asn1Print_CellMeasuredResults_modeSpecificInfo + (const char* name, ASN1T_CellMeasuredResults_modeSpecificInfo* pvalue); + +IMPORT_C void asn1Free_CellMeasuredResults_modeSpecificInfo (OSCTXT *pctxt, ASN1T_CellMeasuredResults_modeSpecificInfo* pvalue); + +/**************************************************************/ +/* */ +/* CellMeasuredResults */ +/* */ +/**************************************************************/ + +#define TV_CellMeasuredResults (TM_UNIV|TM_CONS|16) + +struct ASN1T_CellMeasuredResults { + struct { + unsigned cellIdentityPresent : 1; + } m; + OSUINT32 cellIdentity; + ASN1T_CellMeasuredResults_modeSpecificInfo modeSpecificInfo; + IMPORT_C ASN1T_CellMeasuredResults (); +} ; + +IMPORT_C int asn1PE_CellMeasuredResults (OSCTXT* pctxt, ASN1T_CellMeasuredResults* pvalue); + +IMPORT_C int asn1PD_CellMeasuredResults (OSCTXT* pctxt, ASN1T_CellMeasuredResults* pvalue); + +IMPORT_C void asn1Print_CellMeasuredResults + (const char* name, ASN1T_CellMeasuredResults* pvalue); + +IMPORT_C void asn1Free_CellMeasuredResults (OSCTXT *pctxt, ASN1T_CellMeasuredResults* pvalue); + +/**************************************************************/ +/* */ +/* CellMeasuredResultsList */ +/* */ +/**************************************************************/ + +#define TV_CellMeasuredResultsList (TM_UNIV|TM_CONS|16) + +/* List of ASN1T_CellMeasuredResults */ +typedef ASN1TSeqOfList ASN1T_CellMeasuredResultsList; + +class ASN1C_CellMeasuredResultsList : +public ASN1CSeqOfList +{ +protected: + ASN1T_CellMeasuredResultsList& msgData; +public: + IMPORT_C ASN1C_CellMeasuredResultsList (ASN1T_CellMeasuredResultsList& data); + IMPORT_C ASN1C_CellMeasuredResultsList (OSRTMessageBufferIF& msgBuf + , ASN1T_CellMeasuredResultsList& data); + ASN1C_CellMeasuredResultsList (ASN1CType& ccobj, ASN1T_CellMeasuredResultsList& data); + IMPORT_C ASN1C_CellMeasuredResultsList (OSRTContext &context + , ASN1T_CellMeasuredResultsList& data); + void Append (ASN1T_CellMeasuredResults* elem); + ASN1T_CellMeasuredResults* NewElement (); +} ; + +IMPORT_C int asn1PE_CellMeasuredResultsList (OSCTXT* pctxt, ASN1T_CellMeasuredResultsList* pvalue); + +IMPORT_C int asn1PD_CellMeasuredResultsList (OSCTXT* pctxt, ASN1T_CellMeasuredResultsList* pvalue); + +IMPORT_C void asn1Print_CellMeasuredResultsList + (const char* name, ASN1T_CellMeasuredResultsList* pvalue); + +IMPORT_C void asn1Free_CellMeasuredResultsList (OSCTXT *pctxt, ASN1T_CellMeasuredResultsList* pvalue); + +/**************************************************************/ +/* */ +/* MeasuredResults */ +/* */ +/**************************************************************/ + +#define TV_MeasuredResults (TM_UNIV|TM_CONS|16) + +struct ASN1T_MeasuredResults { + struct { + unsigned frequencyInfoPresent : 1; + unsigned utra_CarrierRSSIPresent : 1; + unsigned cellMeasuredResultsListPresent : 1; + } m; + ASN1T_FrequencyInfo frequencyInfo; + ASN1T_UTRA_CarrierRSSI utra_CarrierRSSI; + ASN1T_CellMeasuredResultsList cellMeasuredResultsList; + IMPORT_C ASN1T_MeasuredResults (); +} ; + +IMPORT_C int asn1PE_MeasuredResults (OSCTXT* pctxt, ASN1T_MeasuredResults* pvalue); + +IMPORT_C int asn1PD_MeasuredResults (OSCTXT* pctxt, ASN1T_MeasuredResults* pvalue); + +IMPORT_C void asn1Print_MeasuredResults + (const char* name, ASN1T_MeasuredResults* pvalue); + +IMPORT_C void asn1Free_MeasuredResults (OSCTXT *pctxt, ASN1T_MeasuredResults* pvalue); + +/**************************************************************/ +/* */ +/* MeasuredResultsList */ +/* */ +/**************************************************************/ + +#define TV_MeasuredResultsList (TM_UNIV|TM_CONS|16) + +/* List of ASN1T_MeasuredResults */ +typedef ASN1TSeqOfList ASN1T_MeasuredResultsList; + +class ASN1C_MeasuredResultsList : +public ASN1CSeqOfList +{ +protected: + ASN1T_MeasuredResultsList& msgData; +public: + IMPORT_C ASN1C_MeasuredResultsList (ASN1T_MeasuredResultsList& data); + IMPORT_C ASN1C_MeasuredResultsList (OSRTMessageBufferIF& msgBuf + , ASN1T_MeasuredResultsList& data); + ASN1C_MeasuredResultsList (ASN1CType& ccobj, ASN1T_MeasuredResultsList& data); + IMPORT_C ASN1C_MeasuredResultsList (OSRTContext &context + , ASN1T_MeasuredResultsList& data); + void Append (ASN1T_MeasuredResults* elem); + ASN1T_MeasuredResults* NewElement (); +} ; + +IMPORT_C int asn1PE_MeasuredResultsList (OSCTXT* pctxt, ASN1T_MeasuredResultsList* pvalue); + +IMPORT_C int asn1PD_MeasuredResultsList (OSCTXT* pctxt, ASN1T_MeasuredResultsList* pvalue); + +IMPORT_C void asn1Print_MeasuredResultsList + (const char* name, ASN1T_MeasuredResultsList* pvalue); + +IMPORT_C void asn1Free_MeasuredResultsList (OSCTXT *pctxt, ASN1T_MeasuredResultsList* pvalue); + +/**************************************************************/ +/* */ +/* WcdmaCellInformation */ +/* */ +/**************************************************************/ + +#define TV_WcdmaCellInformation (TM_UNIV|TM_CONS|16) + +struct ASN1T_WcdmaCellInformation { + struct { + unsigned frequencyInfoPresent : 1; + unsigned primaryScramblingCodePresent : 1; + unsigned measuredResultsListPresent : 1; + } m; + OSUINT16 refMCC; + OSUINT16 refMNC; + OSUINT32 refUC; + ASN1T_FrequencyInfo frequencyInfo; + OSUINT16 primaryScramblingCode; + ASN1T_MeasuredResultsList measuredResultsList; + IMPORT_C ASN1T_WcdmaCellInformation (); +} ; + +IMPORT_C int asn1PE_WcdmaCellInformation (OSCTXT* pctxt, ASN1T_WcdmaCellInformation* pvalue); + +IMPORT_C int asn1PD_WcdmaCellInformation (OSCTXT* pctxt, ASN1T_WcdmaCellInformation* pvalue); + +IMPORT_C void asn1Print_WcdmaCellInformation + (const char* name, ASN1T_WcdmaCellInformation* pvalue); + +IMPORT_C void asn1Free_WcdmaCellInformation (OSCTXT *pctxt, ASN1T_WcdmaCellInformation* pvalue); + +/**************************************************************/ +/* */ +/* CdmaCellInformation */ +/* */ +/**************************************************************/ + +#define TV_CdmaCellInformation (TM_UNIV|TM_CONS|16) + +struct ASN1T_CdmaCellInformation { + OSUINT16 refNID; + OSUINT16 refSID; + OSUINT16 refBASEID; + OSUINT32 refBASELAT; + OSUINT32 reBASELONG; + OSUINT16 refREFPN; + OSUINT16 refWeekNumber; + OSUINT32 refSeconds; + IMPORT_C ASN1T_CdmaCellInformation (); +} ; + +IMPORT_C int asn1PE_CdmaCellInformation (OSCTXT* pctxt, ASN1T_CdmaCellInformation* pvalue); + +IMPORT_C int asn1PD_CdmaCellInformation (OSCTXT* pctxt, ASN1T_CdmaCellInformation* pvalue); + +IMPORT_C void asn1Print_CdmaCellInformation + (const char* name, ASN1T_CdmaCellInformation* pvalue); + +/**************************************************************/ +/* */ +/* CellInfo */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_CellInfo_gsmCell 1 +#define T_CellInfo_wcdmaCell 2 +#define T_CellInfo_cdmaCell 3 +#define T_CellInfo_extElem1 4 + +struct ASN1T_CellInfo { + int t; + union { + /* t = 1 */ + ASN1T_GsmCellInformation *gsmCell; + /* t = 2 */ + ASN1T_WcdmaCellInformation *wcdmaCell; + /* t = 3 */ + ASN1T_CdmaCellInformation *cdmaCell; + /* t = 4 */ + } u; +} ; + +IMPORT_C int asn1PE_CellInfo (OSCTXT* pctxt, ASN1T_CellInfo* pvalue); + +IMPORT_C int asn1PD_CellInfo (OSCTXT* pctxt, ASN1T_CellInfo* pvalue); + +IMPORT_C void asn1Print_CellInfo + (const char* name, ASN1T_CellInfo* pvalue); + +IMPORT_C void asn1Free_CellInfo (OSCTXT *pctxt, ASN1T_CellInfo* pvalue); + +/**************************************************************/ +/* */ +/* Status */ +/* */ +/**************************************************************/ + +#define TV_Status (TM_UNIV|TM_PRIM|10) + +struct Status { + enum Root { + stale = 0, + current = 1, + unknown = 2 + } ; +} ; + +typedef OSUINT32 ASN1T_Status; + +IMPORT_C int asn1PE_Status (OSCTXT* pctxt, ASN1T_Status value); + +IMPORT_C int asn1PD_Status (OSCTXT* pctxt, ASN1T_Status* pvalue); + +IMPORT_C void asn1Print_Status + (const char* name, ASN1T_Status* pvalue); + +IMPORT_C const OSUTF8CHAR* ASN1T_Status_ToString (OSINT32 value); + +IMPORT_C int ASN1T_Status_ToEnum (OSCTXT* pctxt, + const OSUTF8CHAR* value, ASN1T_Status* pvalue); + +/**************************************************************/ +/* */ +/* LocationId */ +/* */ +/**************************************************************/ + +#define TV_LocationId (TM_UNIV|TM_CONS|16) + +struct ASN1T_LocationId { + ASN1T_CellInfo cellInfo; + ASN1T_Status status; + IMPORT_C ASN1T_LocationId (); +} ; + +IMPORT_C int asn1PE_LocationId (OSCTXT* pctxt, ASN1T_LocationId* pvalue); + +IMPORT_C int asn1PD_LocationId (OSCTXT* pctxt, ASN1T_LocationId* pvalue); + +IMPORT_C void asn1Print_LocationId + (const char* name, ASN1T_LocationId* pvalue); + +IMPORT_C void asn1Free_LocationId (OSCTXT *pctxt, ASN1T_LocationId* pvalue); + +/**************************************************************/ +/* */ +/* PositionEstimate_latitudeSign */ +/* */ +/**************************************************************/ + +#define TV_PositionEstimate_latitudeSign (TM_UNIV|TM_PRIM|10) + +struct PositionEstimate_latitudeSign { + enum Root { + north = 0, + south = 1 + } ; +} ; + +typedef OSUINT32 ASN1T_PositionEstimate_latitudeSign; + +IMPORT_C int asn1PE_PositionEstimate_latitudeSign (OSCTXT* pctxt, ASN1T_PositionEstimate_latitudeSign value); + +IMPORT_C int asn1PD_PositionEstimate_latitudeSign (OSCTXT* pctxt, ASN1T_PositionEstimate_latitudeSign* pvalue); + +IMPORT_C void asn1Print_PositionEstimate_latitudeSign + (const char* name, ASN1T_PositionEstimate_latitudeSign* pvalue); + +IMPORT_C const OSUTF8CHAR* ASN1T_PositionEstimate_latitudeSign_ToString (OSINT32 value); + +IMPORT_C int ASN1T_PositionEstimate_latitudeSign_ToEnum (OSCTXT* pctxt, + const OSUTF8CHAR* value, ASN1T_PositionEstimate_latitudeSign* pvalue); + +/**************************************************************/ +/* */ +/* PositionEstimate_uncertainty */ +/* */ +/**************************************************************/ + +#define TV_PositionEstimate_uncertainty (TM_UNIV|TM_CONS|16) + +struct ASN1T_PositionEstimate_uncertainty { + OSUINT8 uncertaintySemiMajor; + OSUINT8 uncertaintySemiMinor; + OSUINT8 orientationMajorAxis; + IMPORT_C ASN1T_PositionEstimate_uncertainty (); +} ; + +IMPORT_C int asn1PE_PositionEstimate_uncertainty (OSCTXT* pctxt, ASN1T_PositionEstimate_uncertainty* pvalue); + +IMPORT_C int asn1PD_PositionEstimate_uncertainty (OSCTXT* pctxt, ASN1T_PositionEstimate_uncertainty* pvalue); + +IMPORT_C void asn1Print_PositionEstimate_uncertainty + (const char* name, ASN1T_PositionEstimate_uncertainty* pvalue); + +/**************************************************************/ +/* */ +/* AltitudeInfo_altitudeDirection */ +/* */ +/**************************************************************/ + +#define TV_AltitudeInfo_altitudeDirection (TM_UNIV|TM_PRIM|10) + +struct AltitudeInfo_altitudeDirection { + enum Root { + height = 0, + depth = 1 + } ; +} ; + +typedef OSUINT32 ASN1T_AltitudeInfo_altitudeDirection; + +IMPORT_C int asn1PE_AltitudeInfo_altitudeDirection (OSCTXT* pctxt, ASN1T_AltitudeInfo_altitudeDirection value); + +IMPORT_C int asn1PD_AltitudeInfo_altitudeDirection (OSCTXT* pctxt, ASN1T_AltitudeInfo_altitudeDirection* pvalue); + +IMPORT_C void asn1Print_AltitudeInfo_altitudeDirection + (const char* name, ASN1T_AltitudeInfo_altitudeDirection* pvalue); + +IMPORT_C const OSUTF8CHAR* ASN1T_AltitudeInfo_altitudeDirection_ToString (OSINT32 value); + +IMPORT_C int ASN1T_AltitudeInfo_altitudeDirection_ToEnum (OSCTXT* pctxt, + const OSUTF8CHAR* value, ASN1T_AltitudeInfo_altitudeDirection* pvalue); + +/**************************************************************/ +/* */ +/* AltitudeInfo */ +/* */ +/**************************************************************/ + +#define TV_AltitudeInfo (TM_UNIV|TM_CONS|16) + +struct ASN1T_AltitudeInfo { + ASN1T_AltitudeInfo_altitudeDirection altitudeDirection; + OSUINT16 altitude; + OSUINT8 altUncertainty; + IMPORT_C ASN1T_AltitudeInfo (); +} ; + +IMPORT_C int asn1PE_AltitudeInfo (OSCTXT* pctxt, ASN1T_AltitudeInfo* pvalue); + +IMPORT_C int asn1PD_AltitudeInfo (OSCTXT* pctxt, ASN1T_AltitudeInfo* pvalue); + +IMPORT_C void asn1Print_AltitudeInfo + (const char* name, ASN1T_AltitudeInfo* pvalue); + +/**************************************************************/ +/* */ +/* PositionEstimate */ +/* */ +/**************************************************************/ + +#define TV_PositionEstimate (TM_UNIV|TM_CONS|16) + +struct ASN1T_PositionEstimate { + struct { + unsigned uncertaintyPresent : 1; + unsigned confidencePresent : 1; + unsigned altitudeInfoPresent : 1; + } m; + ASN1T_PositionEstimate_latitudeSign latitudeSign; + OSUINT32 latitude; + OSINT32 longitude; + ASN1T_PositionEstimate_uncertainty uncertainty; + OSUINT8 confidence; + ASN1T_AltitudeInfo altitudeInfo; + IMPORT_C ASN1T_PositionEstimate (); +} ; + +IMPORT_C int asn1PE_PositionEstimate (OSCTXT* pctxt, ASN1T_PositionEstimate* pvalue); + +IMPORT_C int asn1PD_PositionEstimate (OSCTXT* pctxt, ASN1T_PositionEstimate* pvalue); + +IMPORT_C void asn1Print_PositionEstimate + (const char* name, ASN1T_PositionEstimate* pvalue); + +/**************************************************************/ +/* */ +/* Horvel_bearing */ +/* */ +/**************************************************************/ + +#define TV_Horvel_bearing (TM_UNIV|TM_PRIM|3) + +struct ASN1T_Horvel_bearing { + OSUINT32 numbits; + OSOCTET data[2]; + // ctors + ASN1T_Horvel_bearing () : numbits(0) {} + ASN1T_Horvel_bearing (OSUINT32 _numbits, const OSOCTET* _data) : + numbits(_numbits) { + OSCRTLMEMCPY (data, _data, sizeof(data)); + } +} ; + +IMPORT_C int asn1PE_Horvel_bearing (OSCTXT* pctxt, ASN1T_Horvel_bearing* pvalue); + +IMPORT_C int asn1PD_Horvel_bearing (OSCTXT* pctxt, ASN1T_Horvel_bearing* pvalue); + +IMPORT_C void asn1Print_Horvel_bearing + (const char* name, ASN1T_Horvel_bearing* pvalue); + +/**************************************************************/ +/* */ +/* Horvel_horspeed */ +/* */ +/**************************************************************/ + +#define TV_Horvel_horspeed (TM_UNIV|TM_PRIM|3) + +struct ASN1T_Horvel_horspeed { + OSUINT32 numbits; + OSOCTET data[2]; + // ctors + ASN1T_Horvel_horspeed () : numbits(0) {} + ASN1T_Horvel_horspeed (OSUINT32 _numbits, const OSOCTET* _data) : + numbits(_numbits) { + OSCRTLMEMCPY (data, _data, sizeof(data)); + } +} ; + +IMPORT_C int asn1PE_Horvel_horspeed (OSCTXT* pctxt, ASN1T_Horvel_horspeed* pvalue); + +IMPORT_C int asn1PD_Horvel_horspeed (OSCTXT* pctxt, ASN1T_Horvel_horspeed* pvalue); + +IMPORT_C void asn1Print_Horvel_horspeed + (const char* name, ASN1T_Horvel_horspeed* pvalue); + +/**************************************************************/ +/* */ +/* Horvel */ +/* */ +/**************************************************************/ + +#define TV_Horvel (TM_UNIV|TM_CONS|16) + +struct ASN1T_Horvel { + ASN1T_Horvel_bearing bearing; + ASN1T_Horvel_horspeed horspeed; + IMPORT_C ASN1T_Horvel (); +} ; + +IMPORT_C int asn1PE_Horvel (OSCTXT* pctxt, ASN1T_Horvel* pvalue); + +IMPORT_C int asn1PD_Horvel (OSCTXT* pctxt, ASN1T_Horvel* pvalue); + +IMPORT_C void asn1Print_Horvel + (const char* name, ASN1T_Horvel* pvalue); + +/**************************************************************/ +/* */ +/* Horandvervel_verdirect */ +/* */ +/**************************************************************/ + +#define TV_Horandvervel_verdirect (TM_UNIV|TM_PRIM|3) + +struct ASN1T_Horandvervel_verdirect { + OSUINT32 numbits; + OSOCTET data[1]; + // ctors + ASN1T_Horandvervel_verdirect () : numbits(0) {} + ASN1T_Horandvervel_verdirect (OSUINT32 _numbits, const OSOCTET* _data) : + numbits(_numbits) { + OSCRTLMEMCPY (data, _data, sizeof(data)); + } +} ; + +IMPORT_C int asn1PE_Horandvervel_verdirect (OSCTXT* pctxt, ASN1T_Horandvervel_verdirect* pvalue); + +IMPORT_C int asn1PD_Horandvervel_verdirect (OSCTXT* pctxt, ASN1T_Horandvervel_verdirect* pvalue); + +IMPORT_C void asn1Print_Horandvervel_verdirect + (const char* name, ASN1T_Horandvervel_verdirect* pvalue); + +/**************************************************************/ +/* */ +/* Horandvervel_bearing */ +/* */ +/**************************************************************/ + +#define TV_Horandvervel_bearing (TM_UNIV|TM_PRIM|3) + +struct ASN1T_Horandvervel_bearing { + OSUINT32 numbits; + OSOCTET data[2]; + // ctors + ASN1T_Horandvervel_bearing () : numbits(0) {} + ASN1T_Horandvervel_bearing (OSUINT32 _numbits, const OSOCTET* _data) : + numbits(_numbits) { + OSCRTLMEMCPY (data, _data, sizeof(data)); + } +} ; + +IMPORT_C int asn1PE_Horandvervel_bearing (OSCTXT* pctxt, ASN1T_Horandvervel_bearing* pvalue); + +IMPORT_C int asn1PD_Horandvervel_bearing (OSCTXT* pctxt, ASN1T_Horandvervel_bearing* pvalue); + +IMPORT_C void asn1Print_Horandvervel_bearing + (const char* name, ASN1T_Horandvervel_bearing* pvalue); + +/**************************************************************/ +/* */ +/* Horandvervel_horspeed */ +/* */ +/**************************************************************/ + +#define TV_Horandvervel_horspeed (TM_UNIV|TM_PRIM|3) + +struct ASN1T_Horandvervel_horspeed { + OSUINT32 numbits; + OSOCTET data[2]; + // ctors + ASN1T_Horandvervel_horspeed () : numbits(0) {} + ASN1T_Horandvervel_horspeed (OSUINT32 _numbits, const OSOCTET* _data) : + numbits(_numbits) { + OSCRTLMEMCPY (data, _data, sizeof(data)); + } +} ; + +IMPORT_C int asn1PE_Horandvervel_horspeed (OSCTXT* pctxt, ASN1T_Horandvervel_horspeed* pvalue); + +IMPORT_C int asn1PD_Horandvervel_horspeed (OSCTXT* pctxt, ASN1T_Horandvervel_horspeed* pvalue); + +IMPORT_C void asn1Print_Horandvervel_horspeed + (const char* name, ASN1T_Horandvervel_horspeed* pvalue); + +/**************************************************************/ +/* */ +/* Horandvervel_verspeed */ +/* */ +/**************************************************************/ + +#define TV_Horandvervel_verspeed (TM_UNIV|TM_PRIM|3) + +struct ASN1T_Horandvervel_verspeed { + OSUINT32 numbits; + OSOCTET data[1]; + // ctors + ASN1T_Horandvervel_verspeed () : numbits(0) {} + ASN1T_Horandvervel_verspeed (OSUINT32 _numbits, const OSOCTET* _data) : + numbits(_numbits) { + OSCRTLMEMCPY (data, _data, sizeof(data)); + } +} ; + +IMPORT_C int asn1PE_Horandvervel_verspeed (OSCTXT* pctxt, ASN1T_Horandvervel_verspeed* pvalue); + +IMPORT_C int asn1PD_Horandvervel_verspeed (OSCTXT* pctxt, ASN1T_Horandvervel_verspeed* pvalue); + +IMPORT_C void asn1Print_Horandvervel_verspeed + (const char* name, ASN1T_Horandvervel_verspeed* pvalue); + +/**************************************************************/ +/* */ +/* Horandvervel */ +/* */ +/**************************************************************/ + +#define TV_Horandvervel (TM_UNIV|TM_CONS|16) + +struct ASN1T_Horandvervel { + ASN1T_Horandvervel_verdirect verdirect; + ASN1T_Horandvervel_bearing bearing; + ASN1T_Horandvervel_horspeed horspeed; + ASN1T_Horandvervel_verspeed verspeed; + IMPORT_C ASN1T_Horandvervel (); +} ; + +IMPORT_C int asn1PE_Horandvervel (OSCTXT* pctxt, ASN1T_Horandvervel* pvalue); + +IMPORT_C int asn1PD_Horandvervel (OSCTXT* pctxt, ASN1T_Horandvervel* pvalue); + +IMPORT_C void asn1Print_Horandvervel + (const char* name, ASN1T_Horandvervel* pvalue); + +/**************************************************************/ +/* */ +/* Horveluncert_bearing */ +/* */ +/**************************************************************/ + +#define TV_Horveluncert_bearing (TM_UNIV|TM_PRIM|3) + +struct ASN1T_Horveluncert_bearing { + OSUINT32 numbits; + OSOCTET data[2]; + // ctors + ASN1T_Horveluncert_bearing () : numbits(0) {} + ASN1T_Horveluncert_bearing (OSUINT32 _numbits, const OSOCTET* _data) : + numbits(_numbits) { + OSCRTLMEMCPY (data, _data, sizeof(data)); + } +} ; + +IMPORT_C int asn1PE_Horveluncert_bearing (OSCTXT* pctxt, ASN1T_Horveluncert_bearing* pvalue); + +IMPORT_C int asn1PD_Horveluncert_bearing (OSCTXT* pctxt, ASN1T_Horveluncert_bearing* pvalue); + +IMPORT_C void asn1Print_Horveluncert_bearing + (const char* name, ASN1T_Horveluncert_bearing* pvalue); + +/**************************************************************/ +/* */ +/* Horveluncert_horspeed */ +/* */ +/**************************************************************/ + +#define TV_Horveluncert_horspeed (TM_UNIV|TM_PRIM|3) + +struct ASN1T_Horveluncert_horspeed { + OSUINT32 numbits; + OSOCTET data[2]; + // ctors + ASN1T_Horveluncert_horspeed () : numbits(0) {} + ASN1T_Horveluncert_horspeed (OSUINT32 _numbits, const OSOCTET* _data) : + numbits(_numbits) { + OSCRTLMEMCPY (data, _data, sizeof(data)); + } +} ; + +IMPORT_C int asn1PE_Horveluncert_horspeed (OSCTXT* pctxt, ASN1T_Horveluncert_horspeed* pvalue); + +IMPORT_C int asn1PD_Horveluncert_horspeed (OSCTXT* pctxt, ASN1T_Horveluncert_horspeed* pvalue); + +IMPORT_C void asn1Print_Horveluncert_horspeed + (const char* name, ASN1T_Horveluncert_horspeed* pvalue); + +/**************************************************************/ +/* */ +/* Horveluncert_uncertspeed */ +/* */ +/**************************************************************/ + +#define TV_Horveluncert_uncertspeed (TM_UNIV|TM_PRIM|3) + +struct ASN1T_Horveluncert_uncertspeed { + OSUINT32 numbits; + OSOCTET data[1]; + // ctors + ASN1T_Horveluncert_uncertspeed () : numbits(0) {} + ASN1T_Horveluncert_uncertspeed (OSUINT32 _numbits, const OSOCTET* _data) : + numbits(_numbits) { + OSCRTLMEMCPY (data, _data, sizeof(data)); + } +} ; + +IMPORT_C int asn1PE_Horveluncert_uncertspeed (OSCTXT* pctxt, ASN1T_Horveluncert_uncertspeed* pvalue); + +IMPORT_C int asn1PD_Horveluncert_uncertspeed (OSCTXT* pctxt, ASN1T_Horveluncert_uncertspeed* pvalue); + +IMPORT_C void asn1Print_Horveluncert_uncertspeed + (const char* name, ASN1T_Horveluncert_uncertspeed* pvalue); + +/**************************************************************/ +/* */ +/* Horveluncert */ +/* */ +/**************************************************************/ + +#define TV_Horveluncert (TM_UNIV|TM_CONS|16) + +struct ASN1T_Horveluncert { + ASN1T_Horveluncert_bearing bearing; + ASN1T_Horveluncert_horspeed horspeed; + ASN1T_Horveluncert_uncertspeed uncertspeed; + IMPORT_C ASN1T_Horveluncert (); +} ; + +IMPORT_C int asn1PE_Horveluncert (OSCTXT* pctxt, ASN1T_Horveluncert* pvalue); + +IMPORT_C int asn1PD_Horveluncert (OSCTXT* pctxt, ASN1T_Horveluncert* pvalue); + +IMPORT_C void asn1Print_Horveluncert + (const char* name, ASN1T_Horveluncert* pvalue); + +/**************************************************************/ +/* */ +/* Horandveruncert_verdirect */ +/* */ +/**************************************************************/ + +#define TV_Horandveruncert_verdirect (TM_UNIV|TM_PRIM|3) + +struct ASN1T_Horandveruncert_verdirect { + OSUINT32 numbits; + OSOCTET data[1]; + // ctors + ASN1T_Horandveruncert_verdirect () : numbits(0) {} + ASN1T_Horandveruncert_verdirect (OSUINT32 _numbits, const OSOCTET* _data) : + numbits(_numbits) { + OSCRTLMEMCPY (data, _data, sizeof(data)); + } +} ; + +IMPORT_C int asn1PE_Horandveruncert_verdirect (OSCTXT* pctxt, ASN1T_Horandveruncert_verdirect* pvalue); + +IMPORT_C int asn1PD_Horandveruncert_verdirect (OSCTXT* pctxt, ASN1T_Horandveruncert_verdirect* pvalue); + +IMPORT_C void asn1Print_Horandveruncert_verdirect + (const char* name, ASN1T_Horandveruncert_verdirect* pvalue); + +/**************************************************************/ +/* */ +/* Horandveruncert_bearing */ +/* */ +/**************************************************************/ + +#define TV_Horandveruncert_bearing (TM_UNIV|TM_PRIM|3) + +struct ASN1T_Horandveruncert_bearing { + OSUINT32 numbits; + OSOCTET data[2]; + // ctors + ASN1T_Horandveruncert_bearing () : numbits(0) {} + ASN1T_Horandveruncert_bearing (OSUINT32 _numbits, const OSOCTET* _data) : + numbits(_numbits) { + OSCRTLMEMCPY (data, _data, sizeof(data)); + } +} ; + +IMPORT_C int asn1PE_Horandveruncert_bearing (OSCTXT* pctxt, ASN1T_Horandveruncert_bearing* pvalue); + +IMPORT_C int asn1PD_Horandveruncert_bearing (OSCTXT* pctxt, ASN1T_Horandveruncert_bearing* pvalue); + +IMPORT_C void asn1Print_Horandveruncert_bearing + (const char* name, ASN1T_Horandveruncert_bearing* pvalue); + +/**************************************************************/ +/* */ +/* Horandveruncert_horspeed */ +/* */ +/**************************************************************/ + +#define TV_Horandveruncert_horspeed (TM_UNIV|TM_PRIM|3) + +struct ASN1T_Horandveruncert_horspeed { + OSUINT32 numbits; + OSOCTET data[2]; + // ctors + ASN1T_Horandveruncert_horspeed () : numbits(0) {} + ASN1T_Horandveruncert_horspeed (OSUINT32 _numbits, const OSOCTET* _data) : + numbits(_numbits) { + OSCRTLMEMCPY (data, _data, sizeof(data)); + } +} ; + +IMPORT_C int asn1PE_Horandveruncert_horspeed (OSCTXT* pctxt, ASN1T_Horandveruncert_horspeed* pvalue); + +IMPORT_C int asn1PD_Horandveruncert_horspeed (OSCTXT* pctxt, ASN1T_Horandveruncert_horspeed* pvalue); + +IMPORT_C void asn1Print_Horandveruncert_horspeed + (const char* name, ASN1T_Horandveruncert_horspeed* pvalue); + +/**************************************************************/ +/* */ +/* Horandveruncert_verspeed */ +/* */ +/**************************************************************/ + +#define TV_Horandveruncert_verspeed (TM_UNIV|TM_PRIM|3) + +struct ASN1T_Horandveruncert_verspeed { + OSUINT32 numbits; + OSOCTET data[1]; + // ctors + ASN1T_Horandveruncert_verspeed () : numbits(0) {} + ASN1T_Horandveruncert_verspeed (OSUINT32 _numbits, const OSOCTET* _data) : + numbits(_numbits) { + OSCRTLMEMCPY (data, _data, sizeof(data)); + } +} ; + +IMPORT_C int asn1PE_Horandveruncert_verspeed (OSCTXT* pctxt, ASN1T_Horandveruncert_verspeed* pvalue); + +IMPORT_C int asn1PD_Horandveruncert_verspeed (OSCTXT* pctxt, ASN1T_Horandveruncert_verspeed* pvalue); + +IMPORT_C void asn1Print_Horandveruncert_verspeed + (const char* name, ASN1T_Horandveruncert_verspeed* pvalue); + +/**************************************************************/ +/* */ +/* Horandveruncert_horuncertspeed */ +/* */ +/**************************************************************/ + +#define TV_Horandveruncert_horuncertspeed (TM_UNIV|TM_PRIM|3) + +struct ASN1T_Horandveruncert_horuncertspeed { + OSUINT32 numbits; + OSOCTET data[1]; + // ctors + ASN1T_Horandveruncert_horuncertspeed () : numbits(0) {} + ASN1T_Horandveruncert_horuncertspeed (OSUINT32 _numbits, const OSOCTET* _data) : + numbits(_numbits) { + OSCRTLMEMCPY (data, _data, sizeof(data)); + } +} ; + +IMPORT_C int asn1PE_Horandveruncert_horuncertspeed (OSCTXT* pctxt, ASN1T_Horandveruncert_horuncertspeed* pvalue); + +IMPORT_C int asn1PD_Horandveruncert_horuncertspeed (OSCTXT* pctxt, ASN1T_Horandveruncert_horuncertspeed* pvalue); + +IMPORT_C void asn1Print_Horandveruncert_horuncertspeed + (const char* name, ASN1T_Horandveruncert_horuncertspeed* pvalue); + +/**************************************************************/ +/* */ +/* Horandveruncert_veruncertspeed */ +/* */ +/**************************************************************/ + +#define TV_Horandveruncert_veruncertspeed (TM_UNIV|TM_PRIM|3) + +struct ASN1T_Horandveruncert_veruncertspeed { + OSUINT32 numbits; + OSOCTET data[1]; + // ctors + ASN1T_Horandveruncert_veruncertspeed () : numbits(0) {} + ASN1T_Horandveruncert_veruncertspeed (OSUINT32 _numbits, const OSOCTET* _data) : + numbits(_numbits) { + OSCRTLMEMCPY (data, _data, sizeof(data)); + } +} ; + +IMPORT_C int asn1PE_Horandveruncert_veruncertspeed (OSCTXT* pctxt, ASN1T_Horandveruncert_veruncertspeed* pvalue); + +IMPORT_C int asn1PD_Horandveruncert_veruncertspeed (OSCTXT* pctxt, ASN1T_Horandveruncert_veruncertspeed* pvalue); + +IMPORT_C void asn1Print_Horandveruncert_veruncertspeed + (const char* name, ASN1T_Horandveruncert_veruncertspeed* pvalue); + +/**************************************************************/ +/* */ +/* Horandveruncert */ +/* */ +/**************************************************************/ + +#define TV_Horandveruncert (TM_UNIV|TM_CONS|16) + +struct ASN1T_Horandveruncert { + ASN1T_Horandveruncert_verdirect verdirect; + ASN1T_Horandveruncert_bearing bearing; + ASN1T_Horandveruncert_horspeed horspeed; + ASN1T_Horandveruncert_verspeed verspeed; + ASN1T_Horandveruncert_horuncertspeed horuncertspeed; + ASN1T_Horandveruncert_veruncertspeed veruncertspeed; + IMPORT_C ASN1T_Horandveruncert (); +} ; + +IMPORT_C int asn1PE_Horandveruncert (OSCTXT* pctxt, ASN1T_Horandveruncert* pvalue); + +IMPORT_C int asn1PD_Horandveruncert (OSCTXT* pctxt, ASN1T_Horandveruncert* pvalue); + +IMPORT_C void asn1Print_Horandveruncert + (const char* name, ASN1T_Horandveruncert* pvalue); + +/**************************************************************/ +/* */ +/* Velocity */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_Velocity_horvel 1 +#define T_Velocity_horandvervel 2 +#define T_Velocity_horveluncert 3 +#define T_Velocity_horandveruncert 4 +#define T_Velocity_extElem1 5 + +struct ASN1T_Velocity { + int t; + union { + /* t = 1 */ + ASN1T_Horvel *horvel; + /* t = 2 */ + ASN1T_Horandvervel *horandvervel; + /* t = 3 */ + ASN1T_Horveluncert *horveluncert; + /* t = 4 */ + ASN1T_Horandveruncert *horandveruncert; + /* t = 5 */ + } u; +} ; + +IMPORT_C int asn1PE_Velocity (OSCTXT* pctxt, ASN1T_Velocity* pvalue); + +IMPORT_C int asn1PD_Velocity (OSCTXT* pctxt, ASN1T_Velocity* pvalue); + +IMPORT_C void asn1Print_Velocity + (const char* name, ASN1T_Velocity* pvalue); + +IMPORT_C void asn1Free_Velocity (OSCTXT *pctxt, ASN1T_Velocity* pvalue); + +/**************************************************************/ +/* */ +/* Position */ +/* */ +/**************************************************************/ + +#define TV_Position (TM_UNIV|TM_CONS|16) + +struct ASN1T_Position { + struct { + unsigned velocityPresent : 1; + } m; + const char* timestamp; + ASN1T_PositionEstimate positionEstimate; + ASN1T_Velocity velocity; + IMPORT_C ASN1T_Position (); +} ; + +IMPORT_C int asn1PE_Position (OSCTXT* pctxt, ASN1T_Position* pvalue); + +IMPORT_C int asn1PD_Position (OSCTXT* pctxt, ASN1T_Position* pvalue); + +IMPORT_C void asn1Print_Position + (const char* name, ASN1T_Position* pvalue); + +IMPORT_C void asn1Free_Position (OSCTXT *pctxt, ASN1T_Position* pvalue); + +/**************************************************************/ +/* */ +/* Ver */ +/* */ +/**************************************************************/ + +#define TV_Ver (TM_UNIV|TM_PRIM|3) + +struct ASN1T_Ver { + OSUINT32 numbits; + OSOCTET data[8]; + // ctors + ASN1T_Ver () : numbits(0) {} + ASN1T_Ver (OSUINT32 _numbits, const OSOCTET* _data) : + numbits(_numbits) { + OSCRTLMEMCPY (data, _data, sizeof(data)); + } +} ; + +IMPORT_C int asn1PE_Ver (OSCTXT* pctxt, ASN1T_Ver* pvalue); + +IMPORT_C int asn1PD_Ver (OSCTXT* pctxt, ASN1T_Ver* pvalue); + +IMPORT_C void asn1Print_Ver + (const char* name, ASN1T_Ver* pvalue); + +/**************************************************************/ +/* */ +/* StatusCode */ +/* */ +/**************************************************************/ + +#define TV_StatusCode (TM_UNIV|TM_PRIM|10) + +struct StatusCode { + enum Root { + unspecified = 0, + systemFailure = 1, + unexpectedMessage = 2, + protocolError = 3, + dataMissing = 4, + unexpectedDataValue = 5, + posMethodFailure = 6, + posMethodMismatch = 7, + posProtocolMismatch = 8, + targetSETnotReachable = 9, + versionNotSupported = 10, + resourceShortage = 11, + invalidSessionId = 12, + nonProxyModeNotSupported = 13, + proxyModeNotSupported = 14, + positioningNotPermitted = 15, + authNetFailure = 16, + authSuplinitFailure = 17, + consentDeniedByUser = 100, + consentGrantedByUser = 101 + } ; +} ; + +typedef OSUINT32 ASN1T_StatusCode; + +IMPORT_C int asn1PE_StatusCode (OSCTXT* pctxt, ASN1T_StatusCode value); + +IMPORT_C int asn1PD_StatusCode (OSCTXT* pctxt, ASN1T_StatusCode* pvalue); + +IMPORT_C void asn1Print_StatusCode + (const char* name, ASN1T_StatusCode* pvalue); + +IMPORT_C const OSUTF8CHAR* ASN1T_StatusCode_ToString (OSINT32 value); + +IMPORT_C int ASN1T_StatusCode_ToEnum (OSCTXT* pctxt, + const OSUTF8CHAR* value, ASN1T_StatusCode* pvalue); + +#endif