Jak dotąd nie udało mi się znaleźć odpowiedzi,ale chciałem wiedzieć, czy istnieje sposób, szczególnie w języku C #, aby wykryć, jaka jest najwyższa prędkość transmisji, jaką może uzyskać port szeregowy, bez konieczności jego testowania.
Czy jest coś w jego profilu sprzętowym lub coś, co przechowuje dostępne prędkości transmisji dla określonego portu, które C # może zapytać?
Odpowiedzi:
2 dla odpowiedzi № 1Za pomocą odbicia możesz / powinieneś to zrobić w następujący sposób:
serialPort = new SerialPort(portName);
serialPort.Open();
object p = serialPort.BaseStream.GetType().GetField("commProp", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(serialPort.BaseStream);
Int32 bv = (Int32)p.GetType().GetField("dwSettableBaud", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public).GetValue(p);
Uwaga: Port zostanie otwarty w celu sprawdzenia ustawialnej prędkości transmisji :)
Zobacz ten post, aby uzyskać więcej informacji na temat sprawdzania prędkości transmisji: Jak programowo znaleźć wszystkie dostępne Baudrates w C # (klasa serialPort)