williamr@2: // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: /** williamr@2: @file williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: williamr@2: #ifndef _SYS_SERIAL_H_ williamr@2: #define _SYS_SERIAL_H_ williamr@2: williamr@2: #ifdef __cplusplus williamr@2: extern "C" { williamr@2: #endif williamr@2: /** williamr@2: notifications williamr@2: */ williamr@2: #define KNotifyBreakInt 0x01 williamr@2: #define KNotifyCD 0x02 williamr@2: #define KNotifyCTS 0x04 williamr@2: #define KNotifyDataAvailable 0x08 williamr@2: #define KNotifyDSR 0x10 williamr@2: #define KNotifyFramingError 0x20 williamr@2: #define KNotifyOutputEmpty 0x40 williamr@2: #define KNotifyOverrunError 0x80 williamr@2: #define KNotifyParityError 0x100 williamr@2: #define KNotifyRI 0x200 williamr@2: williamr@2: /** williamr@2: enums, #defines and struct for serial port settings williamr@2: */ williamr@2: enum DataBits {DBits5,DBits6,DBits7,DBits8}; williamr@2: williamr@2: enum StopBits {Stop1,Stop2}; williamr@2: williamr@2: enum Parity {ParityNone,ParityEven,ParityOdd,ParityMark,ParitySpace}; williamr@2: williamr@2: enum Bps williamr@2: { williamr@2: Bps50,Bps75,Bps110,Bps134,Bps150,Bps300,Bps600,Bps1200, williamr@2: Bps1800,Bps2000,Bps2400,Bps3600,Bps4800,Bps7200,Bps9600, williamr@2: Bps19200,Bps38400,Bps57600,Bps115200,Bps230400,Bps460800, williamr@2: Bps576000,Bps1152000,Bps4000000, williamr@2: BpsSpecial=0x80000000 williamr@2: }; williamr@2: williamr@2: enum Fifo {FifoEnable,FifoDisable}; williamr@2: williamr@2: enum Sir {SIREnable,SIRDisable}; williamr@2: // williamr@2: #define ConfigMaxTerminators 4 williamr@2: // williamr@2: #define ConfigObeyXoff 0x01 williamr@2: #define ConfigSendXoff 0x02 williamr@2: #define ConfigObeyCTS 0x04 williamr@2: #define ConfigFailCTS 0x08 williamr@2: #define ConfigObeyDSR 0x10 williamr@2: #define ConfigFailDSR 0x20 williamr@2: #define ConfigObeyDCD 0x40 williamr@2: #define ConfigFailDCD 0x80 williamr@2: #define ConfigFreeRTS 0x100 williamr@2: #define ConfigFreeDTR 0x200 williamr@2: #define ConfigWriteBufferedComplete 0x80000000 williamr@2: // williamr@2: #define ConfigParityErrorFail 0 williamr@2: #define ConfigParityErrorIgnore 0x01 williamr@2: #define ConfigParityErrorReplaceChar 0x02 williamr@2: #define ConfigXonXoffDebug 0x80000000 williamr@2: // williamr@2: #define SignalCTS 0x01 williamr@2: #define SignalDSR 0x02 williamr@2: #define SignalDCD 0x04 williamr@2: #define SignalRNG 0x08 williamr@2: #define SignalRTS 0x10 williamr@2: #define SignalDTR 0x20 williamr@2: williamr@2: #define ConfigSIRPulseWidthMaximum 0x01 williamr@2: #define ConfigSIRPulseWidthMinimum 0x02 williamr@2: // williamr@2: williamr@2: typedef struct williamr@2: { williamr@2: enum Bps iRate; williamr@2: enum DataBits iDataBits; williamr@2: enum StopBits iStopBits; williamr@2: enum Parity iParity; williamr@2: unsigned int iHandshake; williamr@2: unsigned int iParityError; williamr@2: unsigned int iFifo; williamr@2: int iSpecialRate; williamr@2: int iTerminatorCount; williamr@2: char iTerminator[ConfigMaxTerminators]; williamr@2: char iXonChar; williamr@2: char iXoffChar; williamr@2: char iParityErrorChar; williamr@2: enum Sir iSIREnable; williamr@2: unsigned int iSIRSettings; williamr@2: } SerialConfig; williamr@2: williamr@2: #ifdef __cplusplus williamr@2: } williamr@2: #endif williamr@2: williamr@2: #endif