QList<SerialPortInfo> SerialPortInfo::availablePorts() { QList<SerialPortInfo> ports; if (!loadDevices()) return ports; RCommServ server; TInt r = server.Connect(); if (r != KErrNone) return ports; //User::LeaveIfError(r); TSerialInfo nativeInfo; // Native Symbian OS port info class. QString s("%1::%2"); // FIXME: Get info about RS232 ports. r = server.LoadCommModule(KRS232ModuleName); //User::LeaveIfError(r); if (r == KErrNone) { r = server.GetPortInfo(KRS232ModuleName, nativeInfo); if (r == KErrNone) { // for (quint32 i = nativeInfo.iLowUnit; i < nativeInfo.iHighUnit + 1; ++i) { SerialPortInfo info; // My (desired) info class. info.d_ptr->device = s .arg(QString::fromUtf16(nativeInfo.iName.Ptr(), nativeInfo.iName.Length())) .arg(i); info.d_ptr->portName = info.d_ptr->device; info.d_ptr->description = QString::fromUtf16(nativeInfo.iDescription.Ptr(), nativeInfo.iDescription.Length()); info.d_ptr->manufacturer = QString(QObject::tr("Unknown.")); ports.append(info); } } } // FIXME: Get info about Bluetooth ports. r = server.LoadCommModule(KBluetoothModuleName); //User::LeaveIfError(r); if (r == KErrNone) { r = server.GetPortInfo(KBluetoothModuleName, nativeInfo); if (r == KErrNone) { // for (quint32 i = nativeInfo.iLowUnit; i < nativeInfo.iHighUnit + 1; ++i) { SerialPortInfo info; // My (desired) info class. info.d_ptr->device = s .arg(QString::fromUtf16(nativeInfo.iName.Ptr(), nativeInfo.iName.Length())) .arg(i); info.d_ptr->portName = info.d_ptr->device; info.d_ptr->description = QString::fromUtf16(nativeInfo.iDescription.Ptr(), nativeInfo.iDescription.Length()); info.d_ptr->manufacturer = QString(QObject::tr("Unknown.")); ports.append(info); } } } // FIXME: Get info about InfraRed ports. r = server.LoadCommModule(KInfraRedModuleName); //User::LeaveIfError(r); if (r == KErrNone) { r = server.GetPortInfo(KInfraRedModuleName, nativeInfo); if (r == KErrNone) { // for (quint32 i = nativeInfo.iLowUnit; i < nativeInfo.iHighUnit + 1; ++i) { SerialPortInfo info; // My (desired) info class. info.d_ptr->device = s .arg(QString::fromUtf16(nativeInfo.iName.Ptr(), nativeInfo.iName.Length())) .arg(i); info.d_ptr->portName = info.d_ptr->device; info.d_ptr->description = QString::fromUtf16(nativeInfo.iDescription.Ptr(), nativeInfo.iDescription.Length()); info.d_ptr->manufacturer = QString(QObject::tr("Unknown.")); ports.append(info); } } } // FIXME: Get info about ACM ports. r = server.LoadCommModule(KACMModuleName); //User::LeaveIfError(r); if (r == KErrNone) { r = server.GetPortInfo(KACMModuleName, nativeInfo); if (r == KErrNone) { // for (quint32 i = nativeInfo.iLowUnit; i < nativeInfo.iHighUnit + 1; ++i) { SerialPortInfo info; // My (desired) info class. info.d_ptr->device = s .arg(QString::fromUtf16(nativeInfo.iName.Ptr(), nativeInfo.iName.Length())) .arg(i); info.d_ptr->portName = SerialPortPrivate::portNameFromSystemLocation(info.d_ptr->device); info.d_ptr->description = QString::fromUtf16(nativeInfo.iDescription.Ptr(), nativeInfo.iDescription.Length()); info.d_ptr->manufacturer = QString(QObject::tr("Unknown.")); ports.append(info); } } } return ports; }
QList<QSerialPortInfo> QSerialPortInfo::availablePorts() { QList<QSerialPortInfo> serialPortInfoList; if (!loadDevices()) return serialPortInfoList; RCommServ server; TInt r = server.Connect(); if (r != KErrNone) return serialPortInfoList; TSerialInfo nativeSerialInfo; QString s("%1::%2"); // FIXME: Get info about RS232 ports. r = server.LoadCommModule(KRS232ModuleName); if (r == KErrNone) { r = server.GetPortInfo(KRS232ModuleName, nativeSerialInfo); if (r == KErrNone) { for (quint32 i = nativeSerialInfo.iLowUnit; i < nativeSerialInfo.iHighUnit + 1; ++i) { QSerialPortInfo serialPortInfo; serialPortInfo.d_ptr->device = s .arg(QString::fromUtf16(nativeSerialInfo.iName.Ptr(), nativeSerialInfo.iName.Length())) .arg(i); serialPortInfo.d_ptr->portName = serialPortInfo.d_ptr->device; serialPortInfo.d_ptr->description = QString::fromUtf16(nativeSerialInfo.iDescription.Ptr(), nativeSerialInfo.iDescription.Length()); serialPortInfo.d_ptr->manufacturer = QString(QObject::tr("Unknown.")); serialPortInfoList.append(serialPortInfo); } } } // FIXME: Get info about Bluetooth ports. r = server.LoadCommModule(KBluetoothModuleName); if (r == KErrNone) { r = server.GetPortInfo(KBluetoothModuleName, nativeSerialInfo); if (r == KErrNone) { for (quint32 i = nativeSerialInfo.iLowUnit; i < nativeSerialInfo.iHighUnit + 1; ++i) { QSerialPortInfo serialPortInfo; serialPortInfo.d_ptr->device = s .arg(QString::fromUtf16(nativeSerialInfo.iName.Ptr(), nativeSerialInfo.iName.Length())) .arg(i); serialPortInfo.d_ptr->portName = serialPortInfo.d_ptr->device; serialPortInfo.d_ptr->description = QString::fromUtf16(nativeSerialInfo.iDescription.Ptr(), nativeSerialInfo.iDescription.Length()); serialPortInfo.d_ptr->manufacturer = QString(QObject::tr("Unknown.")); serialPortInfoList.append(serialPortInfo); } } } // FIXME: Get info about InfraRed ports. r = server.LoadCommModule(KInfraRedModuleName); if (r == KErrNone) { r = server.GetPortInfo(KInfraRedModuleName, nativeSerialInfo); if (r == KErrNone) { for (quint32 i = nativeSerialInfo.iLowUnit; i < nativeSerialInfo.iHighUnit + 1; ++i) { QSerialPortInfo serialPortInfo; serialPortInfo.d_ptr->device = s .arg(QString::fromUtf16(nativeSerialInfo.iName.Ptr(), nativeSerialInfo.iName.Length())) .arg(i); serialPortInfo.d_ptr->portName = serialPortInfo.d_ptr->device; serialPortInfo.d_ptr->description = QString::fromUtf16(nativeSerialInfo.iDescription.Ptr(), nativeSerialInfo.iDescription.Length()); serialPortInfo.d_ptr->manufacturer = QString(QObject::tr("Unknown.")); serialPortInfoList.append(serialPortInfo); } } } // FIXME: Get info about ACM ports. r = server.LoadCommModule(KACMModuleName); if (r == KErrNone) { r = server.GetPortInfo(KACMModuleName, nativeSerialInfo); if (r == KErrNone) { for (quint32 i = nativeSerialInfo.iLowUnit; i < nativeSerialInfo.iHighUnit + 1; ++i) { QSerialPortInfo serialPortInfo; serialPortInfo.d_ptr->device = s .arg(QString::fromUtf16(nativeSerialInfo.iName.Ptr(), nativeSerialInfo.iName.Length())) .arg(i); serialPortInfo.d_ptr->portName = QSerialPortPrivate::portNameFromSystemLocation(serialPortInfo.d_ptr->device); serialPortInfo.d_ptr->description = QString::fromUtf16(nativeSerialInfo.iDescription.Ptr(), nativeSerialInfo.iDescription.Length()); serialPortInfo.d_ptr->manufacturer = QString(QObject::tr("Unknown.")); serialPortInfoList.append(serialPortInfo); } } } return serialPortInfoList; }