jaki modem GSM

Mon, 03 Aug 2009 23:38:36 +0200 ToMasz <twitek4@no_spam.gazeta.pl>

napisał:

Oczywiście że są, od (chyba) tak dawna jak GSM. Sam w takim lutowałem stabilizator ;-)

A rozwiązania dwa, jeżeli to ma być zastosowanie amatorskie to najlepiej używany telefon z Allegro, obsługujący komendy AT, np. wspomniany Siemens Do tego MAX3232 zasilany z 3,3V (przypomianam że większość telefonów ma elektronikę na 3,3V i może się zepsuć jak dostanie 5V na RXD). Jeżeli ma być zastosowanie profesjonalne to nie ma co kombinować - są gotowe modemy z RS-232, robi takie np. Motorola, Siemens itd.

Reply to
__Maciek
Loading thread data ...

Jarosław Sokołowski pisze:

Chyba się nie zrozumieliśmy, ja nie mam dwóch takich samych drukarek i nie kombinowałem jak je podłączyć, żeby windows się pogubił. To co praktycznie sprawdziłem to zachowanie windowsa, gdy podpina się to samo urządzenie do różnych portów, wtedy gdy ma nadany numer seryjny i gdy go nie ma. Oprócz tego zdarza mi się podpiąć drukarkę (bez numeru seryjnego) do komputera nie zawsze do tego samego portu i z tego co widzę, to w zależności od gniazda USB drukarka "pojawia się" pod odpowiednimi numerami/nazwami.

Reply to
Zbych

Pan Zbych napisał:

Zupełnie się nie zrozumieliśmy. A ja wyraźnie napisałem, o jaką konfigurację mi chodzi. Komputery zwykle mają więcej niż jedno gniazdo USB, często umieszczone bardzo blisko siebie, nie są one w żadan sposób czytelnie ponumerowane, co właśnie ma sugerować użytkownikowi, że podłączać może jak chce. Takie doświadczenia ma więc niemal każdy, kto kiedykolwiek podłączał cokolwiek do portu USB.

Co w tym przypadku oznacza "oprócz tego"? Przecież to jest dokładnie ta sama sytuacja, co opisana wyżej (a ściślej jeden z jej dwóch przypadków).

W jaki sposób "pojawia się"? Te numery/nazwy dotyczą drukarki czy portu? Podejrzewam, że jednak portu, bo to by było fatalnie, gdyby drukarka po przeniesieniu kabla do innego gnazdka nagle zmieniła nazwę i na przykład stała się niedostępna dla programów. Natomiast nie zauważyłem w Windows żadnej informacji dostępnej jawnie dla użytkownika, która by się odnosiła do konkretnych gniazd USB. Da się to gdzieś odczytać bez ostrej hakerki?

Nie chodzi mi tu o poddanie Windowsa krytyce. To wszystko wynika w dużej mierze z błędów w koncepcie systemu USB, na przykład braku obowiązkowej identyfikacji urządzeń numerem, sprawdzania tożsamości urządzenia itp. Problem zamiany miejscami urządzeń w trakcie bootowania może pojawić się niezależnie od systemu. W linuksie w elegancki sposób omija się to za pomocą udev. Słyszałem, że w Windows było to nierozwiązywalne. Czy jest nadal, tego nie wiem. Nie wiem też, czy w związku z tym uprawniome jest stwierdzenie, że "windowsowa obsługa USB jest daleka od doskonałości".

Reply to
Jarosław Sokołowski

Jarosław Sokołowski pisze:

Jeśli drukarka nie ma numeru seryjnego to tak właśnie pod widowsem jest. Żeby nie być gołosłownym sprawdziłem, jak przedstawia się drukarka (bez numeru seryjnego) podłączana po kolei do różnych portów USB. Po pierwszym podłączeniu miałem "HP Laser Jet", w drugim porcie "HP Laser Jet (kopia 1)", w trzecim "HP Laser Jet (kopia 2)" itd. System pamięta, która nazwa była skojarzona z którym portem.

Ciężko nazwać ręczne grzebanie w konfiguracji udev rozwiązaniem dla zwykłego użytkownika. Takie same problemy jak z urządzeniami USB miałem w linuksie także z kartami dźwiękowymi i telewizyjnymi na PCI (raz na jakiś czas numeracja urządzeń się zmieniała). O ile z kartami dźwiękowymi poradziłem sobie grzebiąc w konfiguracji alsy, to z kartami video dałem sobie spokój. Jak na mój gust w windowsie jest to rozwiązane lepiej.

Reply to
Zbych

Zbych pisze:

Mam przejściówkę USB/RS232 Prolific. Windows nadaje jej różne numery COM w zależności od tego w który port USB ją wtykam. Trochę to wkurzające bo nie zawsze pamiętam pod którym portem jaki jest numer.

Reply to
Mario

Zbych pisze:

Tak. Przełożenie karty dźwiękowej do innego gniazda PCI powodowało zmianę numeracji przerwań. Powodowało to nakładanie zajmowanie numerów przerwań tym urządzeniom które miły ustawione na stałe np COMy lub mysz i część urządzeń nie działała poprawnie.

Reply to
Mario

Mario denied rebel lies:

A kiedy to było?

Reply to
MoonWolf

Pan Zbych napisał:

I naprawdę trzeba w programach wybierać inną drukarkę tylko dlatego, że ktoś nie trafił wtyczką do tej samej dziurki?!

Przecież to "ręczne grzebanie" dotyczy tylko tych sytuacji, gdy system nie ma skąd wziąć informacji potrzebnych do rozróżnienia sprzętu. Tak zwany Zwykły Użytkownik nie podłącza jednocześnie kilku urządzeń RS232 do takich samych przejściówek USB. Podejrzewam, że nawet dwie takie same drukarki USB przy jednym komputerze to rzadkość. We wszystkich innych sytuacjach wystarczy, że system sam sobie pogrzebie w konfigach. (A samodzielnie grzebie się w plikach również elegancko, to inna sprawa.)

W Windows jest inaczej? Przecież to nie wynika z założeń systemu operacyjnego, tylko z założeń PCI. No i z nie do końca przemyślanej idei "plug and play". Nikt się chyba nie zastanawiał co i jak będzie "play" gdy się "plug" dwa takie same diwajsy. Kiedyś takie niedoróbki w złożeniach obchodzono wymyślnymi skryptami, teraz udev rozwiązuje problem całościowo.

Że niby drukarki mnożące się w systenie jak króliki są lepsze? To ja mam inny gust. Czy Windows rzeczywiście nie dysponuje choćby namiastką udev, czym co by pozwalało jakoś utemperować krnąbrność zachowań P'n'P?

Reply to
Jarosław Sokołowski

Jarosław Sokołowski pisze:

No przecież mógłby je rozróżniać na podstawie portu, do którego są podłączone.

Numery /dev/urządzenie_xxx są przydzielane przez system a nie "założenia" PCI.

Nie, to że bez żadnego grzebania w konfiguracji mam pewność, że drukarki nie zamienią się miejscami. A to, że mnożą się jak króliki też nie jest dla mnie aż takim wielkim problemem, bo po ikonie widać, która drukarka jest w danej chwili podłączona.

Reply to
Zbych

Kilka godzin wcześniej tak napisałem:

[...]

Ponieważ także nie lubię być gołosłownym, nawiedziłem dzisiaj sklep celem nabycia w drodze kupna patyka USB Wi-Fi D-Link. Drugi taki miałem już wcześniej, więc jest na czym robić eksperymenty. Przywróciłem laptopowi możliwość bootowania Windows i do roboty. Patyk był oklejony nalepką z ostrzeżeniem, by go nie wsadzać w dzirę zanim się nie zainstaluje oprogramowania z płyty. Kidyś strasznie się nabijano z takiego podejścia do Plug&Play w Windows, ale już mniejsza o to.

Włożyłem pierwszy patyk w pierwsze gniazdo laptopa. Windows opisał go jako "D-Link AirPlus G DWL-G122 Wireless USB Adapter(rev.C)". Włożyłem drugi w następną dziurę. Ten był już "D-Link AirPlus G DWL-G122 Wireless USB Adapter(rev.C) #2". No to pierwszy do trzeciej dziury. I już mam

*następny* diwajs -- #3. Co się stanie po włożeniu *dowolnej* z dwóch kart do czwartej dziurki, przewidziałem bez problemu. Jeszcze sprawdziłem połączenie przez hub. No i mam teraz a laptopie zarejestrowanne karty #5, #6, #7, #8.

Druga karta włożona do komputera z Linuksem spowodowała, że udev sam z siebie dopisał następną linijkę w konfigu, która łączy adres MAC z kolejną wolną nazwą interfejsu (wlanX). Ten można sobie dowolnie skonfigurować (klikając albo edytując plki, jak kto woli) i być pewnym, że te ustawienia się nie zgubią po przełożeniu karty do innego portu albo przy połączeniu przez hub USB.

Szczerze mówiąc, niczego dobrego po Windows się nie spodziwełam, ale tym razem mnie zaskoczył. Nie sądziłem, że to działa aż tak fatalnie. Przecież to nie są jakieś anonimowe drukarki, tylko urządzenia sieciowe, które od zawsze mają obowiązkowo numer MAC służący do identyfikacji! Ja to wypróbowałem w Windows XP, czy Vista albo Seven wnoszą coś nowego, czy dalej jest tak samo?

Reply to
Jarosław Sokołowski

MoonWolf pisze:

Parę lat temu. Ale na XP.

Reply to
Mario

Pan Zbych napisał:

No przecież mogą, jak się odpowiedno skonfiguruje udev. Jednak ludzie na ogół wolą jeśli nie trzeba zmieniać ustawień programów, gdy drukarkę, telefon albo inne urządzenie włączy się nie do tej dziurki USB co zawsze.

Przydzielane kolejno, jak tylko są wykrywane przez magistralę PCI. W Windows jest tak samo.

Trzeba było tak od razu. Jak komuś nie przeszkadza, że gdy chce z laptopa wydrukować tabelkę w Excelu, to wcześniej wybiera z listy "Drukarka Cannon podłączona do drugiego USB z lewej strony", to przecież nie będę go palcem wytykał jako dziwaka. Tolerancyjny jestem. Zresztą z portami szeregowymi RS-232 tak zawsze było, były numerowane, a ta numeracja była istotna. Microsoft tę tradycję kontynuuje, też im wolno miec konserwatywne podejście. Ale jednak założenia USB są innę, tu rozróżniane powinny być urządzenia, nie kabelki i gniazdka. Warto ten fakt zauważyć. Zwłaszcza gdy mówimy o tym, jak "obsługa USB daleka jest od doskonałości".

Jarek

PS Zdaje Pan sobe sprawę z tego, że można grzebnąć w udev i zrobić tak, by drukarki, karty sieciowe i inne dongle USB były traktowane w ten sposób, jak to jest teraz w Windows? Roboty jest na jeden wieczór, dla kogoś kto wcześniej tego nie robił i musi przy tym poczytać dokumentację. A wtedy taki "ulepszony" udev może trafić do tysięcy "wdzięcznych" użytkowników. Myśli Pan, że jeszcze tego nie ma z tego powodu, że nikomu się nie chciało?

Reply to
Jarosław Sokołowski

Jarosław Sokołowski pisze:

Nie wiedziałem o tym.

Nie mam pojęcia. W linuksie widziałem już tyle drobnych rzeczy, które były niedorobione, a nie wymagały dużych nakładów pracy, że nic mnie już nie zdziwi.

Ale skoro już trafiłem na eksperta (bez żadnej ironii), to pozwolę sobie zadać pytanie. Czy jest możliwość odczytania nazwy urządzenia/producenta, która jest skojarzona z wpisem w /dev? Np. po podłączeniu telefonu pojawia się /dev/ttyACM0, jak sprawdzić nazwę urządzenia (przy założeniu, że lsusb wyświetla nazwę np. "modem motorola")?

Reply to
Zbych

Pan Zbych napisał:

Udev może zmieniać nazwy urządzeń nadane wcześniej przez kernel. Mogą to być również takie w rodzaju /dev/ModemMotoroli.

Bo Pan jeszcze nie zna odpowiedzi na zadane przez siebie pytanie. Zamieszczone niżej polecenie, które jest odpowiedzia na nie, pokazuje co udev wie o urządzeniu. Jest tam również informacja o numerze gniazdka USB. Wszystkie te informacje mogą być użyte do tworzenia reguł udev nadających nazwy. Dołączenie numeru do nazwy, to chwila.

Twórcy Windows poszli na łatwiznę, dodając numer do każdego urządzenia podłączanego na kilka sposobów. To jedyna metoda, by uchronić się przed kłopotami związanymi z wykryciem kilku takich samych urządzeń. Bo przecież byle komu w bebechach Windowsa grzebać nie wolno, więc nikt sobie tego sam nie zmieni. Twórcy udev uznali, że lepiej trzymać się blisko idei USB i nie przejmować się tym, co do którego gniazdka jest podłączone. Nie zmieniają też tradycyjnych nazw urządzeń, nie chcą tym denerwować użytkowników.

Akurat to (stan niedorobienia) mnie nie dziwi w najmniejszym stopniu, choć takich "niedorobionych" rzeczy pewnie widziałem więcej od Pana. W dodatku mnie ten stan odpowiada. Zwykle, tak jak w przypadku udev, zrobione jest tyle, by zadowolić jak najwięcej ludzi. Ilu jest takich, co mają potrzebę podłączania kilku takich samych urządzeń na raz? A ilu takich, którzy chcą mieć dowolność wyboru gniazdka przy podłączaniu drukarki? Jak ktoś chce mieć inaczej niż wszyscy, to sobie dodaje swój plik z regułkami do katalogu udev (albo dostaje go od dostawcy sprzętu i oprogramowania).

Można śledzić komunikaty sysloga (tail -f /var/log/messages|grep "kernel: usb") i szukać tam tego "ttyACM0". Za chwilę, kilka linijek dalej, pojawią się wpisy "Product" i "Manufacturer". Ale to raczej w celach szkoleniowych -- tak się kiedyś robiło, to też miałem na myśli pisząc wcześniej o "wymyślnych skryptach". Dzisiaj lepiej to zrobić odpytując system poleceniem udevadm. Używa się do tego podwójnego zaklęcia:

udevadm info -a -p $(udevadm info -q path -n /dev/ttyACM0)

które zwraca *wszystkie* informacje związane z tym diwajsem. Łącznie z tym, jak toto jest połączone i z czym. Dużo tego. Żeby znaleźć to, co potrzebne, trzeba przepuścić przez grepa, czasem również wielokrotnego. W tym przypadku można zacząć od "| grep -E 'manufacturer|product'".

Reply to
Jarosław Sokołowski

Jarosław Sokołowski denied rebel lies:

[zostawiam dla kontekstu]

A ja uruchomiłem "Centrum informacyjne KDE", podpiąłem swój telefon i otrzymałem coś takiego:

formatting link

Reply to
MoonWolf

MoonWolf napisał:

Z pozostawionego dla kontekstu pytania wynika, że obrazek ten na nic się pytającemu nie przyda. Nie chodziło i informacje o drzewku USB i jego gałązkach, tylko o *znalezienie* opisu urządzenia *na podstawie* wskazanego pliku "dev" skojarzonego z tym urządzeniem. Sens takich poszukiwań, to już inna sprawa. Ale jak widać, możliwość jest.

Reply to
Jarosław Sokołowski

Jarosław Sokołowski denied rebel lies:

Dlatego dodałem [OT] (choć powinno być [OT^2] (;)

Na obrazku jest opis. Czyli 50% zapotrzebowania (:)

I owszem. Możliwości jest wiele. Zależy co się chce osiągnąć.

Reply to
MoonWolf

MoonWolf napisał:

Ale to zapotrzebiowanie wypełniło już wcześniej polecenie lsusb wymienione w pytaniu.

Mam przeczucie, że celem było wyważenie otwartych drzwi. Plików skojarzonych z urządzeniem może być wiele, można je wytwarzać (np. pleceniem mknod) w dowolnych ilościac, z dowolnymi nazwami w dowolnych katalogach, nie tylko w /dev. System udev może za każdym razem po podłączeniu kabla tego telefonu tworzyć np. plik /dev/motorola. Podłączenie innego telefonu spowoduje stworzenie pliku /dev/siemens. Specyficzne programy przeznaczone do kontaktu z jakimś konkretnym urządzeniem nie muszą się wiecznie zastanawiać "a co to tym razem podłączono jako /dev/ttyACM0", tylko śledzą swój własny plik.

Reply to
Jarosław Sokołowski

Jarosław Sokołowski pisze:

Celem było po pierwsze stworzenie listy urządzeń "szeregowych" (porty rs-232, przejściówki RS-USB, telefony pracujące w klasie cdc/acm), a po drugie dodanie do nich opisu (tak żeby użytkownik nie musiał zgadywać czy ttyUSB0 to przejściówka RS-USB, czy może telefon). Ideałem byłaby biblioteka c (libudev?).

Reply to
Zbych

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.