1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/epoc32/include/d32comm.h Tue Mar 16 16:12:26 2010 +0000
1.3 @@ -0,0 +1,572 @@
1.4 +// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 +// All rights reserved.
1.6 +// This component and the accompanying materials are made available
1.7 +// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
1.8 +// which accompanies this distribution, and is available
1.9 +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.10 +//
1.11 +// Initial Contributors:
1.12 +// Nokia Corporation - initial contribution.
1.13 +//
1.14 +// Contributors:
1.15 +//
1.16 +// Description:
1.17 +// e32\include\d32comm.h
1.18 +//
1.19 +//
1.20 +
1.21 +//#define _DEBUG_DEVCOMM
1.22 +
1.23 +/**
1.24 +@file
1.25 +@publishedPartner
1.26 +@released
1.27 +*/
1.28 +
1.29 +#ifndef __D32COMM_H__
1.30 +#define __D32COMM_H__
1.31 +#include <e32cmn.h>
1.32 +#include <e32ver.h>
1.33 +
1.34 +/**
1.35 + Enumeration of number of data bits for serial port configuration.
1.36 + Typically, these values are used to initialize the iDataBits of
1.37 + TCommConfigV01 before calling DComm::Configure() or any other serial
1.38 + comm API to configure the serial port's databits size.
1.39 + */
1.40 +enum TDataBits {EData5,EData6,EData7,EData8};
1.41 +/**
1.42 + Enumeration of number of stop bits for serial port configuration.
1.43 + Typically, these values are used to initialize the iStopBits of
1.44 + TCommConfigV01 before calling DComm::Configure() or any other serial
1.45 + comm API to configure the serial port's stopbits.
1.46 + */
1.47 +enum TStopBits {EStop1,EStop2};
1.48 +/**
1.49 + Enumeration of types of parity for serial port configuration.
1.50 + Typically, these values are used to initialize the iParity of
1.51 + TCommConfigV01 before calling DComm::Configure() or any other serial
1.52 + comm API to configure the serial port's parity setting.
1.53 + */
1.54 +enum TParity {EParityNone,EParityEven,EParityOdd,EParityMark,EParitySpace};
1.55 +/**
1.56 + Enumeration of baud rates in bits per second for serial port configuration.
1.57 + * e.g EBps115200 is for 115200Bps data rate
1.58 + Typically, these values are used to initialize the iRate of TCommConfigV01
1.59 + before calling DComm::Configure() or any other serial comm API to configure
1.60 + the serial port's baud rate.
1.61 + */
1.62 +enum TBps
1.63 + {
1.64 + EBps50,
1.65 + EBps75,
1.66 + EBps110,
1.67 + EBps134,
1.68 + EBps150,
1.69 + EBps300,
1.70 + EBps600,
1.71 + EBps1200,
1.72 + EBps1800,
1.73 + EBps2000,
1.74 + EBps2400,
1.75 + EBps3600,
1.76 + EBps4800,
1.77 + EBps7200,
1.78 + EBps9600,
1.79 + EBps19200,
1.80 + EBps38400,
1.81 + EBps57600,
1.82 + EBps115200,
1.83 + EBps230400,
1.84 + EBps460800,
1.85 + EBps576000,
1.86 + EBps1152000,
1.87 + EBps4000000,
1.88 + EBps921600,
1.89 + EBpsAutobaud=0x40000000,
1.90 + EBpsSpecial=0x80000000,
1.91 + };
1.92 +/**
1.93 + Enumeration of Fifo status (enable and disable) for serial port configuration.
1.94 + Typically, these values are used to initialize the iFifo of TCommConfigV01
1.95 + before calling DComm::Configure() or any other serial comm API to configure
1.96 + the serial port's fifo.
1.97 + */
1.98 +enum TFifo
1.99 + {
1.100 + EFifoEnable,EFifoDisable,
1.101 + };
1.102 +/**
1.103 + Enumeration of SIR status (enable and disable) for serial comm configuration.
1.104 + Typically, these values are used to initialize the iSIREnable of TCommConfigV01
1.105 + before calling DComm::Configure() or any other serial comm API to configure
1.106 + the serial port's SIR (infrared) settings.
1.107 + */
1.108 +enum TSir
1.109 + {
1.110 + ESIREnable,ESIRDisable,
1.111 + };
1.112 +
1.113 +enum TFlowControl
1.114 + {
1.115 + EFlowControlOn,EFlowControlOff
1.116 + };
1.117 +//
1.118 +
1.119 +const TInt KConfigMaxTerminators=4;
1.120 +// DTE Constants
1.121 +const TUint KConfigObeyXoff=0x01;
1.122 +const TUint KConfigSendXoff=0x02;
1.123 +const TUint KConfigObeyCTS=0x04;
1.124 +const TUint KConfigFailCTS=0x08;
1.125 +const TUint KConfigObeyDSR=0x10;
1.126 +const TUint KConfigFailDSR=0x20;
1.127 +const TUint KConfigObeyDCD=0x40;
1.128 +const TUint KConfigFailDCD=0x80;
1.129 +const TUint KConfigFreeRTS=0x100;
1.130 +const TUint KConfigFreeDTR=0x200;
1.131 +// DCE Constants
1.132 +const TUint KConfigObeyDTR=0x400;
1.133 +const TUint KConfigFailDTR=0x800;
1.134 +const TUint KConfigObeyRTS=0x1000;
1.135 +const TUint KConfigFailRTS=0x2000;
1.136 +const TUint KConfigFreeDSR=0x4000;
1.137 +const TUint KConfigFreeCTS=0x8000;
1.138 +const TUint KConfigFreeDCD=0x10000;
1.139 +const TUint KConfigFreeRI=0x20000;
1.140 +const TUint KConfigWriteBufferedComplete=0x80000000;
1.141 +//
1.142 +const TUint KConfigParityErrorFail=0;
1.143 +const TUint KConfigParityErrorIgnore=0x01;
1.144 +const TUint KConfigParityErrorReplaceChar=0x02;
1.145 +const TUint KConfigXonXoffDebug=0x80000000;
1.146 +//
1.147 +const TUint KSignalCTS=0x01;
1.148 +const TUint KSignalDSR=0x02;
1.149 +const TUint KSignalDCD=0x04;
1.150 +const TUint KSignalRNG=0x08;
1.151 +const TUint KSignalRTS=0x10;
1.152 +const TUint KSignalDTR=0x20;
1.153 +const TUint KSignalBreak=0x40;
1.154 +
1.155 +const TUint KSignalChanged=0x1000;
1.156 +const TUint KCTSChanged=KSignalCTS*KSignalChanged;
1.157 +const TUint KDSRChanged=KSignalDSR*KSignalChanged;
1.158 +const TUint KDCDChanged=KSignalDCD*KSignalChanged;
1.159 +const TUint KRNGChanged=KSignalRNG*KSignalChanged;
1.160 +const TUint KRTSChanged=KSignalRTS*KSignalChanged;
1.161 +const TUint KDTRChanged=KSignalDTR*KSignalChanged;
1.162 +const TUint KBreakChanged=KSignalBreak*KSignalChanged;
1.163 +
1.164 +const TUint KSignalDTEOutputs=KSignalRTS|KSignalDTR;
1.165 +const TUint KSignalDTEInputs=KSignalCTS|KSignalDSR|KSignalDCD|KSignalRNG;
1.166 +const TUint KSignalDCEInputs=KSignalDTEOutputs;
1.167 +const TUint KSignalDCEOutputs=KSignalDTEInputs;
1.168 +
1.169 +const TUint KConfigSIRPulseWidthMaximum=0x01;
1.170 +const TUint KConfigSIRPulseWidthMinimum=0x02;
1.171 +
1.172 +// more SIRSettings for selecting the IR range
1.173 +const TUint KConfigSIRShutDown=0x10;
1.174 +const TUint KConfigSIRMinimumRange=0x20;
1.175 +const TUint KConfigSIRMediumRange=0x40;
1.176 +const TUint KConfigSIRMaximumRange=0x80;
1.177 +
1.178 +/**
1.179 + Comms configuration structure.
1.180 + Class to hold the configuration settings for serial comm port
1.181 +
1.182 + This class provides the serial port configuration block interface of serial comms (c32).
1.183 + A serial comm client sets up a serial port before use, by providing a configuration block.
1.184 + TCommConfigV01 is initialized with settings for serial port and used to configure the
1.185 + serial port by calling DComm::Configure(TCommConfigV01 &aConfig) or any other serial comm
1.186 + API to configure the serial port.
1.187 + */
1.188 +class TCommConfigV01
1.189 + {
1.190 +public:
1.191 + /**
1.192 + Data rate in bits per second.
1.193 + @see TBps
1.194 + */
1.195 + TBps iRate;
1.196 + /**
1.197 + Character width in bits.
1.198 + @see TDataBits
1.199 + */
1.200 + TDataBits iDataBits;
1.201 + /**
1.202 + Number of stop bits.
1.203 + @see TStopBits
1.204 + */
1.205 + TStopBits iStopBits;
1.206 + /**
1.207 + Type of parity.
1.208 + @see TParity
1.209 + */
1.210 + TParity iParity;
1.211 + /**
1.212 + Type of Handshaking control.
1.213 + Possible values can be KConfigObeyXXX or KConfigSendXXX or KConfigFailXXX or KConfigFreeXXX
1.214 + */
1.215 + TUint iHandshake;
1.216 + /**
1.217 + Type of error to generate on a parity failure.
1.218 + Possible values can be KConfigParityErrorFail or KConfigParityErrorIgnore or KConfigParityErrorReplaceChar
1.219 + */
1.220 + TUint iParityError;
1.221 + /**
1.222 + FIFO status, enabled or disabled.
1.223 + @see TFifo
1.224 + */
1.225 + TUint iFifo;
1.226 + /**
1.227 + Special data rate, not listed under TBps. Use this, when iRate is set to EBpsSpecial
1.228 + */
1.229 + TInt iSpecialRate;
1.230 + /**
1.231 + Count of number of special characters used as terminators (<=KConfigMaxTerminators)
1.232 + */
1.233 + TInt iTerminatorCount;
1.234 + /**
1.235 + Array of special characters which can be used as terminators
1.236 + */
1.237 + TText8 iTerminator[KConfigMaxTerminators];
1.238 + /**
1.239 + Character used to signal the transmitter to resume sending when using XON/XOFF handshaking
1.240 + i.e character used as XON - software flow control
1.241 + */
1.242 + TText8 iXonChar;
1.243 + /**
1.244 + Character used to signal the transmitter to suspend sending when using XON/XOFF handshaking
1.245 + i.e character used as XOFF - software flow control
1.246 + */
1.247 + TText8 iXoffChar;
1.248 + /**
1.249 + Character used to replace the characters received with a parity error.
1.250 + This is used when iParityError is set to KConfigParityErrorReplaceChar
1.251 + */
1.252 + TText8 iParityErrorChar;
1.253 + /**
1.254 + Switch the SIR encoding hardware on and off.
1.255 + @see TSir
1.256 + */
1.257 + TSir iSIREnable;
1.258 + /**
1.259 + SIR hardware control setting. Possible value can be one of KConfigSIRXXX
1.260 + */
1.261 + TUint iSIRSettings;
1.262 + };
1.263 +/**
1.264 + Package buffer for a TCommConfigV01 object.
1.265 +
1.266 + TCommConfig packages the comms configuration structure TCommConfigV01 to a buffer.
1.267 + This is used with API of serial comms like RComm::Config(TDes8 &aConfig) and
1.268 + RComm::SetConfig(TDesC8 &aConfig) where config structure is passed as buffer.
1.269 +
1.270 + @see TCommConfigV01
1.271 + */
1.272 +typedef TPckgBuf<TCommConfigV01> TCommConfig;
1.273 +
1.274 +// TCommConfigV02 is deprecated.
1.275 +//
1.276 +class TCommConfigV02: public TCommConfigV01
1.277 + {
1.278 +public:
1.279 + TInt iTxShutdownTimeout;
1.280 + };
1.281 +
1.282 +// TCommConfig2 is deprecated
1.283 +//
1.284 +typedef TPckgBuf<TCommConfigV02> TCommConfig2;
1.285 +
1.286 +//
1.287 +const TUint KCapsBps50=0x00000001;
1.288 +const TUint KCapsBps75=0x00000002;
1.289 +const TUint KCapsBps110=0x00000004;
1.290 +const TUint KCapsBps134=0x00000008;
1.291 +const TUint KCapsBps150=0x00000010;
1.292 +const TUint KCapsBps300=0x00000020;
1.293 +const TUint KCapsBps600=0x00000040;
1.294 +const TUint KCapsBps1200=0x00000080;
1.295 +const TUint KCapsBps1800=0x00000100;
1.296 +const TUint KCapsBps2000=0x00000200;
1.297 +const TUint KCapsBps2400=0x00000400;
1.298 +const TUint KCapsBps3600=0x00000800;
1.299 +const TUint KCapsBps4800=0x00001000;
1.300 +const TUint KCapsBps7200=0x00002000;
1.301 +const TUint KCapsBps9600=0x00004000;
1.302 +const TUint KCapsBps19200=0x00008000;
1.303 +const TUint KCapsBps38400=0x00010000;
1.304 +const TUint KCapsBps57600=0x00020000;
1.305 +const TUint KCapsBps115200=0x00040000;
1.306 +const TUint KCapsBps230400=0x00080000;
1.307 +const TUint KCapsBps460800=0x00100000;
1.308 +const TUint KCapsBps576000 =0x00200000;
1.309 +const TUint KCapsBps1152000=0x00400000;
1.310 +const TUint KCapsBps4000000=0x00800000;
1.311 +const TUint KCapsBps921600=0x01000000;
1.312 +const TUint KCapsBpsAutobaud=0x40000000;
1.313 +const TUint KCapsBpsSpecial=0x80000000;
1.314 +//
1.315 +const TUint KCapsData5=0x01;
1.316 +const TUint KCapsData6=0x02;
1.317 +const TUint KCapsData7=0x04;
1.318 +const TUint KCapsData8=0x08;
1.319 +//
1.320 +const TUint KCapsStop1=0x01;
1.321 +const TUint KCapsStop2=0x02;
1.322 +//
1.323 +const TUint KCapsParityNone=0x01;
1.324 +const TUint KCapsParityEven=0x02;
1.325 +const TUint KCapsParityOdd=0x04;
1.326 +const TUint KCapsParityMark=0x08;
1.327 +const TUint KCapsParitySpace=0x10;
1.328 +//
1.329 +const TUint KCapsSignalCTSSupported=0x01;
1.330 +const TUint KCapsSignalDSRSupported=0x02;
1.331 +const TUint KCapsSignalDCDSupported=0x04;
1.332 +const TUint KCapsSignalRNGSupported=0x08;
1.333 +const TUint KCapsSignalRTSSupported=0x10;
1.334 +const TUint KCapsSignalDTRSupported=0x20;
1.335 +//
1.336 +const TUint KCapsObeyXoffSupported=0x01;
1.337 +const TUint KCapsSendXoffSupported=0x02;
1.338 +const TUint KCapsObeyCTSSupported=0x04;
1.339 +const TUint KCapsFailCTSSupported=0x08;
1.340 +const TUint KCapsObeyDSRSupported=0x10;
1.341 +const TUint KCapsFailDSRSupported=0x20;
1.342 +const TUint KCapsObeyDCDSupported=0x40;
1.343 +const TUint KCapsFailDCDSupported=0x80;
1.344 +const TUint KCapsFreeRTSSupported=0x100;
1.345 +const TUint KCapsFreeDTRSupported=0x200;
1.346 +// DCE Constants
1.347 +const TUint KCapsObeyRTSSupported=0x400;
1.348 +const TUint KCapsObeyDTRSupported=0x800;
1.349 +//
1.350 +const TUint KCapsHasFifo=0x01;
1.351 +//
1.352 +const TUint KCapsSIR115kbps=0x01;
1.353 +const TUint KCapsSIR2400bpsOnly=0x02;
1.354 +const TUint KCapsSIR4Mbs=0x04;
1.355 +//
1.356 +const TUint KNotifySignalsChangeSupported=0x01;
1.357 +const TUint KNotifyRateChangeSupported=0x02;
1.358 +const TUint KNotifyDataFormatChangeSupported=0x04;
1.359 +const TUint KNotifyHandshakeChangeSupported=0x08;
1.360 +const TUint KNotifyBreakSupported=0x10;
1.361 +const TUint KNotifyFlowControlChangeSupported=0x20;
1.362 +const TUint KNotifyDataAvailableSupported=0x40;
1.363 +const TUint KNotifyOutputEmptySupported=0x80;
1.364 +//
1.365 +const TUint KCapsRoleSwitchSupported=0x01;
1.366 +//
1.367 +const TUint KCapsFlowControlStatusSupported=0x01;
1.368 +//
1.369 +const TUint KRateChanged=0x01;
1.370 +const TUint KDataFormatChanged=0x02;
1.371 +const TUint KHandshakeChanged=0x04;
1.372 +//
1.373 +class TCommCapsV01
1.374 + {
1.375 +public:
1.376 + TUint iRate;
1.377 + TUint iDataBits;
1.378 + TUint iStopBits;
1.379 + TUint iParity;
1.380 + TUint iHandshake;
1.381 + TUint iSignals;
1.382 + TUint iFifo;
1.383 + TUint iSIR;
1.384 + };
1.385 +typedef TPckgBuf<TCommCapsV01> TCommCaps;
1.386 +
1.387 +class TCommCapsV02 : public TCommCapsV01
1.388 + {
1.389 +public:
1.390 + TUint iNotificationCaps;
1.391 + TUint iRoleCaps;
1.392 + TUint iFlowControlCaps;
1.393 + };
1.394 +typedef TPckgBuf<TCommCapsV02> TCommCaps2;
1.395 +
1.396 +class TCommCapsV03 : public TCommCapsV02
1.397 + {
1.398 +public:
1.399 + TBool iBreakSupported;
1.400 + };
1.401 +typedef TPckgBuf<TCommCapsV03> TCommCaps3;
1.402 +
1.403 +//
1.404 +class TCapsDevCommV01
1.405 + {
1.406 +public:
1.407 + TVersion version;
1.408 + };
1.409 +
1.410 +class TCommNotificationV01
1.411 + {
1.412 +public:
1.413 + TUint iChangedMembers;
1.414 + TBps iRate;
1.415 + TDataBits iDataBits;
1.416 + TStopBits iStopBits;
1.417 + TParity iParity;
1.418 + TUint iHandshake;
1.419 + };
1.420 +typedef TPckgBuf<TCommNotificationV01> TCommNotificationPckg;
1.421 +//
1.422 +const TUint KDataAvailableNotifyFlag=0x80000000;
1.423 +//
1.424 +#ifdef _DEBUG_DEVCOMM
1.425 +class TCommDebugInfo
1.426 + {
1.427 +public:
1.428 + TBool iRxBusy;
1.429 + TBool iRxHeld;
1.430 + TInt iRxLength;
1.431 + TInt iRxOffset;
1.432 + TInt iRxIntCount;
1.433 + TInt iRxErrCount;
1.434 + TInt iRxBufCount;
1.435 + TBool iTxBusy;
1.436 + TBool iTxHeld;
1.437 + TInt iTxLength;
1.438 + TInt iTxOffset;
1.439 + TInt iTxIntCount;
1.440 + TInt iTxErrCount;
1.441 + TInt iTxBufCount;
1.442 + TBool iDrainingRxBuf;
1.443 + TBool iFillingTxBuf;
1.444 + TBool iRunningDfc;
1.445 + TInt iDfcCount;
1.446 + TInt iDfcReqSeq;
1.447 + TInt iDfcHandlerSeq;
1.448 + TInt iDoDrainSeq;
1.449 + TBool iTxDfcPend;
1.450 + TBool iRxDfcPend;
1.451 + TInt iTxChars, iRxChars;
1.452 + TInt iTxXon, iTxXoff, iRxXon, iRxXoff;
1.453 + };
1.454 +typedef TPckgBuf<TCommDebugInfo> TCommDebugInfoPckg;
1.455 +#endif
1.456 +//
1.457 +class RBusDevComm : public RBusLogicalChannel
1.458 + {
1.459 +public:
1.460 + enum TVer {EMajorVersionNumber=1,EMinorVersionNumber=0,EBuildVersionNumber=KE32BuildVersionNumber};
1.461 + enum TRequest
1.462 + {
1.463 + ERequestRead=0x0,ERequestReadCancel=0x1,
1.464 + ERequestWrite=0x1,ERequestWriteCancel=0x2,
1.465 + ERequestBreak=0x2,ERequestBreakCancel=0x4,
1.466 + ERequestNotifySignalChange=0x3,ERequestNotifySignalChangeCancel=0x8,
1.467 + };
1.468 + enum TControl
1.469 + {
1.470 + EControlConfig,EControlSetConfig,EControlCaps,
1.471 + EControlSignals,EControlSetSignals,
1.472 + EControlQueryReceiveBuffer,EControlResetBuffers,
1.473 + EControlReceiveBufferLength,EControlSetReceiveBufferLength,
1.474 + EControlMinTurnaroundTime,EControlSetMinTurnaroundTime,
1.475 +#ifdef _DEBUG_DEVCOMM
1.476 + EControlDebugInfo
1.477 +#endif
1.478 + };
1.479 +public:
1.480 +#ifndef __KERNEL_MODE__
1.481 + inline TInt Open(TInt aUnit);
1.482 + inline TVersion VersionRequired() const;
1.483 + inline void Read(TRequestStatus &aStatus,TDes8 &aDes);
1.484 + inline void Read(TRequestStatus &aStatus,TDes8 &aDes,TInt aLength);
1.485 + inline void ReadOneOrMore(TRequestStatus &aStatus,TDes8 &aDes);
1.486 + inline void ReadCancel();
1.487 + inline void Write(TRequestStatus &aStatus,const TDesC8 &aDes);
1.488 + inline void Write(TRequestStatus &aStatus,const TDesC8 &aDes,TInt aLength);
1.489 + inline void WriteCancel();
1.490 + inline void Break(TRequestStatus &aStatus,TInt aTime);
1.491 + inline void BreakCancel();
1.492 + inline void Config(TDes8 &aConfig);
1.493 + inline TInt SetConfig(const TDesC8 &aConfig);
1.494 + inline void Caps(TDes8 &aCaps);
1.495 + inline TUint Signals();
1.496 + inline void SetSignals(TUint aSetMask,TUint aClearMask);
1.497 + inline TInt QueryReceiveBuffer();
1.498 + inline void ResetBuffers();
1.499 + inline TInt ReceiveBufferLength();
1.500 + inline TInt SetReceiveBufferLength(TInt aLength);
1.501 + inline void NotifySignalChange(TRequestStatus& aStatus,TUint& aSignals,TUint aSignalMask=0x3F);
1.502 + inline void NotifySignalChangeCancel();
1.503 + inline void NotifyReceiveDataAvailable(TRequestStatus& aStatus);
1.504 + inline void NotifyReceiveDataAvailableCancel();
1.505 + inline TUint MinTurnaroundTime();
1.506 + inline TInt SetMinTurnaroundTime(TUint aMicroSeconds);
1.507 +#ifdef _DEBUG_DEVCOMM
1.508 + inline void DebugInfo(TDes8 &aInfo);
1.509 +#endif
1.510 +#endif
1.511 + };
1.512 +
1.513 +class RBusDevCommDCE : public RBusLogicalChannel
1.514 + {
1.515 +public:
1.516 + enum TVer {EMajorVersionNumber=1,EMinorVersionNumber=0,EBuildVersionNumber=KE32BuildVersionNumber};
1.517 + enum TRequest
1.518 + {
1.519 + ERequestRead=0x0,ERequestReadCancel=0x1,
1.520 + ERequestWrite=0x1,ERequestWriteCancel=0x2,
1.521 + ERequestBreak=0x2,ERequestBreakCancel=0x4,
1.522 + ERequestNotifySignalChange=0x3,ERequestNotifySignalChangeCancel=0x8,
1.523 + ERequestNotifyFlowControlChange=0x4,ERequestNotifyFlowControlChangeCancel=0x10,
1.524 + ERequestNotifyConfigChange=0x5,ERequestNotifyConfigChangeCancel=0x20
1.525 + };
1.526 + enum TControl
1.527 + {
1.528 + EControlConfig,EControlSetConfig,EControlCaps,
1.529 + EControlSignals,EControlSetSignals,
1.530 + EControlQueryReceiveBuffer,EControlResetBuffers,
1.531 + EControlReceiveBufferLength,EControlSetReceiveBufferLength,
1.532 + EControlFlowControlStatus,
1.533 +#ifdef _DEBUG_DEVCOMM
1.534 + EControlDebugInfo
1.535 +#endif
1.536 + };
1.537 +public:
1.538 +#ifndef __KERNEL_MODE__
1.539 + inline TInt Open(TInt aUnit);
1.540 + inline TVersion VersionRequired() const;
1.541 + inline void Read(TRequestStatus &aStatus,TDes8 &aDes);
1.542 + inline void Read(TRequestStatus &aStatus,TDes8 &aDes,TInt aLength);
1.543 + inline void ReadOneOrMore(TRequestStatus &aStatus,TDes8 &aDes);
1.544 + inline void ReadCancel();
1.545 + inline void Write(TRequestStatus &aStatus,const TDesC8 &aDes);
1.546 + inline void Write(TRequestStatus &aStatus,const TDesC8 &aDes,TInt aLength);
1.547 + inline void WriteCancel();
1.548 + inline void Break(TRequestStatus &aStatus,TInt aTime);
1.549 + inline void BreakCancel();
1.550 + inline void Config(TDes8 &aConfig);
1.551 + inline TInt SetConfig(const TDesC8 &aConfig);
1.552 + inline void Caps(TDes8 &aCaps);
1.553 + inline TUint Signals();
1.554 + inline void SetSignals(TUint aSetMask,TUint aClearMask);
1.555 + inline TInt QueryReceiveBuffer();
1.556 + inline void ResetBuffers();
1.557 + inline TInt ReceiveBufferLength();
1.558 + inline TInt SetReceiveBufferLength(TInt aLength);
1.559 + inline void NotifySignalChange(TRequestStatus& aStatus,TUint& aSignals,TUint aSignalMask=0x3F);
1.560 + inline void NotifySignalChangeCancel();
1.561 + inline void NotifyReceiveDataAvailable(TRequestStatus& aStatus);
1.562 + inline void NotifyReceiveDataAvailableCancel();
1.563 + inline void NotifyFlowControlChange(TRequestStatus& aStatus);
1.564 + inline void NotifyFlowControlChangeCancel();
1.565 + inline void GetFlowControlStatus(TFlowControl& aFlowControl);
1.566 + inline void NotifyConfigChange(TRequestStatus& aStatus, TDes8& aNewConfig);
1.567 + inline void NotifyConfigChangeCancel();
1.568 +#ifdef _DEBUG_DEVCOMM
1.569 + inline void DebugInfo(TDes8 &aInfo);
1.570 +#endif
1.571 +#endif
1.572 + };
1.573 +
1.574 +#include <d32comm.inl>
1.575 +#endif