Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Bluetooth - zrywanie połączenia

mhamada 31 Lip 2007 14:26 1302 0
  • #1
    mhamada
    Poziom 2  
    Mam następujący problem (próbowałem szukać na sieci, ale znajduję tylko porozpoczynane wątki na angielskich serwisach - żadnych konkretów):

    Mam sterowniki robotów z modułem Bluetooth Taiyo Yuden i łączę się z nimi z komputera PC (system linux jądro 2.6, stos BlueZ). Ponieważ robotów jest 6 i każdy ma być sterowany przez innego użytkownika siedzącego przy kompach bez modułu Bluetooth, zainstalowałem program serwera portów szeregowych mserver-0.23a, dzieki czemu dokonywana jest translacja port RFCOMM <-> port TCP/IP.

    Wszystko jest w porządku, jeśli zaczynam transmisję ze stanu ustalonego - włączam napięcie zasilające sterownika, tworzę gniazdo w programie na PC i robię CONNECT. Połączenie jest nawiązywane. Problem pojawia się, gdy połączenie takie zostanie zerwane np. w wyniku zbytniego oddalenia się robota od nadajnika. Wówczas nie pomaga zamknięcie i ponowne wznowienie połączenia. Zwracany jest stan BUSY urządzenia.

    To samo dzieje się też, gdy łączę się bezpośrednio z komputera gdzie jest moduł Bluetooth, bez serwera szeregowego. Po zerwaniu połączenia, gdy podglądam stan urządzenia, stan jest DISCONNECTING. I trwa długo - ok. 10 sekund. Ponieważ roboty mają grać w lidze RoboCup, dobrze by było, gdyby to nie trwało dłużej niż sekundę. Podobnie sprawa miała się pod Windowsem.

    PYTANIE: Czy jest jakaś funkcja stosu BlueZ pozwalająca wymusić natychmiastowe rozłączenie ze zdalnym urządzeniem? Żeby w momencie straty połączenia komputer PC nie próbował się "kulturalnie" rozłączać, tylko od razu uznał połączenia za zerwane.

    Mam nadzieję, że w miarę zrozumiale to napisałem. Z góry dziękuję za odpowiedź, albo ew. wskazówki.