//static QList<QextPortInfo> QextSerialEnumerator::getPorts() { QList<QextPortInfo> ports; #ifdef Q_OS_WIN OSVERSIONINFO vi; vi.dwOSVersionInfoSize = sizeof(vi); if (!::GetVersionEx(&vi)) { qCritical("Could not get OS version."); return ports; } // Handle windows 9x and NT4 specially if (vi.dwMajorVersion < 5) { qCritical("Enumeration for this version of Windows is not implemented yet"); /*if (vi.dwPlatformId == VER_PLATFORM_WIN32_NT) EnumPortsWNt4(ports); else EnumPortsW9x(ports);*/ } else //w2k or later setupAPIScan(ports); #endif /*Q_OS_WIN*/ #ifdef Q_OS_UNIX #ifdef Q_OS_MAC scanPortsOSX(ports); #else qCritical("Enumeration for POSIX systems is not implemented yet."); #endif /* Q_OS_MAC */ #endif /*Q_OS_UNIX*/ return ports; }
//static QList<QextPortInfo> QextSerialEnumerator::getPorts() { QList<QextPortInfo> ports; #ifdef _TTY_WIN_ OSVERSIONINFO vi; vi.dwOSVersionInfoSize = sizeof(vi); if (!::GetVersionEx(&vi)) { qCritical("Could not get OS version."); return ports; } // Handle windows 9x and NT4 specially if (vi.dwMajorVersion < 5) { qCritical("Enumeration for this version of Windows is not implemented yet"); /* if (vi.dwPlatformId == VER_PLATFORM_WIN32_NT) EnumPortsWNt4(ports); else EnumPortsW9x(ports);*/ } else //w2k or later setupAPIScan(ports); #endif /*_TTY_WIN_*/ #ifdef _TTY_POSIX_ QDir devices("/dev"); devices.setFilter(QDir::System | QDir::Readable | QDir::Writable); QStringList filters; filters << "ttyS*" << "ttyUSB*" << "ttyACM*"; devices.setNameFilters(filters); QStringList deviceList; deviceList = devices.entryList(); QextPortInfo info; if(deviceList.isEmpty()) { info.friendName = "Serial Port (/dev/serial)"; info.physName = "/dev/serial"; info.enumName = "/dev/serial"; info.portName = "/dev/serial"; ports.append(info); } else { for(int i = 0; i < deviceList.count(); i++) { info.friendName = "/dev/" + deviceList[i]; info.physName = "/dev/" + deviceList[i]; info.enumName = "/dev/" + deviceList[i]; info.portName = "/dev/" + deviceList[i]; ports.append(info); } } #endif /*_TTY_POSIX_*/ return ports; }
//static QList<QextPortInfo> QextSerialEnumerator::getPorts() { QList<QextPortInfo> ports; #ifdef _TTY_WIN_ OSVERSIONINFO vi; vi.dwOSVersionInfoSize = sizeof(vi); if (!::GetVersionEx(&vi)) { qCritical("Could not get OS version."); return ports; } // Handle windows 9x and NT4 specially if (vi.dwMajorVersion < 5) { qCritical("Enumeration for this version of Windows is not implemented yet"); /* if (vi.dwPlatformId == VER_PLATFORM_WIN32_NT) EnumPortsWNt4(ports); else EnumPortsW9x(ports);*/ } else //w2k or later setupAPIScan(ports); #endif /*_TTY_WIN_*/ #ifdef _TTY_POSIX_ QFileInfoList list = QDir("/dev/").entryInfoList(QDir::AllEntries|QDir::NoDotAndDotDot|QDir::Hidden|QDir::System,QDir::DirsFirst); qWarning("Enumeration for POSIX systems is experimental."); for (int i = 0; i < list.size(); ++i) { QFileInfo fileInfo = list.at(i); #ifdef Q_OS_IRIX if(fileInfo.completeBaseName().contains(QRegExp("^ttyf\\d$"))) #endif /*Q_OS_IRIX*/ #ifdef Q_OS_HPUX if(fileInfo.completeBaseName().contains(QRegExp("^tty\\dp0$"))) #endif /*Q_OS_HPUX*/ #ifdef Q_OS_SUN if(fileInfo.completeBaseName().contains(QRegExp("^tty[a-z]$"))) #endif /*Q_OS_SUN*/ #ifdef Q_OS_DIGITAL if(fileInfo.completeBaseName().contains(QRegExp("^tty0\\d$"))) #endif /*Q_OS_DIGITAL*/ #ifdef Q_OS_OPENBSD if(fileInfo.completeBaseName().contains(QRegExp("^tty0\\d$"))) #endif /*Q_OS_OPENBSD*/ #ifdef Q_OS_FREEBSD if(fileInfo.completeBaseName().contains(QRegExp("^ttyd\\d$"))) #endif /*Q_OS_FREEBSD*/ #ifdef Q_OS_LINUX if(fileInfo.completeBaseName().contains(QRegExp("^ttyS\\d$"))) #endif /*Q_OS_LINUX*/ { QextPortInfo temp; temp.enumName="Kernel"; temp.friendName="Communication Port ("+fileInfo.completeBaseName()+")"; temp.physName="/dev/"+fileInfo.completeBaseName(); temp.portName="/dev/"+fileInfo.completeBaseName(); ports<<temp; } } #endif /*_TTY_POSIX_*/ return ports; }