BTMODE

Jun. 24th, 2008 12:36 am
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
В процессе изысканий по проекту BlueTooth CLI написал в виде шелловского скрипта утилиту, которой мне крайне не хватало в etch и lenny - командно строчный скрипт, который позволяет посмотреть и установить статус bluetooth адаптера (в смысле, connectable он, discoverable или что). А то новые версии bluez стартуют адаптер в non-discoverable mode, и включить discoverability можно только через гномовский апплет.
Оказывается, dbus-send для этого вполне достаточно


set -- `getopt lha: "$@"`
if [ $? -ne 0 ]; then 
    echo "run $0 -h for help" 1>&2
    exit 1  
fi  
while [ "$1" != "--" ]; do
case "$1" in
-l) # List adapters
    dbus-send --system --type=method_call --print-reply --dest=org.bluez\
    /org/bluez org.bluez.Manager.ListAdapters|sed -n 's!^ *string "/org/bluez/\([^"]\+\)".*$!\1!p'
    exit 0
    ;;
-a) # get adapter from command line 
    shift
    adapter="/org/bluez/$1"
    shift
    ;;
-h) echo "Usage $0  [ -a adapter ] [ -l ] [mode]"
    echo "without mode argument lists mode for specified (or default) adapter"
    echo "with mode argument (one of connectable discoverable off) sets"
    echo "with -l list available adapters"
    exit
esac    
done
shift
if [ -z "$adapter" ];  then
    adapter=`dbus-send --system --type=method_call  --print-reply \
    --dest=org.bluez /org/bluez org.bluez.Manager.DefaultAdapter  |sed \
    -n 's/^ *string "\([^"]\+\)".*$/\1/p'` 
    [ -z "$adapter" ] && exit 1  
fi
if [ -z "$1" ]; then
    dbus-send --system --type=method_call  --print-reply \
    --dest=org.bluez $adapter org.bluez.Adapter.GetMode  |sed \
    -n 's/^ *string "\([^"]\+\)".*$/\1/p' 
else
    dbus-send --system --type=method_call  --print-reply \
    --dest=org.bluez $adapter org.bluez.Adapter.SetMode string:$1 |grep -v  "method      return"
    #|sed \
    #-n 's/^ *string "\([^"]\+\)".*$/\1/p' 

fi  


Date: 2008-06-23 10:11 pm (UTC)
From: [identity profile] http://users.livejournal.com/_navi_/
о, я вспомнил, я ж тоже злостным sed'ом вытаскивал данные — номер RFCOMM канала по имени сервиса девайса, правда из sdptool'а (здесь (http://community.livejournal.com/gruntmaster6000/2666.html)).

Date: 2008-06-23 10:54 pm (UTC)
From: [identity profile] duke-igthorn.livejournal.com
И кто говорит, что dbus противоречит унихвею?!;)

Date: 2008-06-24 08:20 am (UTC)
From: [identity profile] duke-igthorn.livejournal.com
Насчет трех путей - это ребята как-то действительно переоверинжинирили...

Date: 2008-06-23 11:23 pm (UTC)
From: [identity profile] evg-krsk.livejournal.com
Спасибо, пользительно.

Date: 2008-06-24 06:02 pm (UTC)
From: [identity profile] dinozavr.livejournal.com
Спасибо.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

May 2025

S M T W T F S
    1 2 3
4 56 7 8 9 10
11 12 131415 1617
1819202122 2324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 25th, 2025 03:37 pm
Powered by Dreamwidth Studios