![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 29.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Piszę w przedszkolu, bo choć to część sporej aplikacji to ograniczmy się do minimum:
I tutaj pojawia się pytanie - czemu dane z COM spływają po około minucie/dwóch od odczytania (w tym konkretnym przypadku chodzi o kartę zbliżeniową). I nie ważne czy pod linuchem (/dev/ttyUSBx czy windą COMx:) |
|
|
![]() |
--JohnnyB-- |
![]()
Post
#2
|
Goście ![]() |
funkcja, którą stworzyłem do odczytu z RS232:
timeout dobierałem doświadczalnie, w moim przypadku 0,8s; jeśli zadziała możesz spróbować zmiejszyć |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 29.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Tak na oko różni się jedynie rzeczami nieistotnymi: długością strumienia (22 zamiast 1), <teoretycznie> niekończącą pętlą bo moje jest wrzucane pod konsolę i stream_set_blocking(), tyle że jak dobrze rozumiem:
<< This function works for any stream that supports non-blocking mode (currently, regular files and socket streams). >> do portów szeregowych chyba to nie działa. Na chwilę obecną ten temat zrealizowało się w pythonie ale jestem ciekaw czemu php sobie z tym rady u mnie nie dał... |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 89 Dołączył: 31.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze - stream_set_blocking działa również dla portów szeregowych (przynajmniej w systemach unixowych).
Po drugie - zawsze do zabaw z portami szeregowymi polecam korzystanie z DIO. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 18:26 |