diff -r 000000000000 -r bde4ae8d615e os/graphics/windowing/windowserver/debuglog/DEBLOGSR.CPP --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/graphics/windowing/windowserver/debuglog/DEBLOGSR.CPP Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,123 @@ +// Copyright (c) 1996-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: +// code for the serial device derived class +// +// + +#include "../SERVER/w32cmd.h" +#include "DEBLOGSR.H" + +/*#if defined(__WINS__) +#pragma data_seg(".E32_UID") +__WINS_UID(0, KWservLoggingDllUidValue, 0) +#pragma data_seg() +#endif*/ + +//#define DEBUGLOG_SHOW_TRACE + +#ifdef DEBUGLOG_SHOW_TRACE +void ShowTrace(TRefByValue aFmt,...) + { + RDebug::Print(aFmt); + } +#else +void ShowTrace(TRefByValue /*aFmt*/,...) + { + } +#endif + + + +EXPORT_C CDebugLogBase *CreateDebugLog(TBool aIsFirst, TDesC &aParams) + { + CDebugLogSerial *device=new(ELeave) CDebugLogSerial(); + CDebugLog *log=NULL; + ShowTrace(_L("!!$L Allocating Log")); + TRAPD(err,log=new(ELeave) CDebugLog(device)); + if (err!=KErrNone) + { + delete device; + User::Leave(err); + } + ShowTrace(_L("!!$L Initialising Log")); + TRAP(err,log->ConstructL(aIsFirst, aParams)); + if (err!=KErrNone) + { + delete log; + User::Leave(err); + } + return(log); + } + + +CDebugLogSerial::CDebugLogSerial() + { + __DECLARE_NAME(_S("CDebugLogSerial")); + } + +CDebugLogSerial::~CDebugLogSerial() + { + iSerialPort.Close(); + } + +void CDebugLogSerial::ConstructL(TBool , TDesC &) + { +#if defined(__EPOC32__) + ShowTrace(_L("!!$L Getting Dev1")); + User::LeaveIfError(User::LoadPhysicalDevice(_L("EUART1"))); +#else + User::LeaveIfError(User::LoadPhysicalDevice(_L("ECDRV"))); +#endif + ShowTrace(_L("!!$L Getting Dev2")); + User::LeaveIfError(User::LoadLogicalDevice(_L("ECOMM"))); + iSerialPort.Open(0); +// + TCommConfig cBuf; + TCommConfigV01& c=cBuf(); + iSerialPort.Config(cBuf); +// c.iRate=EBps19200; + c.iRate=EBps115200; + c.iHandshake=0; + ShowTrace(_L("!!$L Configering Port")); + User::LeaveIfError(iSerialPort.SetConfig(cBuf)); + } + +void CDebugLogSerial::WriteToLogL(const TDesC &aDes, const TDesC &aDes2) + { + TBuf buf(aDes); + buf.Append(TPtrC(_S("\r\n"))); + TRequestStatus stat; + iSerialPort.Write(stat,TPtrC8((TUint8 *)buf.Ptr(),buf.Size())); + User::WaitForRequest(stat); + User::LeaveIfError(stat.Int()); +// + iSerialPort.Write(stat,TPtrC8((TUint8 *)aDes2.Ptr(),aDes2.Size())); + User::WaitForRequest(stat); + User::LeaveIfError(stat.Int()); + } + +void CDebugLogSerial::WriteToLog8L(const TDesC8 &aDes, const TDesC8 &aDes2) + { + TBuf8 buf(aDes); + buf.Append(TPtrC(_S("\r\n"))); + TRequestStatus stat; + iSerialPort.Write(stat,buf); + User::WaitForRequest(stat); + User::LeaveIfError(stat.Int()); +// + iSerialPort.Write(stat,aDes2); + User::WaitForRequest(stat); + User::LeaveIfError(stat.Int()); + } +