Net::Radio::Location::SUPL::XS - Interface to required and embedded ASN.1 structures
This module contains all wrapped ASN.1 structures used for the SUPL Test. The mapping is done using swig and some important structures has some methods to set complex values.
This documentation shall give a short impression of ASN.1 structures supported by Net::Radio::Location::SUPL::XS and which extensions are there. Attributes has to be taken from either the ASN.1 sources or the C header files generated by asn1c - the used ASN.1 compiler.
Net::Radio::Location::SUPL::XS
Following documents has been used for implementation:
Open Mobile Alliance UserPlace Location Protocol Candidate Version 1.0, 22th Jan 2007
OMA-TS-ULP-V1_0-20070122-C
3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; Universal Geographical Area Description (GAD) (Release 10)
3GPP TS 23.032 V10.0.0 (2011-03)
3rd Generation Partnership Project; Technical Specification Group GSM/EDGE Radio Access Network; Location Services (LCS); Mobile Station (MS) - Serving Mobile Location Centre (SMLC) Radio Resource LCS Protocol (RRLP) (Release 10)
3gPP TS 44.031 V10.0.0 (2010-06)
ASN.1 Structure: SUPLAUTHREQ_t
Struct SUPLAUTHREQ_t has following attributes according to OMA-TS-ULP-V1.0-20070122-C
Following methods are added to structure SUPLAUTHREQ_t:
Dumps the content of the structure in ASN.1 style
Dumps the content of the structure using the embedded XER encoder generating XML
ASN.1 Structure: SUPLAUTHRESP_t
Struct SUPLAUTHRESP_t has following attributes according to OMA-TS-ULP-V1.0-20070122-C
Following methods are added to structure SUPLAUTHRESP_t:
ASN.1 Structure: SUPLEND_t
Struct SUPLEND_t has following attributes according to OMA-TS-ULP-V1.0-20070122-C
Following methods are added to structure SUPLEND_t:
ASN.1 Structure: SUPLINIT_t
Struct SUPLINIT_t has following attributes according to OMA-TS-ULP-V1.0-20070122-C
Following methods are added to structure SUPLINIT_t:
ASN.1 Structure: SUPLPOS_t
Struct SUPLPOS_t has following attributes according to OMA-TS-ULP-V1.0-20070122-C
Following methods are added to structure SUPLPOS_t:
ASN.1 Structure: SUPLPOSINIT_t
Struct SUPLPOSINIT_t has following attributes according to OMA-TS-ULP-V1.0-20070122-C
Following methods are added to structure SUPLPOSINIT_t:
Sets the capabilites of the used SET (SUPL Enabled Terminal). Correct name for the method should be set_SETCapabilities - but it looks ugly.
Use following values for pos_tech (bitwise or combined):
$Net::Radio::Location::SUPL::XSc::setcap_pos_tech_agpsSETassisted
$Net::Radio::Location::SUPL::XSc::setcap_pos_tech_agpsSETBased
$Net::Radio::Location::SUPL::XSc::setcap_pos_tech_autonomousGPS
$Net::Radio::Location::SUPL::XSc::setcap_pos_tech_aFLT
$Net::Radio::Location::SUPL::XSc::setcap_pos_tech_eCID
$Net::Radio::Location::SUPL::XSc::setcap_pos_tech_eOTD
$Net::Radio::Location::SUPL::XSc::setcap_pos_tech_oTDOA
Use following values for pref_method (one of):
$Net::Radio::Location::SUPL::XSc::PrefMethod_agpsSETassistedPreferred
$Net::Radio::Location::SUPL::XSc::PrefMethod_agpsSETBasedPreferred
$Net::Radio::Location::SUPL::XSc::PrefMethod_noPreference
Use following values for pos_proto (bitwise or combined):
$Net::Radio::Location::SUPL::XSc::setcap_pos_proto_tia801 (Unimplemented)
$Net::Radio::Location::SUPL::XSc::setcap_pos_proto_tia801
$Net::Radio::Location::SUPL::XSc::setcap_pos_proto_rrlp
$Net::Radio::Location::SUPL::XSc::setcap_pos_proto_rrc (Unimplemented)
$Net::Radio::Location::SUPL::XSc::setcap_pos_proto_rrc
This method freshly sets the requested assist data for GPS location. Calling it will reset the requestedAssistData to empty values and then assign the given bits.
If you just want to update the values, please use update_requested_assist_data.
Use following values for requested_assist_data (bitwise or combined):
$Net::Radio::Location::SUPL::XSc::reqassistdata_almanacRequested
$Net::Radio::Location::SUPL::XSc::reqassistdata_utcModelRequested
$Net::Radio::Location::SUPL::XSc::reqassistdata_ionosphericModelRequested
$Net::Radio::Location::SUPL::XSc::reqassistdata_dgpsCorrectionsRequested
$Net::Radio::Location::SUPL::XSc::reqassistdata_referenceLocationRequested
$Net::Radio::Location::SUPL::XSc::reqassistdata_referenceTimeRequested
$Net::Radio::Location::SUPL::XSc::reqassistdata_acquisitionAssistanceRequested
$Net::Radio::Location::SUPL::XSc::reqassistdata_realTimeIntegrityRequested
It it not possible to set the optional navigationModelRequested field using this method, use set_requested_assist_navigation_modell for this.
Updates existing requestedAssistData attributes. Calling convention is similar to set_requested_assist_data which is internally called when update of not existing attribute is requested.
Sets the navigationModelData to specified values and enabled the bit for navigationModelRequested.
SatelliteInfo_t * is converted from an array of two-integer-element-arrays. Invoke it like:
SatelliteInfo_t *
$suplposinit->set_requested_assist_navigation_modell( n, m, o, [ [ n1, m1 ], [ n2, m2 ], ... [ ni, mi ] ] );
Sets the locationId->cellInfo to gsmCell and sets the appropriate values. Note that GSM CellId's are 16-bit long.
Bug: The implementation is a bit worse, SWIG's function wrapper should be used to detect whether TA (Terminal Adapter) shall be set and how many TA values are provided. Currently values from 1..255 are used as the one and only TA value, other values are interpeted as "ignore that field".
Sets the locationId->cellInfo to wcdmaCell and sets the appropriate values.
Sets the estimated position of the SET. Remark that latitude is always a positive value from 0 to 179 and the sign (0: north, 1: south) must be provided while longitude must be a positive value from 0 to 359.
when has to be specified in seconds since epoch.
ASN.1 Structure: SUPLRESPONSE_t
Struct SUPLRESPONSE_t has following attributes according to OMA-TS-ULP-V1.0-20070122-C
Following methods are added to structure SUPLRESPONSE_t:
ASN.1 Structure: SUPLSTART_t
Struct SUPLSTART_t has following attributes according to OMA-TS-ULP-V1.0-20070122-C
Following methods are added to structure SUPLSTART_t:
ASN.1 Structure: ULP_PDU_t
Struct ULP_PDU_t has following attributes according to OMA-TS-ULP-V1.0-20070122-C
Following methods are added to structure ULP_PDU_t:
Sets the version of the SUPL protocol. Currently only V1.0 is supported, which is set on construction, this method targets future releases.
Copies the content of the SLP Session Id from another ULP PDU. This session id is initially created by the H-SLP and has to be copied every response packet.
Copies the content of the SET Session Id from another ULP PDU.
Copies the entire content of the Session Id from another ULP PDU.
Initializes the SET Session Id to the given, positive number and sets the embedded SET Id to SETId_PR_imsi with the specified International Mobile Subscriber Identifier.
Initializes the SET Session Id to the given, positive number and sets the embedded SET Id to SETId_PR_msisdn with the specified Mobile Subscriber Integrated Services Digital Network Number.
Defines the embedded message type and resets the embedded message, if any.
Following values are allowed (one of):
$Net::Radio::Location::SUPL::XSc::UlpMessage_PR_msSUPLINIT
$Net::Radio::Location::SUPL::XSc::UlpMessage_PR_msSUPLSTART
$Net::Radio::Location::SUPL::XSc::UlpMessage_PR_msSUPLRESPONSE
$Net::Radio::Location::SUPL::XSc::UlpMessage_PR_msSUPLPOSINIT
$Net::Radio::Location::SUPL::XSc::UlpMessage_PR_msSUPLPOS
$Net::Radio::Location::SUPL::XSc::UlpMessage_PR_msSUPLEND
$Net::Radio::Location::SUPL::XSc::UlpMessage_PR_msSUPLAUTHREQ
$Net::Radio::Location::SUPL::XSc::UlpMessage_PR_msSUPLAUTHRESP
Encodes the ULP PDU using the embedded Unaligned Packed Encoding Rules (UPER, ITU-T X.691) encoder.
ASN.1 Structure: UlpMessage_t
Struct UlpMessage_t has following attributes according to OMA-TS-ULP-V1.0-20070122-C
ASN.1 Structure: SLPAddress_t
Struct SLPAddress_t has following attributes according to OMA-TS-ULP-V1.0-20070122-C
Following methods are added to structure SLPAddress_t:
Sets the embedded address being an IP address, either IPv4 or IPv6. The address format is similar to the format used by Socket or Socket6, respectively.
Sets the embedded address being a full qualified domain name.
Returns a true value, when the embedded address is an IPv4 address.
Returns a true value, when the embedded address is an IPv6 address.
Returns a true value, when the embedded address is an IP address.
Returns a true value, when the embedded address is a full qualified domain name.
Returns a true value, when the embedded address is set to any of the above.
ASN.1 Structure: PosPayLoad_t
Struct PosPayLoad_t has following attributes according to OMA-TS-ULP-V1.0-20070122-C
ASN.1 Structure: LocationId_t
Struct LocationId_t has following attributes according to OMA-TS-ULP-V1.0-20070122-C
ASN.1 Structure: SessionID_t
Struct SessionID_t has following attributes according to OMA-TS-ULP-V1.0-20070122-C
ASN.1 Structure: SetSessionID_t
Struct SetSessionID_t has following attributes according to OMA-TS-ULP-V1.0-20070122-C
ASN.1 Structure: SETId_t
Struct SETId_t has following attributes according to OMA-TS-ULP-V1.0-20070122-C
ASN.1 Structure: SlpSessionID_t
Struct SlpSessionID_t has following attributes according to OMA-TS-ULP-V1.0-20070122-C
ASN.1 Structure: RRLP_PDU_t
Struct RRLP_PDU_t has following attributes according to 3GPP TS 44.031 V10.0.0 (2010-06)
Following methods are added to structure RRLP_PDU_t:
Encodes the RRLP PDU using the embedded Unaligned Packed Encoding Rules (UPER, ITU-T X.691) encoder.
Defines the embedded component type and resets the embedded component, if any.
$Net::Radio::Location::SUPL::XSc::RRLP_Component_PR_msrPositionReq
$Net::Radio::Location::SUPL::XSc::RRLP_Component_PR_msrPositionRsp
$Net::Radio::Location::SUPL::XSc::RRLP_Component_PR_assistanceData
$Net::Radio::Location::SUPL::XSc::RRLP_Component_PR_assistanceDataAck
$Net::Radio::Location::SUPL::XSc::RRLP_Component_PR_protocolError
$Net::Radio::Location::SUPL::XSc::RRLP_Component_PR_posCapabilityReq
$Net::Radio::Location::SUPL::XSc::RRLP_Component_PR_posCapabilityRsp
ASN.1 Structure: RRLP_Component_t
Struct RRLP_Component_t has following attributes according to 3GPP TS 44.031 V10.0.0 (2010-06)
ASN.1 Structure: MsrPosition_Req_t
Struct MsrPosition_Req_t has following attributes according to 3GPP TS 44.031 V10.0.0 (2010-06)
ASN.1 Structure: MsrPosition_Rsp_t
Struct MsrPosition_Rsp_t has following attributes according to 3GPP TS 44.031 V10.0.0 (2010-06)
ASN.1 Structure: PositionInstruct_t
Struct PositionInstruct_t has following attributes according to 3GPP TS 44.031 V10.0.0 (2010-06)
ASN.1 Structure: MethodType_t
Struct MethodType_t has following attributes according to 3GPP TS 44.031 V10.0.0 (2010-06)
ASN.1 Structure: ProtocolError_t
Struct ProtocolError_t has following attributes according to 3GPP TS 44.031 V10.0.0 (2010-06)
ASN.1 Structure: LocationInfo_t
Struct LocationInfo_t has following attributes according to 3GPP TS 44.031 V10.0.0 (2010-06)
Following methods are added to structure LocationInfo_t:
Instantiates new LocationInfo_t instance and sets the refFrame and the fixType attribute.
Instantiates new LocationInfo_t instance and sets the refFrame, the fixType and the optional gpsTOW attribute.
Returns the internally used fixpoint arithmetic multiplier to avoid double typed arguments.
Sets the posEstimate attribute to an ellipsoid point as described in 3GPP TS 23.032 V10.0.0 (2011-03).
Set to 1 for latitudes on southern hemisphere.
The posive value of the latitude in degrees multiplied with the fixpoint arithmetic multiplier.
The value of longitude in degrees multiplied with the fixpoint arithmetic multiplier.
Sets the posEstimate attribute to an ellipsoid point with uncertainty circle as described in 3GPP TS 23.032 V10.0.0 (2011-03).
The uncertainty radius in meters (0..1800000).
Sets the posEstimate attribute to an ellipsoid point with uncertainty ellipse as described in 3GPP TS 23.032 V10.0.0 (2011-03).
The uncertainty radius of the major axis in meters (0..1800000).
The uncertainty radius of the minor axis in meters (0..1800000).
The angle of the orientation of the major axis in degrees from 0..359.
Percentage of confidence known to be within shape description. Valid values are from 1..99 - 0 is defined to be ignored, everything above might be handled H-SLP specific.
Sets the posEstimate attribute to a polygon as described in 3GPP TS 23.032 V10.0.0 (2011-03).
Currently the conversion into struct ellipsoid_point *points, unsigned amount is unimplemented, but it should be finally being called like this:
struct ellipsoid_point *points, unsigned amount
$locationInfo->set_posEstimate( [ south1, lat1, long1 ], [ south2, lat2, long2 ], ... [southn, latn, longn ] );
The values have the common encoding rules ...
Sets the posEstimate attribute to an ellipsoid point with altitude as described in 3GPP TS 23.032 V10.0.0 (2011-03).
Set to 1 when altitude expresses depth
The altitude in meters from 0 .. 32767.
Sets the posEstimate attribute to an ellipsoid point with uncertainty ellipse and altitude as described in 3GPP TS 23.032 V10.0.0 (2011-03).
The uncertainty of the altitude information in meters (0..990).
Sets the posEstimate attribute to an ellipsoid arc as described in 3GPP TS 23.032 V10.0.0 (2011-03).
This is mostly unimplemented - some details must be clarified before it's ready for common use.
ASN.1 Structure: AssistanceData_t
Struct AssistanceData_t has following attributes according to 3GPP TS 44.031 V10.0.0 (2010-06)
ASN.1 Structure: PosCapability_Req_t
Struct PosCapability_Req_t has following attributes according to 3GPP TS 44.031 V10.0.0 (2010-06)
ASN.1 Structure: PosCapability_Rsp_t
Struct PosCapability_Rsp_t has following attributes according to 3GPP TS 44.031 V10.0.0 (2010-06)
Jens Rehsack, <rehsack at cpan.org>
<rehsack at cpan.org>
Please report any bugs or feature requests to bug-supl-test at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=SUPL-Test. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
bug-supl-test at rt.cpan.org
See Net::Radio::Location::SUPL::Test for details about support.
Copyright 2012 Jens Rehsack.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.
To install Net::Radio::Location::SUPL::Test, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::Radio::Location::SUPL::Test
CPAN shell
perl -MCPAN -e shell install Net::Radio::Location::SUPL::Test
For more information on module installation, please visit the detailed CPAN module installation guide.