windowing/windowserver/debuglog/DEBLOGSR.CPP
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/debuglog/DEBLOGSR.CPP	Tue Feb 02 01:47:50 2010 +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<const TDesC> aFmt,...)
+	{
+	RDebug::Print(aFmt);
+	}
+#else
+void ShowTrace(TRefByValue<const TDesC> /*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<LogTBufSize+2> 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<LogTBufSize+2> 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());
+	}
+