📄 sysinfo60container2.cpp
字号:
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 + -