usbmgmt/usbmgrtest/showcaps/src/showcaps.cpp
changeset 0 c9bc50fca66e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/showcaps/src/showcaps.cpp	Tue Feb 02 02:02:59 2010 +0200
@@ -0,0 +1,110 @@
+/*
+* Copyright (c) 1997-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:
+* SER-COMMS\USB\TESTSRC\SHOWCAPS.CPP
+*
+*/
+
+#include <c32comm.h>
+#include <e32test.h>
+
+#ifndef __WINS__
+_LIT(KCommDriverName, "EUSBC");
+_LIT(KCommDeviceName, "USBC");
+_LIT(KCommModuleCsyName, "ECACM");
+_LIT(KCommModulePortNameAndNumber, "ACM::0");
+_LIT(KCommModulePortName, "ACM");
+#else
+_LIT(KCommPhysDriverName, "ECDRV");
+_LIT(KCommPhysDeviceName, "Comm.Wins");
+_LIT(KCommDriverName, "ECOMM");
+_LIT(KCommDeviceName, "Comm");
+_LIT(KCommModuleCsyName, "ECUART");
+_LIT(KCommModulePortNameAndNumber, "COMM::0");
+_LIT(KCommModulePortName, "COMM");
+#endif
+
+LOCAL_D RCommServ CommServ;
+LOCAL_D RComm CommPort;
+LOCAL_D RTest test(_L("SHOWCAPS"));
+
+TInt E32Main()
+/**
+ * Loads the USB serial driver and prints its capabilities.
+ */
+	{
+	TInt r;
+
+	test.Title();
+	test.Start(_L("Starting E32Main"));
+
+ 	__UHEAP_MARK;
+
+	test.Next(_L("loading LDD"));
+	r = User::LoadLogicalDevice(KCommDriverName);
+	test(r == KErrNone || r == KErrAlreadyExists);
+
+#ifdef __WINS__
+	test.Next(_L("loading PDD"));
+	r = User::LoadPhysicalDevice(KCommPhysDriverName);
+	test(r == KErrNone || r == KErrAlreadyExists);
+#endif
+
+	test.Next(_L("starting C32"));
+	r = StartC32();
+	test(r == KErrNone || r == KErrAlreadyExists);
+
+	test.Next(_L("connecting to comms server"));
+	test(CommServ.Connect() == KErrNone);
+
+	test.Next(_L("loading CommPort module"));
+	r = CommServ.LoadCommModule(KCommModuleCsyName);
+	test(r == KErrNone || r == KErrAlreadyExists);
+
+	test.Next(_L("opening CommPort port"));
+	test(CommPort.Open(CommServ, KCommModulePortNameAndNumber, ECommExclusive) == KErrNone);
+
+	test.Next(_L("getting caps"));
+	TCommCaps2 cc2;
+	CommPort.Caps(cc2);
+	test.Printf(_L("TCommCapsV01"));
+	test.Printf(_L("iRate\t0x%x\n"), cc2().iRate);
+	test.Printf(_L("iDataBits\t0x%x\n"), cc2().iDataBits);
+	test.Printf(_L("iStopBits\t0x%x\n"), cc2().iStopBits);
+	test.Printf(_L("iParity\t0x%x\n"), cc2().iParity);
+	test.Printf(_L("iHandshake\t0x%x\n"), cc2().iHandshake);
+	test.Printf(_L("iSignals\t0x%x\n"), cc2().iSignals);
+	test.Printf(_L("iFifo\t%d\n"), cc2().iFifo);
+	test.Printf(_L("iSIR\t%d\n"), cc2().iSIR);
+	test.Printf(_L("TCommCapsV02"));
+	test.Printf(_L("iNotificationCaps\t0x%x\n"), cc2().iNotificationCaps);
+	test.Printf(_L("iRoleCaps\t0x%x\n"), cc2().iRoleCaps);
+	test.Printf(_L("iFlowControlCaps\t0x%x\n"), cc2().iFlowControlCaps);
+
+	CommPort.Close();
+	test(CommServ.UnloadCommModule(KCommModulePortName) == KErrNone);
+	CommServ.Close();
+#ifdef __WINS__
+	test(User::FreePhysicalDevice(KCommPhysDeviceName) == KErrNone);
+#endif
+	test(User::FreeLogicalDevice(KCommDeviceName) == KErrNone);
+
+	__UHEAP_MARKEND;
+
+	test.End();
+	test.Close();
+
+
+	return KErrNone;
+	}