=pod

=head1 NAME

Net::Radio::Location::SUPL::XS - Interface to required and embedded ASN.1 structures

=head1 DESCRIPTION

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 C<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 I<asn1c> - the used ASN.1 compiler.

Following documents has been used for implementation:

=over 4

=item *

Open Mobile Alliance
UserPlace Location Protocol Candidate Version 1.0, 22th Jan 2007

OMA-TS-ULP-V1_0-20070122-C

=item *

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)

=item *

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)

=back

=head1 STRUCTURES

=head2 Net::Radio::Location::SUPL::XS::SUPLAUTHREQ_t

ASN.1 Structure: SUPLAUTHREQ_t

Struct SUPLAUTHREQ_t has following attributes according to B<OMA-TS-ULP-V1.0-20070122-C>

=over 4

=item sETNonce

=item keyIdentity2

=back

Following methods are added to structure SUPLAUTHREQ_t:

=over 4

=item dump

Dumps the content of the structure in ASN.1 style

=item xml_dump

Dumps the content of the structure using the embedded XER encoder generating XML

=back

=head2 Net::Radio::Location::SUPL::XS::SUPLAUTHRESP_t

ASN.1 Structure: SUPLAUTHRESP_t

Struct SUPLAUTHRESP_t has following attributes according to B<OMA-TS-ULP-V1.0-20070122-C>

=over 4

=item statusCode

=item keyIdentity3

=item sPCAuthKey

=back

Following methods are added to structure SUPLAUTHRESP_t:

=over 4

=item dump

Dumps the content of the structure in ASN.1 style

=item xml_dump

Dumps the content of the structure using the embedded XER encoder generating XML

=back

=head2 Net::Radio::Location::SUPL::XS::SUPLEND_t

ASN.1 Structure: SUPLEND_t

Struct SUPLEND_t has following attributes according to B<OMA-TS-ULP-V1.0-20070122-C>

=over 4

=item ver

=item position

=item statusCode

=back

Following methods are added to structure SUPLEND_t:

=over 4

=item dump

Dumps the content of the structure in ASN.1 style

=item xml_dump

Dumps the content of the structure using the embedded XER encoder generating XML

=back

=head2 Net::Radio::Location::SUPL::XS::SUPLINIT_t

ASN.1 Structure: SUPLINIT_t

Struct SUPLINIT_t has following attributes according to B<OMA-TS-ULP-V1.0-20070122-C>

=over 4

=item mAC

=item posMethod

=item keyIdentity

=item notification

=item sLPAddress

=item qoP

=item sLPMode

=back

Following methods are added to structure SUPLINIT_t:

=over 4

=item dump

Dumps the content of the structure in ASN.1 style

=item xml_dump

Dumps the content of the structure using the embedded XER encoder generating XML

=back

=head2 Net::Radio::Location::SUPL::XS::SUPLPOS_t

ASN.1 Structure: SUPLPOS_t

Struct SUPLPOS_t has following attributes according to B<OMA-TS-ULP-V1.0-20070122-C>

=over 4

=item posPayLoad

=item velocity

=back

Following methods are added to structure SUPLPOS_t:

=over 4

=item dump

Dumps the content of the structure in ASN.1 style

=item xml_dump

Dumps the content of the structure using the embedded XER encoder generating XML

=back

=head2 Net::Radio::Location::SUPL::XS::SUPLPOSINIT_t

ASN.1 Structure: SUPLPOSINIT_t

Struct SUPLPOSINIT_t has following attributes according to B<OMA-TS-ULP-V1.0-20070122-C>

=over 4

=item requestedAssistData

=item locationId

=item sUPLPOS

=item ver

=item position

=item sETCapabilities

=back

Following methods are added to structure SUPLPOSINIT_t:

=over 4

=item dump

Dumps the content of the structure in ASN.1 style

=item xml_dump

Dumps the content of the structure using the embedded XER encoder generating XML

=item set_capabilities(unsigned int pos_tech, enum PrefMethod pref_method, unsigned int pos_proto)

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):

=over 8

=item setcap_pos_tech_agpsSETassisted

C<$Net::Radio::Location::SUPL::XSc::setcap_pos_tech_agpsSETassisted>

=item setcap_pos_tech_agpsSETBased

C<$Net::Radio::Location::SUPL::XSc::setcap_pos_tech_agpsSETBased>

=item setcap_pos_tech_autonomousGPS

C<$Net::Radio::Location::SUPL::XSc::setcap_pos_tech_autonomousGPS>

=item setcap_pos_tech_aFLT

C<$Net::Radio::Location::SUPL::XSc::setcap_pos_tech_aFLT>

=item setcap_pos_tech_eCID

C<$Net::Radio::Location::SUPL::XSc::setcap_pos_tech_eCID>

=item setcap_pos_tech_eOTD

C<$Net::Radio::Location::SUPL::XSc::setcap_pos_tech_eOTD>

=item setcap_pos_tech_oTDOA

C<$Net::Radio::Location::SUPL::XSc::setcap_pos_tech_oTDOA>

=back

Use following values for pref_method (one of):

=over 8

=item PrefMethod_agpsSETassistedPreferred

C<$Net::Radio::Location::SUPL::XSc::PrefMethod_agpsSETassistedPreferred>

=item PrefMethod_agpsSETBasedPreferred

C<$Net::Radio::Location::SUPL::XSc::PrefMethod_agpsSETBasedPreferred>

=item PrefMethod_noPreference

C<$Net::Radio::Location::SUPL::XSc::PrefMethod_noPreference>

=back

Use following values for pos_proto (bitwise or combined):

=over 8

=item setcap_pos_proto_tia801

C<$Net::Radio::Location::SUPL::XSc::setcap_pos_proto_tia801> (Unimplemented)

=item setcap_pos_proto_rrlp

C<$Net::Radio::Location::SUPL::XSc::setcap_pos_proto_rrlp>

=item setcap_pos_proto_rrc

C<$Net::Radio::Location::SUPL::XSc::setcap_pos_proto_rrc> (Unimplemented)

=back

=item set_requested_assist_data(unsigned int requested_assist_data)

This method freshly sets the requested assist data for GPS location.
Calling it will reset the I<requestedAssistData> to empty values and
then assign the given bits.

If you just want to update the values, please use I<update_requested_assist_data>.

Use following values for requested_assist_data (bitwise or combined):

=over 8

=item reqassistdata_almanacRequested

C<$Net::Radio::Location::SUPL::XSc::reqassistdata_almanacRequested>

=item reqassistdata_utcModelRequested

C<$Net::Radio::Location::SUPL::XSc::reqassistdata_utcModelRequested>

=item reqassistdata_ionosphericModelRequested

C<$Net::Radio::Location::SUPL::XSc::reqassistdata_ionosphericModelRequested>

=item reqassistdata_dgpsCorrectionsRequested

C<$Net::Radio::Location::SUPL::XSc::reqassistdata_dgpsCorrectionsRequested>

=item reqassistdata_referenceLocationRequested

C<$Net::Radio::Location::SUPL::XSc::reqassistdata_referenceLocationRequested>

=item reqassistdata_referenceTimeRequested

C<$Net::Radio::Location::SUPL::XSc::reqassistdata_referenceTimeRequested>

=item reqassistdata_acquisitionAssistanceRequested

C<$Net::Radio::Location::SUPL::XSc::reqassistdata_acquisitionAssistanceRequested>

=item reqassistdata_realTimeIntegrityRequested

C<$Net::Radio::Location::SUPL::XSc::reqassistdata_realTimeIntegrityRequested>

=back

It it not possible to set the optional I<navigationModelRequested> field
using this method, use I<set_requested_assist_navigation_modell> for this.

=item update_requested_assist_data

Updates existing I<requestedAssistData> attributes. Calling convention is
similar to I<set_requested_assist_data> which is internally called when
update of not existing attribute is requested.

=item set_requested_assist_navigation_modell(long gpsWeek, long gpsToe, long nSAT, long toeLimit, SatelliteInfo_t * sat_info)

Sets the I<navigationModelData> to specified values and enabled the bit for
I<navigationModelRequested>.

C<SatelliteInfo_t *> is converted from an array of two-integer-element-arrays.
Invoke it like:

  $suplposinit->set_requested_assist_navigation_modell(
    n, m, o,
    [ [ n1, m1 ], [ n2, m2 ], ... [ ni, mi ] ]
  );

=item set_gsm_location_info(long mcc, long mnc, long lac, long cellid, long ta)

Sets the locationId->cellInfo to gsmCell and sets the appropriate values.
Note that GSM CellId's are 16-bit long.

B<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".

=item set_wcdma_location_info(long mcc, long mnc, long cellid)

Sets the locationId->cellInfo to wcdmaCell and sets the appropriate values.

=item set_position_estimate(time_t when, long latitudeSign, long latitude, long longitude)

Sets the estimated position of the SET. Remark that I<latitude> is always a positive
value from 0 to 179 and the sign (0: north, 1: south) must be provided while
I<longitude> must be a positive value from 0 to 359.

I<when> has to be specified in seconds since epoch.

=back

=head2 Net::Radio::Location::SUPL::XS::SUPLRESPONSE_t

ASN.1 Structure: SUPLRESPONSE_t

Struct SUPLRESPONSE_t has following attributes according to B<OMA-TS-ULP-V1.0-20070122-C>

=over 4

=item sETAuthKey

=item posMethod

=item sLPAddress

=item keyIdentity4

=back

Following methods are added to structure SUPLRESPONSE_t:

=over 4

=item dump

Dumps the content of the structure in ASN.1 style

=item xml_dump

Dumps the content of the structure using the embedded XER encoder generating XML

=back

=head2 Net::Radio::Location::SUPL::XS::SUPLSTART_t

ASN.1 Structure: SUPLSTART_t

Struct SUPLSTART_t has following attributes according to B<OMA-TS-ULP-V1.0-20070122-C>

=over 4

=item locationId

=item sETCapabilities

=item qoP

=back

Following methods are added to structure SUPLSTART_t:

=over 4

=item dump

Dumps the content of the structure in ASN.1 style

=item xml_dump

Dumps the content of the structure using the embedded XER encoder generating XML

=back

=head2 Net::Radio::Location::SUPL::XS::ULP_PDU_t

ASN.1 Structure: ULP_PDU_t

Struct ULP_PDU_t has following attributes according to B<OMA-TS-ULP-V1.0-20070122-C>

=over 4

=item length

=item version

=item sessionID

=item message

=back

Following methods are added to structure ULP_PDU_t:

=over 4

=item set_version(int maj, int min, int servind)

Sets the version of the SUPL protocol. Currently only V1.0 is supported,
which is set on construction, this method targets future releases.

=item copy_SlpSessionId(ULP_PDU_t *src)

Copies the content of the SLP Session Id from another ULP PDU.
This session id is initially created by the I<H-SLP> and has to be
copied every response packet.

=item copy_SetSessionId(ULP_PDU_t *src)

Copies the content of the SET Session Id from another ULP PDU.

=item copy_SessionId(ULP_PDU_t *src)

Copies the entire content of the Session Id from another ULP PDU.

=item setSetSessionId_to_imsi(int sessionId, char *imsi)

Initializes the SET Session Id to the given, positive number
and sets the embedded SET Id to I<SETId_PR_imsi> with the
specified International Mobile Subscriber Identifier.

=item setSetSessionId_to_msisdn(int sessionId, char *msisdn)

Initializes the SET Session Id to the given, positive number
and sets the embedded SET Id to I<SETId_PR_msisdn> with the
specified Mobile Subscriber Integrated Services Digital Network Number.

=item set_message_type(enum kind_of)

Defines the embedded message type and resets the embedded message, if any.

Following values are allowed (one of):

=over 4

=item UlpMessage_PR_msSUPLINIT

C<$Net::Radio::Location::SUPL::XSc::UlpMessage_PR_msSUPLINIT>

=item UlpMessage_PR_msSUPLSTART

C<$Net::Radio::Location::SUPL::XSc::UlpMessage_PR_msSUPLSTART>

=item UlpMessage_PR_msSUPLRESPONSE

C<$Net::Radio::Location::SUPL::XSc::UlpMessage_PR_msSUPLRESPONSE>

=item UlpMessage_PR_msSUPLPOSINIT

C<$Net::Radio::Location::SUPL::XSc::UlpMessage_PR_msSUPLPOSINIT>

=item UlpMessage_PR_msSUPLPOS

C<$Net::Radio::Location::SUPL::XSc::UlpMessage_PR_msSUPLPOS>

=item UlpMessage_PR_msSUPLEND

C<$Net::Radio::Location::SUPL::XSc::UlpMessage_PR_msSUPLEND>

=item UlpMessage_PR_msSUPLAUTHREQ

C<$Net::Radio::Location::SUPL::XSc::UlpMessage_PR_msSUPLAUTHREQ>

=item UlpMessage_PR_msSUPLAUTHRESP

C<$Net::Radio::Location::SUPL::XSc::UlpMessage_PR_msSUPLAUTHRESP>

=back

=item encode

Encodes the ULP PDU using the embedded Unaligned Packed Encoding Rules
(UPER, I<ITU-T X.691>) encoder.

=item dump

Dumps the content of the structure in ASN.1 style

=item xml_dump

Dumps the content of the structure using the embedded XER encoder generating XML

=back

=head2 Net::Radio::Location::SUPL::XS::UlpMessage_t

ASN.1 Structure: UlpMessage_t

Struct UlpMessage_t has following attributes according to B<OMA-TS-ULP-V1.0-20070122-C>

=over 4

=item present

=item choice

=back

=head2 Net::Radio::Location::SUPL::XS::SLPAddress_t

ASN.1 Structure: SLPAddress_t

Struct SLPAddress_t has following attributes according to B<OMA-TS-ULP-V1.0-20070122-C>

=over 4

=item present

=item choice

=back

Following methods are added to structure SLPAddress_t:

=over 4

=item set_ipaddress

Sets the embedded address being an IP address, either IPv4 or IPv6. The
address format is similar to the format used by L<Socket> or L<Socket6>,
respectively.

=item set_fqdn

Sets the embedded address being a full qualified domain name.

=item is_ipv4

Returns a true value, when the embedded address is an IPv4 address.

=item is_ipv6

Returns a true value, when the embedded address is an IPv6 address.

=item is_ip

Returns a true value, when the embedded address is an IP address.

=item is_fqdn

Returns a true value, when the embedded address is a full qualified
domain name.

=item is_valid

Returns a true value, when the embedded address is set to any of the above.

=back

=head2 Net::Radio::Location::SUPL::XS::PosPayLoad_t

ASN.1 Structure: PosPayLoad_t

Struct PosPayLoad_t has following attributes according to B<OMA-TS-ULP-V1.0-20070122-C>

=over 4

=item present

=item choice

=back

=head2 Net::Radio::Location::SUPL::XS::LocationId_t

ASN.1 Structure: LocationId_t

Struct LocationId_t has following attributes according to B<OMA-TS-ULP-V1.0-20070122-C>

=over 4

=item cellInfo

=item status

=back

=head2 Net::Radio::Location::SUPL::XS::SessionID_t

ASN.1 Structure: SessionID_t

Struct SessionID_t has following attributes according to B<OMA-TS-ULP-V1.0-20070122-C>

=over 4

=item setSessionID

=item slpSessionID

=back

=head2 Net::Radio::Location::SUPL::XS::SetSessionID_t

ASN.1 Structure: SetSessionID_t

Struct SetSessionID_t has following attributes according to B<OMA-TS-ULP-V1.0-20070122-C>

=over 4

=item sessionId

=item setId

=back

=head2 Net::Radio::Location::SUPL::XS::SETId_t

ASN.1 Structure: SETId_t

Struct SETId_t has following attributes according to B<OMA-TS-ULP-V1.0-20070122-C>

=over 4

=item present

=item choice

=back

=head2 Net::Radio::Location::SUPL::XS::SlpSessionID_t

ASN.1 Structure: SlpSessionID_t

Struct SlpSessionID_t has following attributes according to B<OMA-TS-ULP-V1.0-20070122-C>

=over 4

=item slpId

=item sessionID

=back

=head2 Net::Radio::Location::SUPL::XS::RRLP_PDU_t

ASN.1 Structure: RRLP_PDU_t

Struct RRLP_PDU_t has following attributes according to B<3GPP TS 44.031 V10.0.0 (2010-06)>

=over 4

=item referenceNumber

=item component

=back

Following methods are added to structure RRLP_PDU_t:

=over 4

=item encode

Encodes the RRLP PDU using the embedded Unaligned Packed Encoding Rules
(UPER, I<ITU-T X.691>) encoder.

=item dump

Dumps the content of the structure in ASN.1 style

=item xml_dump

Dumps the content of the structure using the embedded XER encoder generating XML

=item set_component_type(enum kind_of)

Defines the embedded component type and resets the embedded component, if any.

Following values are allowed (one of):

=over 4

=item RRLP_Component_PR_msrPositionReq

C<$Net::Radio::Location::SUPL::XSc::RRLP_Component_PR_msrPositionReq>

=item RRLP_Component_PR_msrPositionRsp

C<$Net::Radio::Location::SUPL::XSc::RRLP_Component_PR_msrPositionRsp>

=item RRLP_Component_PR_assistanceData

C<$Net::Radio::Location::SUPL::XSc::RRLP_Component_PR_assistanceData>

=item RRLP_Component_PR_assistanceDataAck

C<$Net::Radio::Location::SUPL::XSc::RRLP_Component_PR_assistanceDataAck>

=item RRLP_Component_PR_protocolError

C<$Net::Radio::Location::SUPL::XSc::RRLP_Component_PR_protocolError>

=item RRLP_Component_PR_posCapabilityReq

C<$Net::Radio::Location::SUPL::XSc::RRLP_Component_PR_posCapabilityReq>

=item RRLP_Component_PR_posCapabilityRsp

C<$Net::Radio::Location::SUPL::XSc::RRLP_Component_PR_posCapabilityRsp>

=back

=back

=head2 Net::Radio::Location::SUPL::XS::RRLP_Component_t

ASN.1 Structure: RRLP_Component_t

Struct RRLP_Component_t has following attributes according to B<3GPP TS 44.031 V10.0.0 (2010-06)>

=over 4

=item present

=item choice

=back

=head2 Net::Radio::Location::SUPL::XS::MsrPosition_Req_t

ASN.1 Structure: MsrPosition_Req_t

Struct MsrPosition_Req_t has following attributes according to B<3GPP TS 44.031 V10.0.0 (2010-06)>

=over 4

=item rel7_MsrPosition_Req_extension

=item gps_AssistData

=item referenceAssistData

=item rel5_MsrPosition_Req_extension

=item rel98_MsrPosition_Req_extension

=item msrAssistData

=item extensionContainer

=item systemInfoAssistData

=item positionInstruct

=back

=head2 Net::Radio::Location::SUPL::XS::MsrPosition_Rsp_t

ASN.1 Structure: MsrPosition_Rsp_t

Struct MsrPosition_Rsp_t has following attributes according to B<3GPP TS 44.031 V10.0.0 (2010-06)>

=over 4

=item referenceIdentity

=item rel_98_MsrPosition_Rsp_Extension

=item gps_MeasureInfo

=item multipleSets

=item extensionContainer

=item locationError

=item locationInfo

=item rel_7_MsrPosition_Rsp_Extension

=item rel_5_MsrPosition_Rsp_Extension

=item otd_MeasureInfo

=back

=head2 Net::Radio::Location::SUPL::XS::PositionInstruct_t

ASN.1 Structure: PositionInstruct_t

Struct PositionInstruct_t has following attributes according to B<3GPP TS 44.031 V10.0.0 (2010-06)>

=over 4

=item useMultipleSets

=item methodType

=item measureResponseTime

=item positionMethod

=item environmentCharacter

=back

=head2 Net::Radio::Location::SUPL::XS::MethodType_t

ASN.1 Structure: MethodType_t

Struct MethodType_t has following attributes according to B<3GPP TS 44.031 V10.0.0 (2010-06)>

=over 4

=item present

=item choice

=back

=head2 Net::Radio::Location::SUPL::XS::ProtocolError_t

ASN.1 Structure: ProtocolError_t

Struct ProtocolError_t has following attributes according to B<3GPP TS 44.031 V10.0.0 (2010-06)>

=over 4

=item errorCause

=item extensionContainer

=item rel_5_ProtocolError_Extension

=back

=head2 Net::Radio::Location::SUPL::XS::LocationInfo_t

ASN.1 Structure: LocationInfo_t

Struct LocationInfo_t has following attributes according to B<3GPP TS 44.031 V10.0.0 (2010-06)>

=over 4

=item posEstimate

=item fixType

=item gpsTOW

=item refFrame

=back

Following methods are added to structure LocationInfo_t:

=over 4

=item new(long refFrame, unsigned int fixType)

Instantiates new LocationInfo_t instance and sets the refFrame and the
fixType attribute.

=item new(long refFrame, long gpsTOW, unsigned int fixType)

Instantiates new LocationInfo_t instance and sets the refFrame, the fixType
and the optional gpsTOW attribute.

=item get_fixpoint_arith_multiplier

Returns the internally used fixpoint arithmetic multiplier to avoid
I<double> typed arguments.

=item set_posEstimate(unsigned int south, unsigned int latitude, unsigned int longitude)

Sets the I<posEstimate> attribute to an ellipsoid point as described in
B<3GPP TS 23.032 V10.0.0 (2011-03)>.

=over 8

=item south

Set to 1 for latitudes on southern hemisphere.

=item latitude

The posive value of the latitude in degrees multiplied with the fixpoint
arithmetic multiplier.

=item longitude

The value of longitude in degrees multiplied with the fixpoint arithmetic
multiplier.

=back

=item set_posEstimate(unsigned int south, unsigned int latitude, unsigned int longitude, unsigned uncertainty)

Sets the I<posEstimate> attribute to an ellipsoid point with uncertainty
circle as described in B<3GPP TS 23.032 V10.0.0 (2011-03)>.

=over 8

=item south

Set to 1 for latitudes on southern hemisphere.

=item latitude

The posive value of the latitude in degrees multiplied with the fixpoint
arithmetic multiplier.

=item longitude

The value of longitude in degrees multiplied with the fixpoint arithmetic
multiplier.

=item uncertainty

The uncertainty radius in meters (0..1800000).

=back

=item set_posEstimate(int south, unsigned int latitude, unsigned int longitude, unsigned uncertainty_semi_major, unsigned uncertainty_semi_minor, unsigned orientation_of_major_axis, unsigned int confidence)

Sets the I<posEstimate> attribute to an ellipsoid point with uncertainty
ellipse as described in B<3GPP TS 23.032 V10.0.0 (2011-03)>.

=over 8

=item south

Set to 1 for latitudes on southern hemisphere.

=item latitude

The posive value of the latitude in degrees multiplied with the fixpoint
arithmetic multiplier.

=item longitude

The value of longitude in degrees multiplied with the fixpoint arithmetic
multiplier.

=item uncertainty_semi_major

The uncertainty radius of the major axis in meters (0..1800000).

=item uncertainty_semi_minor

The uncertainty radius of the minor axis in meters (0..1800000).

=item orientation_of_major_axis

The angle of the orientation of the major axis in degrees from 0..359.

=item confidence

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 I<H-SLP> specific.

=back

=item set_posEstimate(struct ellipsoid_point *points, unsigned amount)

Sets the I<posEstimate> attribute to a polygon as described in
B<3GPP TS 23.032 V10.0.0 (2011-03)>.

Currently the conversion into C<struct ellipsoid_point *points, unsigned
amount> is unimplemented, but it should be finally being called like this:

  $locationInfo->set_posEstimate( [ south1, lat1, long1 ], [ south2, lat2, long2 ], ... [southn, latn, longn ] );

The values have the common encoding rules ...

=item set_posEstimate(int south, unsigned int latitude, unsigned int longitude, int depth, unsigned altitude)

Sets the I<posEstimate> attribute to an ellipsoid point with altitude
as described in B<3GPP TS 23.032 V10.0.0 (2011-03)>.

=over 8

=item south

Set to 1 for latitudes on southern hemisphere.

=item latitude

The posive value of the latitude in degrees multiplied with the fixpoint
arithmetic multiplier.

=item longitude

The value of longitude in degrees multiplied with the fixpoint arithmetic
multiplier.

=item depth

Set to 1 when altitude expresses depth

=item altitude

The altitude in meters from 0 .. 32767.

=back

=item set_posEstimate(int south, unsigned int latitude, unsigned int longitude, int depth_altitude, unsigned altitude, unsigned uncertainty_semi_major, unsigned uncertainty_semi_minor, unsigned orientation_of_major_axis, unsigned int uncertainty_altitude, unsigned int confidence)

Sets the I<posEstimate> attribute to an ellipsoid point with uncertainty
ellipse and altitude as described in B<3GPP TS 23.032 V10.0.0 (2011-03)>.

=over 8

=item south

Set to 1 for latitudes on southern hemisphere.

=item latitude

The posive value of the latitude in degrees multiplied with the fixpoint
arithmetic multiplier.

=item longitude

The value of longitude in degrees multiplied with the fixpoint arithmetic
multiplier.

=item depth

Set to 1 when altitude expresses depth

=item altitude

The altitude in meters from 0 .. 32767.

=item uncertainty_semi_major

The uncertainty radius of the major axis in meters (0..1800000).

=item uncertainty_semi_minor

The uncertainty radius of the minor axis in meters (0..1800000).

=item orientation_of_major_axis

The angle of the orientation of the major axis in degrees from 0..359.

=item uncertainty_altitude

The uncertainty of the altitude information in meters (0..990).

=item confidence

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 I<H-SLP> specific.

=back

=item set_posEstimate(int south, unsigned int latitude, unsigned int longitude, unsigned inner_radius, unsigned uncertainty_radius, unsigned offset_angle, unsigned included_angle, unsigned int confidence)

Sets the I<posEstimate> attribute to an ellipsoid arc as described in
B<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.

=over 8

=item south

Set to 1 for latitudes on southern hemisphere.

=item latitude

The posive value of the latitude in degrees multiplied with the fixpoint
arithmetic multiplier.

=item longitude

The value of longitude in degrees multiplied with the fixpoint arithmetic
multiplier.

=item ...

=back

=back

=head2 Net::Radio::Location::SUPL::XS::AssistanceData_t

ASN.1 Structure: AssistanceData_t

Struct AssistanceData_t has following attributes according to B<3GPP TS 44.031 V10.0.0 (2010-06)>

=over 4

=item moreAssDataToBeSent

=item gps_AssistData

=item msrAssistData

=item extensionContainer

=item rel98_AssistanceData_Extension

=item referenceAssistData

=item rel7_AssistanceData_Extension

=item rel5_AssistanceData_Extension

=item systemInfoAssistData

=back

=head2 Net::Radio::Location::SUPL::XS::PosCapability_Req_t

ASN.1 Structure: PosCapability_Req_t

Struct PosCapability_Req_t has following attributes according to B<3GPP TS 44.031 V10.0.0 (2010-06)>

=over 4

=item extensionContainer

=item gANSSPositionMethods

=item extended_reference

=back

=head2 Net::Radio::Location::SUPL::XS::PosCapability_Rsp_t

ASN.1 Structure: PosCapability_Rsp_t

Struct PosCapability_Rsp_t has following attributes according to B<3GPP TS 44.031 V10.0.0 (2010-06)>

=over 4

=item assistanceNeeded

=item extensionContainer

=item posCapabilities

=item assistanceSupported

=item extended_reference

=back

=head1 AUTHOR

Jens Rehsack, C<< <rehsack at cpan.org> >>

=head1 BUGS

Please report any bugs or feature requests to
C<bug-supl-test at rt.cpan.org>, or through the web interface at
L<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.

=head1 SUPPORT

See L<Net::Radio::Location::SUPL::Test> for details about support.

=head1 ACKNOWLEDGEMENTS


=head1 LICENSE AND COPYRIGHT

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.

=cut

