Linux'taki seri portlara bağlı tüm bağlı cihazları tespit etmenin iyi bir yolu var mı? C++ 'da programlama yapıyorum ama diğer örnekler de memnuniyetle karşılıyor.C++ linux tüm seri portları algılar
Her bağlantı noktasını açmayı deneyebilir ve başarılı olduğunda bağlantı noktası listesine ekleyebilirsiniz ancak bu gerçekten iyi bir çözüm gibi görünmemektedir.
Dev yöneticilere gidebilir ve seri bağlantı noktamdan bir USB portu olabilir, hangi ttyUSB .. dosyalarının yapıldığını kontrol edebilirim. Ancak tty0'dan tty63'e kadar olan dosyalar her zaman bu dizinde bulunduğundan, bu USB olmayan seri bağlantı noktaları için işe yaramıyor.
Benim örnek:
std::string port;
int fd
std::vector<std::string>> list;
for(int i = 0; i < 256; ++i)
{
port.clear();
port.append("/dev/ttyUSB");
port.append(std::to_string(i));
fd = open(port.c_str(), O_RDWR | O_NOCTTY | O_DELAY);
if(fd != -1)
{
list.push_back(port);
}
}
teşekkürler!
Seri bağlantı noktaları genellikle 'ttyS0' vb. – Hasturkun
Bu bana bir XY sorusu veriyor, gerçek problemin X olduğu ve çözümün Y olduğunu düşündüğünüz için siz de Y.'yi soruyorsunuz. Sistemdeki seri portlar hakkında niçin bilmek istiyorsunuz? –
Bağlantı noktalarından 1 tanesinde bir zigbee aygıtı bağlanmıştır. Kullanıcı dostu yapmak istediğimden, kullanıcının seçebileceği tüm olasılıkları listelemek istiyorum. Normalde zigbee cihazınızı takarsanız tam olarak size gönderilen bir port numarasını almanız gerekir. @Hasturkun Benim durumumda, seri cihazım USB bağlantısı kullandığı için ttyUSB0 olarak adlandırılıyor. – Silver