⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sysinfo60container2.cpp

📁 基于SYMBIAN OS 的Moblile硬件管理器. 支持series 70平台
💻 CPP
📖 第 1 页 / 共 2 页
字号:
				devInfo.Append(_L("UNICODE"));
				break;
			default:
				devInfo.Append(_L("?"));
				break;
			}
			iEikLabelCharSet->SetTextL(devInfo);
			devInfo.Copy(_L("Name: "));
			devInfo.Append(log().iName);
			iEikLabelName->SetTextL(devInfo);
			devInfo.Copy(_L("Flags: "));
			devInfo.AppendNum(log().iFlags, EHex);
			iEikLabelFlags->SetTextL(devInfo);
			break;
		}
		case EIrMux:
		{
			devInfo.Format(_L("Home port: %u"), addr.GetHomePort());
			//devInfo.AppendNumUC(addr.GetHomePort());
			iEikLabelAddr->SetTextL(devInfo);
			devInfo.Format(_L("Remote port: %u"), addr.GetRemotePort());
			//devInfo.AppendNumUC(addr.GetRemotePort());
			iEikLabelSniff->SetTextL(devInfo);
			break;
		}
		case EIrServ:
		{
			servBytes = addr.GetServiceHintByteCount();
			retValue = addr.GetFirstServiceHintByte();
			if (retValue & KIrPnPMask)
				devInfo.Append(_L("PnP compatible\n"));
			if (retValue & KPalmtopMask)
				devInfo.Append(_L("PDA/Palmtop\n"));
			if (retValue & KComputerMask)
				devInfo.Append(_L("Computer\n"));
			if (retValue & KPrinterMask)
				devInfo.Append(_L("Printer\n"));
			if (retValue & KModemMask)
				devInfo.Append(_L("Modem\n"));
			if (retValue & KFaxMask)
				devInfo.Append(_L("Fax\n"));
			if (retValue & KLANAccessMask)
				devInfo.Append(_L("LAN access\n"));
			if (retValue & KExtensionMask)
				devInfo.Append(_L("Extension"));
			iEikLabelAddr->SetTextL(devInfo);
			if (servBytes == 2)
			{
				devInfo.Copy(_L(""));
				retValue = addr.GetSecondServiceHintByte();
				if (retValue & KTelephonyMask)
					devInfo.Append(_L("TEL "));
				if (retValue & KFileServerMask)
					devInfo.Append(_L("File Server"));
				iEikLabelName->SetTextL(devInfo);
				devInfo.Copy(_L(""));
				if (retValue & KIrCommMask)
					devInfo.Append(_L("IrCOMM "));
				if (retValue & KIrObexMask)
					devInfo.Append(_L("IrOBEX "));
				if (retValue & 0x80)
					devInfo.Append(_L("Ext"));
				iEikLabelFlags->SetTextL(devInfo);
			}
			break;
		}
		case EIrIas:
		{
			RNetDatabase ias;
			User::LeaveIfError(ias.Open(ss, pInfo.iAddrFamily, pInfo.iProtocol));
			/*if (ret != KErrNone)
			{
				sock1.Close();
				hr1.Close();
				ss.Close();
				User::Leave(ret);
			}*/
			TUint remDevAddr = addr.GetRemoteDevAddr();
			ret = IASQuery(ias, KTxtDevice, KTxtDeviceName, remDevAddr);
			if (ret == KErrNone)
			{
				devInfo.Copy(_L("Name "));
				devInfo.Append(iIASres);
				iEikLabelAddr->SetTextL(devInfo);
			}
			ret = IASQuery(ias, KTxtIrDAIrCOMM, KTxtIrDAIrLMP, remDevAddr);
			if (ret == KErrNone)
			{
				devInfo.Copy(_L("IrCOMM ports "));
				devInfo.Append(iIASres);
				iEikLabelSniff->SetTextL(devInfo);
			}
			ret = IASQuery(ias, KTxtIrDAIrCOMM, KTxtIrDATinyTP, remDevAddr);
			if (ret == KErrNone)
			{
				devInfo.Copy(_L("TinyTP ports "));
				devInfo.Append(iIASres);
				iEikLabelVer->SetTextL(devInfo);
			}
			ret = IASQuery(ias, KTxtIrDAIrCOMM, KTxtInstance, remDevAddr);
			if (ret == KErrNone)
			{
				devInfo.Copy(_L("Instance name "));
				devInfo.Append(iIASres);
				iEikLabelNoOfBytes->SetTextL(devInfo);
			}
			ret = IASQuery(ias, KTxtIrDAIrObex, KTxtIrDATinyTP, remDevAddr);
			if (ret == KErrNone)
			{
				devInfo.Copy(_L("IrOBEX ports "));
				devInfo.Append(iIASres);
				iEikLabelServByte1->SetTextL(devInfo);
			}
			ret = IASQuery(ias, KTxtIrLPT, KTxtIrDAIrLMP, remDevAddr);
			if (ret == KErrNone)
			{
				devInfo.Copy(_L("IrLPT ports "));
				devInfo.Append(iIASres);
				iEikLabelServByte2->SetTextL(devInfo);
			}
			ret = IASQuery(ias, KTxtIrDAIrCOMM, KTxtParameters, remDevAddr);
			if (ret == KErrNone)
			{
				devInfo.Format(_L("%u"), iIASres);
				devInfo.Insert(0, _L("IrCOMM "));
				iEikLabelCharSet->SetTextL(devInfo);
			}
			ret = IASQuery(ias, KTxtDevice, KTxtIrLMP, remDevAddr);
			if (ret == KErrNone)
			{
				devInfo.Format(_L("%u"), iIASres);
				devInfo.Insert(0, _L("IrMux "));
				iEikLabelName->SetTextL(devInfo);
			}
			ias.Close();
			break;
		}
		}
    }
	else
	{
		iEikLabelAddr->SetTextL(KNoDevice);
	}
	/*sock1.Close();
	hr1.Close();
	ss.Close();*/
	CleanupStack::PopAndDestroy(3); // sock1, hr1 & ss
    SizeChanged();
}

void CSYSINFO60Container2::ClearScreen(void)
{
	iEikLabelAddr->SetTextL(_L(""));
	iEikLabelSniff->SetTextL(_L(""));
	iEikLabelVer->SetTextL(_L(""));
	iEikLabelNoOfBytes->SetTextL(_L(""));
	iEikLabelServByte1->SetTextL(_L(""));
	iEikLabelServByte2->SetTextL(_L(""));
	iEikLabelCharSet->SetTextL(_L(""));
    iEikLabelName->SetTextL(_L(""));
	iEikLabelFlags->SetTextL(_L(""));
	SizeChanged();
}

void CSYSINFO60Container2::IrPrintL(void)
{
	RCommServ cs;
	User::LeaveIfError(cs.Connect());
	CleanupClosePushL(cs);

	cs.LoadCommModule(KTxtIRCOMM);
	RComm irlpt;
	TInt ret = irlpt.Open(cs, KTxt0, ECommExclusive);
	if (ret != KErrNone && ret != KErrAlreadyExists)
	{
		//cs.Close();
		User::Leave(ret);
	}
	RFs fs;
	User::LeaveIfError(fs.Connect());
	CleanupClosePushL(fs);
	/*if (ret != KErrNone)
	{
		irlpt.Close();
		//cs.Close();
		User::Leave(ret);
	}*/

	IrDoPrint(irlpt, *iEikLabelAddr->Text());
	IrDoPrint(irlpt, *iEikLabelSniff->Text());
	IrDoPrint(irlpt, *iEikLabelVer->Text());
	IrDoPrint(irlpt, *iEikLabelNoOfBytes->Text());
	IrDoPrint(irlpt, *iEikLabelServByte1->Text());
	IrDoPrint(irlpt, *iEikLabelServByte2->Text());
	IrDoPrint(irlpt, *iEikLabelCharSet->Text());
	IrDoPrint(irlpt, *iEikLabelName->Text());
	IrDoPrint(irlpt, *iEikLabelFlags->Text());

	/*_LIT8(KTxtF, "\f");
	irlpt.Write(irStat, iTimeOut, KTxtF);
	User::WaitForRequest(irStat);*/

	//fs.Close();
	CleanupStack::PopAndDestroy(); // fs
	irlpt.Close();
	CleanupStack::PopAndDestroy(); // cs
	//cs.Close();
}

void CSYSINFO60Container2::IrDoPrint(RComm &aRComm, const TDesC& aText)
{
	if (aText.Length() > 0)
	{
		TRequestStatus irStat;
		TBuf8<72> printText;
		printText.Copy(KCrLf8);
		printText.Append(aText);
		aRComm.Write(irStat, iTimeOut, printText);
		User::WaitForRequest(irStat);
	}
}

/*
void CSYSINFO60Container2::SetPrintData(void)
{
	TPtr8 ptr = iIRdata->Des();
	ptr.Copy(_L(""));
}
*/

TInt CSYSINFO60Container2::IASQuery(RNetDatabase &aIAS, const TDesC8 &aClassName,
									const TDesC8 &aAttributeName, TUint aRemDevAddr)
{
	TIASQuery querybuf(aClassName, aAttributeName, aRemDevAddr);
	TRequestStatus stat;
	TIASResponse results;

	TInt iasRet = 0;
	_LIT8(KClrText, "");
	TBuf8<64> resData(KClrText);
	aIAS.Query(querybuf, results, stat);
	User::WaitForRequest(stat);

	if (stat.Int() == KErrNone)
	{
		switch (results.Type())
		{
		case EIASDataMissing:
			{
				iasRet = -2;
				break;
			}
		case EIASDataInteger:
			{
				TInt num;
				if (results.GetInteger(num) == KErrNone)
				{
					resData.Num(num);
				}
				else
				{
					iasRet = -3;
				}
				break;
			}
		case EIASDataOctetSequence:
			{
				results.GetOctetSeq(resData);				
				break;
			}
		case EIASDataUserString:
			{
				resData.Copy(results.GetCharString8());
				break;
			}
		default:
			{
				iasRet = -4;
				break;
			}
		}
	}
	else
	{
		iasRet = -1;
	}
	iIASres.Copy(resData);
	return iasRet;
}

// End of File  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -