MyTetra Share
Делитесь знаниями!
Подключение по USB-инфракрасному порту (IrDa) мобильного телефона
Время создания: 02.06.2010 15:29
Автор: Xintrea
Текстовые метки: irda, usb, debian
Раздел: Компьютер - Linux - IrDa (Инфракрасный порт)
Запись: xintrea/mytetra_syncro/master/base/0000001507/text.html на raw.github.com

Речь пойдет о инфракрасном приемо-передатчике SigmaTel STIr4200 и телефоне Siemens CX-65.


Скажу сразу - заставить работать мобильник как AT модем через USB-шный инфракрасник мне не удалось. А вот как скачивать и закачивать файлы - разобрался.


Вначале надо воткнуть USB-инфракрасник в USB-порт, и посмотреть, что появилось в выводе dmesg. Должно быть примерно следующее:


[26607.434118] usb 7-1: new full speed USB device using uhci_hcd and address 3

[26607.602267] usb 7-1: configuration #1 chosen from 1 choice

[26607.618267] usb 7-1: New USB device found, idVendor=066f, idProduct=4200

[26607.618267] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0

[26607.618267] usb 7-1: Product: IrDA/USB Bridge

[26607.618267] usb 7-1: Manufacturer: Sigmatel Inc

[26607.698137] NET: Registered protocol family 23

[26607.758636] SigmaTel STIr4200 IRDA/USB found at address 3, Vendor: 66f, Product: 4200

[26607.758636] stir4200: IrDA: Registered SigmaTel device irda0

[26607.758636] usbcore: registered new interface driver stir4200


Если инфракрасник был вставлен до загрузки компьютера, то понять, определило ли ядро это устройство можно командой:


# dmesg | grep -i irda


[ 4.211986] usb 6-1: Product: IrDA/USB Bridge

[ 9.978524] SigmaTel STIr4200 IRDA/USB found at address 2, Vendor: 66f, Product: 4200

[ 9.978524] stir4200: IrDA: Registered SigmaTel device irda0


Эти строки означают, что ядро увидело инфракрасный порт как USB-устройство.


Далее надо дать команду :


# irattach irda0 -s


которая создаст сетевое устройство irda0. В этот момент инфракрасник должен начать мигать светодиодом, если такой есть. В том, что в системе появилось сетевое устройство, можно убедиться через команду ifconfig:


# ifconfig

...

irda0 Link encap:IrLAP HWaddr 3a:08:38:0c

UP RUNNING NOARP MTU:2048 Metric:1

RX packets:113 errors:0 dropped:0 overruns:0 frame:0

TX packets:798 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:8

RX bytes:3503 (3.4 KiB) TX bytes:12540 (12.2 KiB)

...


Затем надо убедиться, что инфракрасник видится системой. Надо дать команду:


# cat /proc/net/irda/irlap


irlap0 state: LAP_NDM

device name: irda0, hardware name: usb#3

caddr: 0x9e, saddr: 0x3a08380c, daddr: 0x000000

win size: 0, win: 0, line capacity: 0, bytes left: 0

tx queue len: 0 win queue len: 0 rbusy: FALSE mbusy: FALSE

retrans: 0 vs: 0 vr: 0 va: 0

qos bps maxtt dsize winsize addbofs mintt ldisc comp

tx 9600 0 64 1 12 0 0

rx 9600 0 64 1 12 0 0


После чего можно положить рядом с инфракрасником мобильник, на котором включен ИК-порт. Сначала надо проверить, увиделся ли мобильник:

# cat /proc/net/irda/discovery

IrLMP: Discovery log:

nickname: SIEMENS CX70, hint: 0xb124, saddr: 0xcc2a8d47, daddr: 0x03336090


Видим, что SIEMENS CX65 на самом деле говорит о себе, что он как CX70.


Затем надо посмотреть, есть ли хоть какой-то обмен между мобльником и USB-инфракрасником. Для этого надо дать команду:


# irdadump


11:27:18.805049 xid:cmd 3a08380c > ffffffff S=6 s=0 (14)

11:27:18.905026 xid:cmd 3a08380c > ffffffff S=6 s=1 (14)

11:27:19.005026 xid:cmd 3a08380c > ffffffff S=6 s=2 (14)

11:27:19.088326 xid:rsp 3a08380c < 03336090 S=6 s=2 SIEMENS CX70 hint=b124 [ PnP Modem Fax IrCOMM IrOBEX ] (29)

11:27:19.105525 xid:cmd 3a08380c > ffffffff S=6 s=3 (14)

11:27:19.205026 xid:cmd 3a08380c > ffffffff S=6 s=4 (14)

11:27:19.305026 xid:cmd 3a08380c > ffffffff S=6 s=5 (14)

11:27:19.405026 xid:cmd 3a08380c > ffffffff S=6 s=* pangolinux hint=0400 [ Computer ] (26)

11:27:21.805303 xid:cmd 3a08380c > ffffffff S=6 s=0 (14)

11:27:21.889291 xid:rsp 3a08380c < 03336090 S=6 s=0 SIEMENS CX70 hint=b124 [ PnP Modem Fax IrCOMM IrOBEX ] (29)


Эта команда в реальном времени покажет, какие данные передаются по инфракрасному порту. Порт в режиме простоя постоянно опрашивает мобильник, и если мобильник отвечает, это видно в данном логе. Строки со скобкой ">" показывают что передает компьютер мобильнику, а со скобкой "<" показывается ответ мобильника.


В информации, которую о себе говорит мобильник мы видим строку IrOBEX. Это значит, что можно обмениваться файлами через OBEX-протокол. Работать с ним можно с помощью утилиты obexftp.


Основная идея в obexftp заключается в том, что надо задавать цепочку действий, которую нужно выполнить. Например, чтобы посмотреть содержимое каталога, надо в команде вначале прописать действие смены каталога (-c), а потом действие просмотра списка файлов (-l).


Начнем по-порядку. Дадим простую команду:


# obexftp -i -l


Connecting...done

Receiving "(null)"... <?xml version="1.0"?>

<!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd">

<folder-listing version="1.0">

<folder name="Data" modified="20040101T000000" user-perm="RWD" group-perm="W" />

</folder-listing>

done

Disconnecting...done


Здесь не в самом удобном формате, но видно, что в корне есть каталог Data. Можно посмотреть, что находится внутри этого каталога:


# obexftp -i -c /Data -l


Connecting...done

Sending ""... Sending "Data"... done

Receiving "(null)"...|<?xml version="1.0"?>

<!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd">

<folder-listing version="1.0">

<folder name="Misc" modified="20040101T030000" user-perm="RWD" group-perm="W" />

<folder name="Animations" modified="20040101T030000" user-perm="RWD" group-perm="W" />

<folder name="Pictures" modified="20040101T030000" user-perm="RWD" group-perm="W" />

<folder name="Sounds" modified="20040101T030000" user-perm="RWD" group-perm="W" />

<folder name="Themes" modified="20040101T030000" user-perm="RWD" group-perm="W" />

<folder name="System" modified="20040101T030000" user-perm="WD" group-perm="W" />

<folder name="PhonePilots" modified="20040101T030000" user-perm="WD" group-perm="W" />

<folder name="Java" modified="20040101T030000" user-perm="RWD" group-perm="W" />

<folder name="Videos" modified="20050201T030000" user-perm="RWD" group-perm="W" />

<folder name="Skins" modified="20050201T030020" user-perm="RWD" group-perm="W" />

<folder name="Text module" modified="20051217T220920" user-perm="RWD" group-perm="W" />

<folder name="Voice memo" modified="20051217T221022" user-perm="RWD" group-perm="W" />

<folder name="Sms archive" modified="20051218T103724" user-perm="RWD" group-perm="W" />

</folder-listing>

done

Disconnecting...done


Чтобы скачать файл, нужно использовать опцию -g. К примеру, чтобы взять фотографию лежащую в Pictures надо выполнить команду:


# obexftp -i -g /Data/Pictures/041011_180642.jpg


Для того, чтобы создать каталог, надо выполнить команду вида:


# obexftp -i -C /Data/Java/jam/Games/Tux


Для того чтобы передать на телефон какой-нибудь файл, надо выполнить такую команду:


# obexftp -i -c /Data/Java/jam/Games/Tux -p tux.jar


Всех этих сведений достаточно, чтобы выполнять любые файловые операции на телефоне.




Знаете ли вы, что:

Чтобы сотовый телефон долго служил, для него нужен хороший чехол. Купить чехлы оптом за копейки, а потом продавать их по зверской кооперативной цене - вот хорошая идея для бизнеса! Попробуйте, не пожалеете.


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования