Как стать автором
Обновить

Комментарии 43

Вообще логично заменить WIFI_ID=«56b4d822-edd4-4692-baf2-25b0711d1e7b» на WIFI_ID=`gconftool -R /system/osso/connectivity/IA`. Если конечно команда gconftool -R /system/osso/connectivity/IA выводит только id.
Не, она выводит список всех сохраненных соединений.
А вообще, в скрипте можно многое улучшить, конечно же. Например, бесконечный цикл не принято так делать в Shell. :)
Зачем скрипт? N900 же сама соединяется с домашней сетью как только переступаешь порог, без зависимости от зарядки.
Многие выключают эту опцию потому что от постоянного скана садится батарейка.
Увличить интервал скана до 2х часов. Профит? Где-то в полночь оно подключится
Тогда оно будет подключаться ко всем известным точкам, а не только к домашней.
Но, наверное, вполне можно сделать так скриптом, чтобы подключалось только к домашней.
А я модуль сам отключаю обычно, можно ли его как-то заводить скриптом?
Нужен скрипт отключающий WiFi при севшей батарейке :)
Я, кстати, когда-то хотел такое сделать, но передумал. Представьте ситуацию: вы понимаете, что телефон сейчас умрет, а вам надо за считанные секунды до его выключения что-то важное прочесть в инете; а тут — раз, и вайфай рвется.
Не лучше ли осовываться на dbus-scripts и ждать path=/org/freedesktop/Hal/devices/bme; interface=org.freedesktop.Hal.Device; member=PropertyModified сообщения? Хотя потом надо все равно hal-get-property, так как от PropertyModified идут массивы, они AFAIK dbus-scripts'ом не обрабатываются, но может быть это уже будет реже, чем раз в минуту.

Out-call-vibro я тоже переписал у себя на dbus-scripts, так как после установки enhanced busybox он перестал нормально работать. И еще глючок, он плохо убивается через stop имя сервиса, так как создается 2 процесса из-за вызова vibro() внутри.
Можно dbus-scripts. Я просто о нем на днях узнал. Когда out-call-vibro делал, его еще не было (либо был сильно не стабильным).

В enhanced busybox, интересно почему не работает. А убивать его лучше специальным скриптом stop-out-call-vibro.sh (что-то вроде того).

А не покажите ваш вариант на dbus-scripts?
Господа, вам памяти не жалко, лишнего демона в систему пускать? Можно ведь на udev!

Пишем /etc/udev/rules.d/11-charger-connect-monitor.rules

SUBSYSTEM!="power_supply", GOTO="charger_connect_moitor_end"

ENV{BATTERY_STATE_DETECTED}!="Discharging", ATTR{status}=="Discharging", RUN+="/sbin/udevadm control --env=BATTERY_STATE_DETECTED=Discharging"
ENV{BATTERY_STATE_DETECTED}!="Charging", ATTR{status}=="Charging", RUN+="/path/to/executable"
ENV{BATTERY_STATE_DETECTED}!="Charging", ATTR{status}=="Charging", RUN+="/sbin/udevadm control --env=BATTERY_STATE_DETECTED=Charging"

LABEL="charger_connect_moitor_end"


А потом я не понял, следит ли сам udevd на N900 за изменениями правил, на всякий случай
# /sbin/udevadm control --reload_rules

И есть нюансы. Во-первых, таким способом будут отслеживаться события системы power_supply, а они генерируются каждую минуту, что ли, в момент подключения/отключения зарядки не генерируются.
Во-вторых, мониторится статус «заряжается/разряжается». Т.е. если подключить провод при полной батарее, то скрипт вызван не будет.
Спасибо! Попробую.
А где почитать про этот «язык udev»?
Упс, я тут не учёл, что POWER_SUPPLY_STATUS может принимать значение «Full»…

Вообще, по идее, должен быть способ ловить именно событие подключения зарядки, т.е. мой подход тоже не очень правильный.
Заметка для себя.

Бида-бида, в ядре kernel-power v48+ отключили загрузку модуля bq27x00_battery (и включать, как я понял, не рекомендуется), посему папочки /sys/class/power_supply нема и события от power_supply не генерируются.

Мой убер метод не работает :(

Хочу нормальный способ запускать скрипт по подключению к зарядке!
У меня 49-й kernel power и метод, описанный в топике еще работает…
НЛО прилетело и опубликовало эту надпись здесь
Всё просчитать невозможно. По сравнению с андройдом < 2.3, в настройках maemo5 и так продумано гораздо больше вариантов использования.
А что, правда есть телефоны, которые из коробки умеют подключаться к домашней WiFi при подключении кабеля зарядки?
>status=`hal-get-property --udi /org/freedesktop/Hal/devices/bme --key maemo.charger.connection_status`

а если так?:

cat /sys/class/power_supply/ac/online
No such file or directory. :(
Сейчас погуглил — походу, только так можно узнать статус чарджера на этом девайсе.
>No such file or directory. :(

ну эээ ls /sys/class/power_supply/ покажите
нет директории такой
это как-то очень странно — такая директория обязательно есть, если в ядре включена поддержка устройств питания (проверит — zcat /proc/config.gz|grep POWER_SUPPLY).

если она отключена, что было бы очень странно на телефоне, то мне непонятно, откуда у вас система берет информацию о подлючении зарядки и уровне батареи
/sys/class/power_supply/bq27200-0/status

Подключил правда USB-зарядку — всё равно Discharging. Розеточной под рукой нету.
А через HAL и USB-зарядка детектится способом из скрипта в заметке.

Что-то не нашел у себя power_supply.
Ядро 2.6.28.10power42
А, ну у меня 2.6.28.10-power48
Посмотрел сейчас на телефон, вроде шнур вставлен, а желтый светодиод не мигает. (Хотя Advanced Power показывал зарядку). Переткнул, в status стало Charging. Так что можно и так, но на последних ядрах от pali по всей видимости.
Затравка не соответствует теме, чуть менее чем полностью.
Это не написание приложения под Maemo, это написание sh-скрипта приницпиально работающего в любой nix системе. Что
а) совсем не одно и то же
б) никак не иллюстрирует мысль «Цель заметки — показать удобство написания приложений под данную ОС.»
Хотя, конечно «Ух ты, Маемо это настоящий линукс».
Но я так сделал год назад и успокоился.
бу-бу-бу… скрипт-то работает только на N900, как ни крути. :)
Можно, конечно, зафигачить на Си, но я люблю Unix-way.

Мне нравится сама идея писать на Shell под N900. И я стараюсь популяризовать эту идею, так как почему-то этим почти никто не занимается.
«почему-то»? Нет, Вы серьёзно?
А вы много видели пакетов в репозиториях Maemo, написанных на shell?
>это написание sh-скрипта приницпиально работающего в любой nix системе. Что

нет, тут маемо-специфичный проприетарный api
ну, я бы не стал называть d-bus и hal проприетарными api )
>--dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect

это не HAL, а какой-то нокиевский проприетарный демон. который проприетарный, даже если он опенсорс
ну тут согласен )
НЛО прилетело и опубликовало эту надпись здесь
Вроде этот функционал называется «автоответчик». :)
Я погуглил — вроде есть что-то. Но ссылки на софтину не нашел… Надо лучше поискать — возможно, уже есть такая штука.
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории