diff -r 000000000000 -r 29b1cd4cb562 bthci/hci2implementations/hctls/bcsp/inc/hctlbcspconsts.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bthci/hci2implementations/hctls/bcsp/inc/hctlbcspconsts.h Fri Jan 15 08:13:17 2010 +0200 @@ -0,0 +1,115 @@ +// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +/** + @file + @internalComponent +*/ + +#ifndef HCTLBCSPCONSTS_H +#define HCTLBCSPCONSTS_H + + +/**BCSP Channel allocation*/ +const TUint8 KBcspAckChnl=0x00; // channel 0 +const TUint8 KBcspLinkChnl=0x01; // channel 1 Link Establishment +const TUint8 KBcspBcCmdChnl=0x02; // channel 2 +const TUint8 KBcspCommEvntChnl=0x05; // channel 5 +const TUint8 KBcspACLDataChnl=0x06; // channel 6 +const TUint8 KBcspSynchronousDataChnl=0x07; // channel 7 + +//FlagByte Constants +const TUint8 KBcspCrcPresentMask = 0x40; +const TUint8 KBcspProtocolTypeMask = 0x80; + +const TUint8 KBcspSeqMask = 0x07; +const TUint8 KBcspAckFieldOffset = 3; +const TUint8 KBcspAckMask = 0x38; + +const TUint8 KBcspPayloadLen1stBitsMask=0xf0; +const TUint8 KBcspProtocolIdMask=0x0f; + +/**HCTL Header and trailer consts*/ +const TUint8 KBcspHeaderFlagsByteIndex = 0; +const TUint8 KBcspHeaderByte2Index = 1; +const TUint8 KBcspHeaderByte3Index = 2; +const TUint8 KBcspHeaderChecksumByteIndex = 3; + +const TUint8 KBcspHeaderBytes = 4; +const TUint8 KBcspCrcBytes = 2; + +/**Defined max payload sizes of various packet types*/ +const TUint16 KMaxSCOData = 64; +const TUint16 KMaxHCICommand = 256; +const TUint16 KMaxACLData = 1021; + +const TUint16 KMaxReliablePayloadSize=KMaxACLData+5; +const TUint16 KMaxUnreliablePayloadSize=KMaxSCOData+4; + +/**Defined max windows size i.e. no. packets that can be transmitted without acknowledgement */ +const TUint8 KBcspReliableWindowSize = 4; +const TUint8 KBcspUnreliableQueueSize = 4; +const TUint8 KBcspWindowSize=4; // Maximum Window Size for BCSP in Casiras by default +const TUint8 KMaxBcspWindowSize=8; // Window Size for BCSP in Casiras by default +const TUint16 KHCIHeaderSize=4; + + +/** Flags field masks */ + +const TInt KBcspUnreliableDatagramQueue=0; +const TInt KBcspReliableSequenceQueue=1; + +/**Sequence layer constants */ +const TUint8 KWindowSize=4; // Define according to efficiency and performance +const TUint8 KMaxWindowSize=8; +const TInt KRxAckTimeout=250000; // Some number to tune/adjust for performance +const TInt KTxAckTimeout=125000; // Some number to tune/adjust for performance +const TUint8 KTxRetryLimit=20; // Some number to tune/adjust for performance + +/**Link Establishment layer constants */ +_LIT8(KBcspLinkMsg_Sync, "\xda\xdc\xed\xed"); +_LIT8(KBcspLinkMsg_SyncResp, "\xac\xaf\xef\xee"); +_LIT8(KBcspLinkMsg_Conf, "\xad\xef\xac\xed"); +_LIT8(KBcspLinkMsg_ConfResp, "\xde\xad\xd0\xd0"); +const TInt KBcspConfCntMax=50; +const TInt KTShyTimeout = 250000; +const TInt KTConfTimeout = 250000; + + +/**SLIP Encoding Bytes */ +const TUint8 KSlipWrapperByte = 0xc0; +const TUint8 KSlipByteDB = 0xdb; +const TUint8 KSlipByteDC = 0xdc; +const TUint8 KSlipByteDD = 0xdd; + +/**BCSP Framing errors*/ + +const TInt KErrSlipCorrupted=-6100; +const TInt KErrBcspHeaderCorrupt=-6101; +const TInt KErrBcspCorruptedHCIPayload=-6102; +const TInt KErrBcspCRCCheckFailed=-6103; +const TInt KErrBcspUnRecognizableHCIData=-6104; +const TInt KErrBcspPacketTypeUnrecognized=-6105; +const TInt KErrBcspInvalidAckFlagValue=-6106; +const TInt KErrBcspInvalidSeqFlagValue=-6107; +const TInt KErrBcspWriteACLDataFailed=-6108; +const TInt KErrBcspWriteCommandDataFailed=-6109; +const TInt KErrBcspNothingToSend = -6110; +const TInt KErrBcspMaxRetries = -6111; +const TInt KErrBcspWriteBcCmdDataFailed=-6112; + +const TUint KHCTLRecvBufSize=2048; + +#endif // HCTLBCSPCONSTS_H