How
to Configure the Speed and Data Format: Tutorial
This tutorial shows the basic steps to perform any serial port
configuration through the RComm API.
-
Load the CSY and
open a port.
-
Get the capabilities
of the port by calling
RComm::Caps()
-
The capabilities
of the port are in the
TCommCaps
structure. For example,
TCommCapsV01.iStopBits
specifies
the number of stop bits the port can manage.
Note: Port capabilities are never exclusive. A port that can manage
a speed of 50 bps may also be able to manage faster speeds as well. Most fields
in
TCommsCaps
are bit fields which bitmasks must be used
to determine all the capabilities. An example bitmask for the
TCommCapsV01.iRate
field
is
KCapsBps19200
.
These same fields in the configuration class
TCommConfig
are
enumerations. For example,
TCommCapsV01.iRate
is a
TUint
since
it is a bitfield.
TCommConfigV01.iRate
is an enumeration
of type
TBps.
-
Create an object of type
TCommConfigV01
.
-
Call
RComm::Config()
with the
aConfig
parameter
set to the
TCommConfigV01
object to get the port configuration.
-
Set the fields that must be changed in the
TCommConfigV01
object.
For example, set the
iSIREnable
flag to enable Infrared.
-
Call
RComm::Config()
with the
TCommConfigV01
object
as the
aConfig
parameter.
The port is now configured.
Tip:
In cases where the application is written for a specific
device, the application may skip the capability check since the capabilities
are known at the time of manufacture.
Example
The following code uses
Caps()
to
find out if its desired port configuration of 19200 bps and 8 data bits with
no parity and one stop bit is possible:
TCommCaps ourCapabilities;
commPort.Caps (ourCapabilities);
if (((ourCapabilities ().iRate & KCapsBps19200) == 0)||
((ourCapabilities ().iDataBits & KCapsData8) == 0)||
((ourCapabilities ().iStopBits & KCapsStop1) == 0)||
((ourCapabilities ().iParity & KCapsParityNone) == 0))
User::Leave (KErrNotSupported) ;
The following code configures the speed settings for a port.
TCommConfig portSettings;
commPort.Config (portSettings);
portSettings ().iRate = EBps19200;
portSettings ().iParity = EParityNone;
portSettings ().iDataBits = EData8;
portSettings ().iStopBits = EStop1;
r = commPort.SetConfig (portSettings);
User::LeaveIfError (r);
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.