Próbuję realizować Modbus Master w systemie Windows 10 IoT na Raspberry Pi 2. Używam zewnętrznego adapterem USB na RS-232 ponieważ wewnętrzny port szeregowy jest zarezerwowany do debugowania jądra.Nie można używać w systemie Windows 10 SerialDevice.ReadTimeout internetu przedmiotów
Port szeregowy działa. Moje pytanie dotyczy głównie czasu oczekiwania podczas czytania.
Oto mój kod:
// Initialization
serialDevice.ReadTimeout = new TimeSpan(0, 0, 0, allowedTimeBetweenBytes);
serialDataReader.InputStreamOptions = InputStreamOptions.Partial;
// Reading
uint bytesRead = await serialDataReader.LoadAsync(MaxBufferSize); // 256
// Now use ReadBytes to get actual bytes
Bez bajtów awailable na wejściu portu szeregowego RX Czekam metodę LoadAsync powrotu 0 po czekać. Niestety, nigdy nie wraca. (OK, powraca po otrzymaniu 256 bajtów, ale to nie jest to, czego chcę)
Ponieważ ModBus intensywnie korzysta z limitów czasu, nie jestem pewien, jak go wdrożyć. Nie jestem nawet pewien, czy mógłbym to zrobić ...
Czy ktoś już korzystał z limitów czasu na portach szeregowych IoT systemu Windows 10?
Cóż, wyraźnie nie działa InputStreamOptions.Partial. Rzuć kostką i wypróbuj InputStreamOptions.ReadAhead i None next. –