A sensor channel is associated with properties such as channel
availability status, data transmission rate, data format and so on. Also,
each field in the data type supplied by a sensor channel can have its own
properties. The channel properties can be retrieved using the CSensrvChannel::GetPropertyL()
and CSensrvChannel::GetAllPropertiesL()
functions.
A channel property is referenced by its property id and an index. The parameters of the CSensrvChannel::GetPropertyL() are listed with their meanings in the following table.
Parameter | Meaning |
---|---|
First parameter | specifies the id of the property to retrieve. |
Second parameter | is an index that specifies the property to be retrieved, if there are several properties associated with a particular property id. |
Third parameter | is a TSensrvProperty that is passed by reference
and populated by CSensrvChannel::GetPropertyL(). |
The following list shows the different possible values of the index :
When the property id is for a simple property, that is, there is only
one property item for the id (for example, KSensrvPropIdChannelAccuracy
),
the second parameter must be specified as ESensrvSingleProperty
.
When the given property id has an array of TSensrvProperty
items,
the index parameter indicates which item in the array to retrieve. One such
case is when you want to retrieve a property of a particular data field that
is supplied by the channel. For example, if you want to find out if the X
axis of the accelerometer is enabled, you must specify KSensrvPropIdAxisActive
as
the property id, and TSensrvAccelerometerAxisData::iAxisX
as
the index. For details, see Array
Properties.
When the given property id has an array of TSensrvProperty
items,
information about the array can be retrieved by specifying ESensrvArrayPropertyInfo
as
the index parameter. For example, when a channel can provide data at discrete
data rates, the information for each data rate is stored in a TSensrvProperty
item.
You can use KSensrvPropIdDataRate
as the property id
and ESensrvArrayPropertyInfo
as the index to retrieve
the property item that contains this information.
Before retrieving channel properties, you must open the sensor channel.
Create an instance
of TSensrvProperty
.
TSensrvProperty property;
Each channel property is encapsulated by the TSensrvProperty
class.
Therefore, the details of the retrieved property can be accessed using the
functions of the TSensrvProperty
class.
Use the CSensrvChannel::GetPropertyL() function
to retrieve the property item for a particular property id. For example, to
check for the accuracy of a channel, pass the KSensrvPropIdChannelAccuracy
as
a property id.
... CSensrvChannel* iSensorChannel; .... iSensorChannel->GetPropertyL( KSensrvPropIdChannelAccuracy, KSensrvItemIndexNone, property ); ....
Note: You can retrieve all the properties associated with a particular sensor channel using the
CSensrvChannel::GetAllPropertiesL() function.